Bereich auf der Festplatte nach dem MBR und vor dem Partitionsstartpunkt

10

Wenn ich ein MBR-Partitionierungsschema verwende und eine primäre oder erweiterte Partition mit fdisk(Version 2.20.1) erstelle, beginnt sie auf Sektor 2048. Wenn ich mich richtig erinnere, haben ältere Versionen von fdiskdie erste Partition auf Sektor 63 gestartet. Wenn MBR nur benötigt 512 Bytes, warum startet dann nicht die erste Partition auf Sektor 2? Was wird in diesen 2047 Sektoren aufbewahrt? Eine Phase des Bootloaders?

Martin
quelle
Zu Ihrer Information: Die Ausrichtung von 1 MiB (2048 Sektor) wurde in Linux fdiskin der util-linux-ng-2.17.1/fdisk/fdisk.cFunktion eingeführt update_sector_offset(void), die am 22.02.2010 veröffentlicht wurde. Windows Vista wurde 2006-11 veröffentlicht.
Punkte
Verwandte Fragen und Antworten: superuser.com/q/352572/19956 , superuser.com/q/565577/19956 .
Punkte

Antworten:

16

Die alte 32-KB-Lücke zwischen MBR und dem ersten Sektor des Dateisystems wird als DOS-Kompatibilitätsbereich oder MBR-Lücke bezeichnet, da unter DOS die Partitionen an Zylindergrenzen gestartet werden mussten (und jeder Zylinder 64 Sektoren hatte, dh 64 Sektoren * 512 Bytes / Sektor = 32 KB Speicherplatz). .

Geben Sie hier die Bildbeschreibung ein

Legacy GRUB (GRUB1) hätte damit den 1,5-stufigen Bootloader von GRUB1 dort installieren können: http://www.gnu.org/software/grub/manual/grub.html#BIOS-installation .

Zusätzliche Links:

  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
quelle
1
Ok, danke für die Erklärung! Es sieht so aus, als ob GRUB2 denselben Bereich zwischen dem MBR und vor der Partition für den Startcode verwendet. Laut grub-install -vich habe GRUB2 installiert und wenn ich ausführe, dd if=/dev/sda obs=1 ibs=1 skip=512 count=2047 2>/dev/null | strings -n4dann gibt es "Laden", "Geom", "Lesen", "Fehler" in diesem Bereich und sie sollten zu GRUB2 gehören.
Martin
@ Martin Hm, interessante Beobachtung. Ich habe nur "^ @" da, grub2 auch. Scheint, als wäre meine Stufe 2 direkt im Dateisystem. :)
Boris Burkov
1
@Martin: Wenn Sie zuvor GRUB 0.99 installiert hatten, befindet es sich möglicherweise immer noch in diesem Bereich, selbst wenn Ihr aktueller Bootloader GRUB 2.x ist und ihn nicht verwendet.
Ben Voigt
6

Dies ist eine Leistungsoptimierung und bezieht sich überhaupt nicht auf Linux, sondern nur auf die Hardware. Moderne Festplatten (sogenannte "4K" -Disketten) verwenden physische Sektoren mit 4096 Byte anstelle von 512. Sie können weiterhin einzelne 512-Byte-Sektoren adressieren. Dies kann jedoch die Leistung erheblich beeinträchtigen, wenn die Partitionen (oder besser gesagt: Dateisysteme) nicht auf 4K ausgerichtet sind .

Startsektor 64 würde für diese Anforderung ausreichen. Die Erhöhung auf 2048 scheint vorbeugend zu sein (z. B. das Platzieren einer UEFI-Boot-Partition, wenn die Festplatte später in GPT konvertiert werden soll).

Hauke ​​Laging
quelle
Mit Leistungsoptimierung meinen Sie, dass, wenn das Dateisystem in der Mitte des 4K-Sektors startet, alle Daten in diesem Dateisystem ebenfalls falsch ausgerichtet sind. Dies würde bedeuten, dass, wenn man sogar ein Byte in einer Datei im Dateisystem ändert, Müssen dann zwei physische 4K-Sektoren gelesen und geändert werden? Wenn das Dateisystem ausgerichtet ist, muss nur ein 4K-Sektor geändert werden, solange sich alle Bytes auf demselben physischen 4K-Sektor befinden.
Martin
2
@Martin Das Problem ist, dass der Kernel immer 4K-Blöcke (Seitengröße) auf die Festplatte schreibt (weil Seiten zwischengespeichert werden). Im Gegensatz zu einem einzelnen Sektor kann eine 4K-Seite Teil von zwei Sektoren sein. In diesem Fall müssen nicht 4K, sondern 8K geschrieben werden. Und noch schlimmer: Es kann sein, dass einer oder sogar beide 4K-Blöcke auf der Festplatte zuerst gelesen werden müssen.
Hauke ​​Laging