MBR'den sonra ve bölüm başlangıç ​​noktasından önceki diskteki alan


10

Bir MBR bölümleme şeması kullanır ve fdisk(sürüm 2.20.1) ile birincil veya genişletilmiş bölüm oluşturursam , sektör 2048'de başlar. Doğru hatırlarsam fdisk, sektör 63'te ilk bölümü başlatır. MBR yalnızca 512 bayt, ilk bölüm neden 2. sektörde başlamıyor? Bu 2047 sektörde neler tutulur? Önyükleyicinin bir aşaması mı?


FYI 1 MiB (2048 sektör) hizalaması 2010-02-22'de piyasaya sürülen Linux fdiskin util-linux-ng-2.17.1/fdisk/fdisk.c, function'da tanıtıldı update_sector_offset(void). Windows Vista 2006-11'de piyasaya sürüldü.
pts

Yanıtlar:


16

MBR ile dosya sisteminin ilk sektörü arasındaki eski 32KiB boşluğuna DOS uyumluluk bölgesi veya MBR boşluğu denir, çünkü DOS, bölümlerin silindir sınırlarında başlatılmasını zorunlu kılmıştır (ve her silindirin 64 sektörü vardır, yani 64 sektör * 512 bayt / sektör = 32KiB alanı) .

resim açıklamasını buraya girin

Eski GRUB (GRUB1), GRUB1 1.5 aşamalı önyükleyiciyi buraya yüklemek için kullanabilirdi: http://www.gnu.org/software/grub/manual/grub.html#BIOS-kurulum .

Ek bağlantılar:

  1. http://www.pixelbeat.org/docs/disk/
  2. /superuser/107235/how-do-boot-sectors-and-multiple-drives-works/108152#108152
  3. http://www.dedoimedo.com/computers/grub.html

1
Tamam, bunu açıkladığınız için teşekkürler! GRUB2'nin MBR ile önyükleme kodu için bölümden önce aynı alanı kullandığı anlaşılıyor. Göre grub-install -vben GRUB2 yüklü ve ben yürütmek eğer varsa dd if=/dev/sda obs=1 ibs=1 skip=512 count=2047 2>/dev/null | strings -n4o zaman orada "yükleme" Bu alanda, "Geom", "Okuma", "Hata" ve onlar GRUB2 ait olmalıdır.
Martin

@Martin Hm, ilginç gözlem. Orada sadece "^ @" var, grub2 de. Aşama 2 dosya sisteminde doğru görünüyor. :)
Boris Burkov

1
@Martin: Daha önce GRUB 0.99 yüklüyse, mevcut önyükleyiciniz GRUB 2.x olsa da kullanmıyor olsa bile yine de bu alanda olabilir.
Ben Voigt

6

Bu bir performans optimizasyonudur ve Linux ile ilgili değildir, sadece donanımla ilgilidir. Modern diskler ("4K" diskler olarak adlandırılır) 512 yerine 4096 bayt fiziksel sektörler kullanır. Hala 512 baytlık tek sektörlere hitap edebilirsiniz, ancak bölümler (ya da daha doğrusu: dosya sistemleri) 4K ile hizalanmamışsa performansı ciddi şekilde etkileyebilir. .

Başlangıç ​​sektörü 64 bu gereklilik için yeterli olacaktır. 2048'e yükselme önleyici gibi görünüyor (örneğin, diskin daha sonra GPT'ye dönüştürülmesi gerekiyorsa UEFI önyükleme bölümü yerleştirilmesine izin vermek).


Performans optimizasyonu ile, dosya sistemi 4K sektörünün ortasında başlıyorsa, bu dosya sistemindeki tüm verilerin de hizasız olduğunu ve bunun, dosya sistemindeki bir dosyada bir bayt bile değişmesi durumunda, iki fiziksel 4K sektörünün okunması ve değiştirilmesi gerekiyor mu? Dosya sistemi hizalanmışsa, tüm baytlar aynı 4K fiziksel sektörde olduğu sürece yalnızca bir 4K sektörünün değiştirilmesi gerekir mi?
Martin

2
@Martin Sorun çekirdeğin her zaman diske 4K blokları (sayfa boyutu) yazmasıdır (çünkü sayfalar önbelleğe alınır). Tek bir sektörün aksine 4K sayfa iki sektörün bir parçası olabilir. Bu durumda 4K değil, 8K yazılmalıdır. Ve daha da kötüsü: Diskteki bir veya hatta her iki 4K bloğun da önce okunması gerekebilir.
Hauke ​​Laging
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.