area pada disk setelah MBR dan sebelum titik awal partisi

10

Jika saya menggunakan skema partisi MBR dan membuat partisi primer atau extended dengan fdisk(versi 2.20.1), maka itu dimulai pada sektor 2048. Jika saya ingat dengan benar, maka versi yang lebih lama fdiskmemulai partisi pertama pada sektor 63. Jika MBR hanya perlu 512 byte, lalu mengapa partisi pertama tidak dimulai pada sektor 2? Apa yang disimpan di sektor 2047 itu? Beberapa tahap boot-loader?

Martin
sumber
FYI the 1 MiB (2048 sector) alignment diperkenalkan ke Linux fdiskin util-linux-ng-2.17.1/fdisk/fdisk.c, function update_sector_offset(void), dirilis pada 2010-02-22. Windows Vista dirilis pada 2006-11.
Poin
Pertanyaan dan jawaban terkait: superuser.com/q/352572/19956 , superuser.com/q/565577/19956 .
Poin

Jawaban:

16

Kesenjangan 32KiB lama antara MBR dan sektor pertama dari sistem file disebut daerah kompatibilitas DOS atau kesenjangan MBR, karena DOS mensyaratkan bahwa partisi dimulai pada batas-batas silinder (dan setiap silinder memiliki 64 sektor yaitu 64 sektor * 512 byte / sektor = ruang 32KiB) .

masukkan deskripsi gambar di sini

Legacy GRUB (GRUB1) dapat menggunakannya untuk menginstal bootloader 1,5-tahap GRUB1 di sana: http://www.gnu.org/software/grub/manual/grub.html#BIOS-installation .

Tautan tambahan:

  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
Boris Burkov
sumber
1
Ok, terima kasih sudah menjelaskan ini! Tampaknya GRUB2 menggunakan area yang sama antara MBR dan sebelum partisi untuk kode bootingnya. Menurut grub-install -vsaya telah menginstal GRUB2 dan jika saya mengeksekusi dd if=/dev/sda obs=1 ibs=1 skip=512 count=2047 2>/dev/null | strings -n4maka ada "memuat", "Geom", "Baca", "Kesalahan" di daerah ini dan mereka harus menjadi milik GRUB2.
Martin
@ Martin Hm, pengamatan menarik. Saya hanya punya "^ @" di sana, grub2, juga. Sepertinya tahap 2 saya tepat di sistem file. :)
Boris Burkov
1
@ Martin: Jika Anda sebelumnya menginstal GRUB 0.99, mungkin masih di area itu, bahkan jika bootloader Anda saat ini adalah GRUB 2.x dan tidak menggunakannya.
Ben Voigt
6

Ini adalah optimasi kinerja dan tidak terkait dengan Linux sama sekali, hanya untuk perangkat keras. Disk modern (disebut disk "4K") menggunakan sektor fisik 4096 byte, bukan 512. Anda masih dapat mengatasi sektor 512-byte tunggal tetapi itu dapat sangat mempengaruhi kinerja jika partisi (atau lebih tepatnya: sistem file) tidak sejajar dengan 4K .

Mulai sektor 64 akan cukup untuk persyaratan ini. Peningkatan ke 2048 tampaknya bersifat preventif (mis. Memungkinkan untuk menempatkan partisi boot UEFI di sana jika disk tersebut akan dikonversi ke GPT nanti).

Hauke ​​Laging
sumber
Dengan optimasi kinerja yang Anda maksudkan bahwa jika sistem file dimulai di tengah sektor 4K, maka semua data dalam sistem file ini juga tidak selaras dan ini berarti bahwa jika seseorang mengubah bahkan satu byte dalam file pada sistem file, lalu dua sektor fisik 4K perlu dibaca dan dimodifikasi? Jika sistem file diselaraskan, maka hanya satu sektor 4K yang perlu dimodifikasi selama semua byte berada pada sektor fisik 4K yang sama?
Martin
2
@ Martin Masalahnya adalah bahwa kernel selalu menulis blok 4K (ukuran halaman) ke disk (karena halaman di-cache). Berbeda dengan satu sektor, halaman 4K dapat menjadi bagian dari dua sektor. Dalam hal ini bukan 4K tetapi 8K harus ditulis. Dan lebih buruk lagi: Mungkin satu atau bahkan kedua blok 4K pada disk harus dibaca terlebih dahulu.
Hauke ​​Laging