Warum startet die Partition auf Sektor 2048 anstatt auf 63?

54

Ich hatte zwei Laufwerke, die gleich partitioniert waren und auf denen jeweils zwei RAID-Partitionen ausgeführt wurden.

Einer ist gestorben und ich habe ihn im Rahmen der Garantie für dasselbe Modell ersetzt.

Beim Versuch, es zu partitionieren, kann die erste Partition nur auf Sektor 2048 gestartet werden, anstatt auf 63, die zuvor vorhanden waren. Das Laufwerk hat eine andere Geometrie als das vorherige und die verbleibenden. (Weniger Köpfe / mehr Zylinder)

Altes Laufwerk:

$ sudo fdisk -c -u -l /dev/sdb 

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aa189

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   174080339    87040138+  83  Linux
/dev/sdb2       174080340   182482334     4200997+  82  Linux swap / Solaris
/dev/sdb3       182482335  3907024064  1862270865   fd  Linux raid autodetect

Überholtes Laufwerk aus Garantie erhalten:

$ sudo fdisk -c -u -l /dev/sda

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d0b5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  ...

Warum ist das so?

gcb
quelle
1
Die Ausgabe zeigt nicht an, dass dies ein Advanced Format 4K - Laufwerk: Sector size (logical/physical): 512 bytes / 512 bytes.
bwDraco
1
Warum wurde das abgelehnt?
bwDraco
1
Ich bin mit der Ablehnung nicht einverstanden, mir war auch das falsche Konzept der Spurausrichtung nicht bekannt, und die Informationen von JdeBP sind nützlich und relevant für eine gültige Frage.
Garrett
Releated Fragen und Antworten: superuser.com/q/565577/19956 , unix.stackexchange.com/q/81556/3054 .
pts
Bei neueren Laufwerken wird GPT empfohlen, das standardmäßig 2048als Startsektor verwendet. Der ältere Datenträger wurde wahrscheinlich mit einem älteren Dienstprogramm und im Nicht-GPT-Partitionstabellenformat formatiert. Verwenden Sie zum Partitionieren neuerer "Advanced Format 4K" -Datenträger die GPT- fdiskDienstprogramme . Verwenden Sie für RAID unbedingt den Typ fd00 Linux RAIDund kennzeichnen Sie Ihre Partitionen entsprechend.
TrinitronX

Antworten:

44

Weil Ihre alte Disk mit einem alten Dienstprogramm wie Linux partitioniert wurde fdisk, das die Spurausrichtung unter Verwendung der vollständig gefälschten Diskgeometrie, die angezeigt wird, nutzlos implementiert hat, und Ihre neue Disk mit einem neueren Dienstprogramm partitioniert wurde oder wird, das (von) Standardeinstellung) wird stattdessen an 1-MB-Grenzen ausgerichtet.

Weitere Lektüre

JdeBP
quelle
7
Mit anderen Worten, die LBA-Sektornummer 63 entspricht Zylinder 0, Kopf 1, Sektor 1 im CHS- Format. Dies ist der erste Sektor, den Sie im MBR-Format verwenden können. Die Zahl 63 ist jedoch nicht durch 8 teilbar, was bei 4K-Laufwerken ein Problem darstellt. Einige moderne Tools starten daher die erste Partition um 2048, wodurch auch die zukünftige GPT-Kompatibilität gewährleistet wird.
billc.cn
8
Es gibt Zeiten, in denen man sich danach sehnt, Kommentare zu protokollieren, insbesondere Kommentare, in denen andere versuchen, einen direkten Fehler in den Mund zu stecken. Diese "anderen Wörter" sind falsch , weshalb sie nicht das sind , was ich geschrieben habe . Der erste Sektor, den man (wie mehrere Leute) für eine primäre Partition mit einer MBR-Partitionstabelle verwenden kann, ist LB # 2 oder sogar LB # 1, wenn man keine Kompatibilität mit Dingen wie IBMs LVM benötigt. Die 1-MB-Ausrichtung hat nichts mit der Kompatibilität der EFI-Partitionstabellen zu tun .
JdeBP
Richtig, ich glaube, ich habe einen Fehler beim ersten Teil gemacht, aber beim zweiten Teil habe ich gemeint, dass Sie, wenn Sie mit 2048 anfangen, kein Problem haben werden, das Laufwerk in Zukunft auf GPT umzustellen, daher das Wort "also" und "future". .
billc.cn
5
Das stimmt immer noch nicht. Man wird sowieso kein Problem haben . Rechnen Sie. Sogar die ursprüngliche Ausrichtung an einer (gefälschten) Spurgrenze bietet mehr als genug Platz. Diese 60 512-Byte-Sektoren können 240 EFI-Partitionstabelleneinträge enthalten. Nochmals: Die 1-MB-Ausrichtung hat nichts mit der Kompatibilität der EFI-Partitionstabellen zu tun .
JdeBP
4
fdiskist kein "altes Dienstprogramm", sondern wird aktiv gewartet. Verwenden Sie einfach NICHT "Fake Disk Geometry" via -c=dos(standardmäßig deaktiviert!). Die Manpage warnt ausdrücklich davor, da CHS als Disco tot ist. Der Link zur JdBP-Seite ist nicht mehr verfügbar, aber die Geschichte der 1MiB-Ausrichtung (2048-Sektor) finden Sie im Wikipedia-Eintrag Logical Disk Manager . Es handelt sich um eine Windows Vista-Warze: "Die Verwendung einer 1-MiB-Ausrichtungsgrenze ermöglicht eine sicherere Bearbeitung der Partitionstabelle mit Vista Disk Mgt."
David Tonhofer
36
fdisk -c=dos

Sie haben beim Erstellen Ihrer Partition die alte DOS-Partitionstabelle verwendet. Neuere Versionen von fdiskverwenden standardmäßig nicht den DOS-Kompatibilitätsmodus.

Mike
quelle
3
Die akzeptierte Antwort enthält einige wertvolle Informationen, aber diese Antwort enthält das Juwel, das ich zur Behebung meines Problems benötigt habe.
Jcbwlkr
fdisk läßt mich nicht eine Partition ab Sektor 2048 ohne dieses Argument neu - ich habeFirst sector (3072-314572799, default 3072):
tomfanning
5
Dies ist wichtig, wenn Sie versuchen, die Größe einer Partition zu ändern. Mit fdisk müssen Sie diese Partition löschen und neu erstellen. Sie benötigen die Partition, um am selben Ort zu beginnen.
mcr
funktioniert nicht mehr mit fdisk from util-linux 2.28: /
akostadinov
1
fand es fdisk -c=dos -u=cylinders /dev/sdbin gist - gist.github.com/jkullick/febf46756435f1fa99dc56f00782de03
akostadinov
7

Vielleicht ist es hilfreich, hier einen Kommentar hinzuzufügen. Bei einer LUKS-Partition soll die Partition am selben Ort gelöscht und neu erstellt werden, jedoch vor dem Aufruf größer cryptsetup resize. Aber wenn Sie Ihre Partition vor langer Zeit erstellt haben, beginnt sie im Sektor 63. Wenn Sie fdisk verwenden, wird die Partition mit dem falschen Versatz neu erstellt, was zu einem Partitionsverlust führt.

Ich habe es geschafft, es mit wiederherzustellen, um fdisk -c=dosin der Lage zu sein, Partition aus Sektor 63 ohne Probleme zu erstellen.

Adrien Clerc
quelle
1

Ich bin mir nicht sicher, warum es auf 63 angefangen hat, aber laut fdisk sind Ihre Sektorgrößen 512.

Wenn Sie also möchten, dass Ihre Partitionen und damit Cluster ausgerichtet werden, sollte Ihr Anfangsoffset durch 512 teilbar sein. 2048 ist heutzutage ziemlich verbreitet.

Wenn Sie falsch ausgerichtete Sektoren bevorzugen, können Sie GPart jederzeit veranlassen, Ihre Partition auf 63 zurückzusetzen.

Bearbeiten:

Hoppla. Ich habe nicht gesehen, dass Sie ein RAID haben. Sie sollten wahrscheinlich Ihre RAID- und Stripe-Größe posten.

surfasb
quelle
1
63 ist 111111 in binär. Das BIOS von PCs, Sektornummer ist / war in sechs Bits codiert, was zu einer maximalen Anzahl von 111111 (63) Sektoren pro Spur führt. Dieses Maximum wird weiterhin für die virtuelle CHS-Geometrie verwendet.
Chris Reid
1

Mir ist zwar klar, dass die eigentliche Frage beantwortet wurde, aber eine schnelle Lösung für das Problem mit dem ersten Zylinder zwischen 63 und 2048 ist wie folgt:

sfdisk -d /dev/sdb | sfdisk --force /dev/sda

(Wenn Sie sicher sind, dass Sie Laufwerke mit derselben Größe haben)

Anschließend können Sie die verschiedenen Partitionen wieder zu den RAIDs hinzufügen, bei denen Sie Beschwerden darüber erhalten haben, dass die Partitionen nicht dieselbe Größe haben, da der Startzylinderunterschied von 63/2048 die möglichen Partitionsgrößen beeinträchtigt.

Jason Byrne
quelle
Sie sollten erklären, was es tut, Quellenziel?
Pawel Cioch
0

Die 1-MiB-Option (emulierte Blockgröße 2048 × 512 Byte) ist ein hervorragender Allrounder für verschiedene Hardware-Speicherkonfigurationen. Da Dateisystemdatenstrukturen im Allgemeinen am Partitionsstartpunkt ausgerichtet sind, kann dies wichtig sein, um die Lese- / Schreibgeschwindigkeit des Speichers zu maximieren.

Zum Beispiel:

RAID verwendet möglicherweise Datenstreifen mit einer Größe von 16 bis 256 KB. 1 MiB ist ein ganzzahliges Vielfaches davon, sodass das Starten der Partition bei 1 MiB mit dem zugrunde liegenden RAID-Modell kompatibel ist.

SSDs haben normalerweise eine Löschblockgröße von 128 bis 256 NAND-Seiten, die je nach Laufwerk 256 KB oder 512 KB betragen kann. Auch hier ist das Starten der Partition bei 1 MB mit den zugrunde liegenden SSD-Speichereigenschaften kompatibel.

Die sich drehenden Festplatten des Advanced Format 512e haben eine physikalische Blockgröße von 4 KB, und wieder ist 1 MB ein ganzzahliges Vielfaches (wenn auch ein ziemlich großes) davon.

Wenn Sie also ein AF-Laufwerk haben und als GPT partitionieren, können Sie mit Ihrer ersten Partition ab LBA-Block 40 (einem ganzzahligen Vielfachen der 8 logischen Blöcke in jedem physischen Block Ihrer Festplatte) durchaus zufrieden sein. Der weltweite Speicher geht verloren, wenn Sie mit dem LBA-Block 2048 (1 MiB) beginnen. Dies ist nur ein flexiblerer Wert, auf den die Partitionierungssoftware standardmäßig eingestellt ist, da er für so ziemlich jede Hardwarekonfiguration geeignet ist.

Ryan Feeley
quelle