Partitionieren einer SSD mit sfdisk

4124
hamstar

Ich habe seit einiger Zeit versucht, diese SSD (Samsung 840) schön zu partitionieren. Ich möchte sicherstellen, dass die Seiten mit den SSD-Seiten übereinstimmen, um die Anzahl der Schreibvorgänge zu begrenzen. Ich habe diese Seite gefunden, die die Verwendung von 224 Köpfen und 56 Sektoren empfiehlt.

Ich habe bereits einen sfdisk-Dump, den ich replizieren möchte, aber die Startpartition etwas nach oben verschieben (denke ich). Es wird in Sektoren gemessen und ich bin ziemlich verwirrt, wenn ich mich zwischen Sektoren, Köpfen, Zylindern und allem bewege (mein Kollege gab mir die 2048-Startnummer):

# partition table of /dev/sdb unit: sectors  /dev/sdb1 : start= 2048, size= 995329, Id=83, bootable /dev/sdb2 : start= 997377, size= 10242047, Id=83 /dev/sdb3 : start= 11239424, size= 24611328, Id=83 /dev/sdb4 : start= 35850752, size= 67223296, Id= 5 /dev/sdb5 : start= 35850808, size= 10235848, Id=83 /dev/sdb6 : start= 46086712, size= 56987336, Id=83 

Also habe ich dieses Layout mit der Festplatte geworfen sudo sfdisk -H224 -S56 /dev/sdb < sfdisk.dump. Aber in dem oben genannten Link sagt der Kerl, dass er sicherstellt, dass seine Partition auf Zylinder 2 beginnt, um sicherzustellen, dass er sich an einer Zylindergrenze befindet.

Ich habe versucht, meinen Startzylinder zu überprüfen, und es steht auf 0 :(

$ sudo sfdisk -l -uC /dev/sdb   Disk /dev/sdb: 18689 cylinders, 224 heads, 56 sectors/track Units = cylinders of 6422528 bytes, blocks of 1024 bytes, counting from 0  Device Boot Start End #cyls #blocks Id System /dev/sdb1 * 0+ 79- 80- 497664+ 83 Linux /dev/sdb2 79+ 895 817- 5121023+ 83 Linux /dev/sdb3 896 2857 1962 12305664 83 Linux /dev/sdb4 2858 8216 5359 33611648 5 Extended /dev/sdb5 2858+ 3673 816- 5117924 83 Linux /dev/sdb6 3674+ 8216 4543- 28493668 83 Linux 

Ich möchte auch die Größe einiger Partitionen ändern, aber das Konvertieren zwischen Zylindern, Köpfen, Sektoren und Megabytes scheint inkonsistent zu sein und macht meinen Kopf rein. Ich habe viel gegoogelt, kann aber immer noch nicht verstehen, wie man Partitionen erstellt oder berechnet Geometrien.

Ich habe auch versucht, sfdisk anders zu konfigurieren:

echo "2,512,83,* ,5000,83 ,10000,83 ,,5 ,6000,83 ,6000,83 "|sudo sfdisk -uM -H224 -S56 /dev/sdb 

Und versucht, die Megabytes für das Starten und Starten der Zylinderposition zu erhöhen, kann aber nur 6 Megabytes erreichen, bevor es eine Scheiße hat ( Warning: given size (5005) exceeds max allowable size (6)) und ich bin immer noch auf Zylinder Null.

Scheibengeometrie Mann! Wie funktioniert es!?

Gibt es einen einfacheren Weg? Hat jemand Formeln zum Berechnen zwischen den Geometrietypen? Kennt jemand ein gutes Tutorial, mit dem ich mich verlinken kann? Hat das schon mal jemand für seine SSD gemacht?

Mit freundlichen Grüßen

0

1 Antwort auf die Frage

2
Rod Smith

Auf einer MBR-Platte werden Sektorwerte auf zwei Arten gespeichert:

  • Im CHS-Format - Das Zylinder / Kopf / Sektor-Format (CHS) verwendet eine seltsame 24-Bit-Codierung, um Sektorwerte zu speichern. Ein wenig rechnen, 2 ^ 24 * 512 Bytes = 8GiB. (Tatsächlich ist der wahre CHS-Grenzwert etwas niedriger als dies, da nicht alle CHS-Werte zulässig sind.) Beachten Sie, dass dies 8 GiB ist, was deutlich unter der Gesamtkapazität der meisten modernen Festplatten (sogar SSDs) liegt, was bedeutet, dass die CHS-Codierung unbrauchbar ist und deshalb heute für die meisten Zwecke ignoriert. Die Konzentration auf CHS-Werte und auf CHS-Geometrien (die die maximalen Zylinder-, Kopf- und Sektorwerte für eine Platte bestimmen) ist daher Zeitverschwendung.
  • Im LBA-Format - Das lineare (oder logische) Blockadressierungs-Format (LBA) verwendet einen einzelnen 32-Bit-Wert, um Sektoren anzugeben. 2 ^ 32 * 512 Bytes = 2TiB, daher die 2TiB-Grenze für MBR. Dies ist groß genug für alle modernen SSDs und sogar für viele moderne Spinning-Disks. Größere moderne Festplatten erfordern jedoch das neuere GPT-Partitionierungssystem, das 64-Bit-LBA-Werte und keine CHS-Werte verwendet.

In der Vergangenheit waren Partitionen auf Zylinderwerte ausgerichtet, da dies die Leistung auf Festplatten dieser Zeit (in den 1980er und möglicherweise Anfang der 1990er Jahre) verbessern konnte. Seitdem ist die Ausrichtung der Zylinder nur aus Gewohnheit und aus Gründen der Abwärtskompatibilität üblich, hat jedoch keinen Zweck erfüllt. Die Ausrichtung von Zylindern ist heutzutage nachteilig, da neuere Technologien (SSDs, bestimmte Arten von RAID-Arrays und Advanced-Format-Festplatten) besser funktionieren, wenn sie auf einigen Power-of-2-Sektoren (8, 512, 2048 usw.) ausgerichtet sind Details unterscheiden sich von einem Datenträgertyp zum anderen. Die meisten modernen Partitionierungstools richten standardmäßig mindestens die erste Partition auf mehrere 2048 Sektoren aus, da dies für die meisten modernen Festplatten gut funktioniert. Für einige SSDs sind jedoch noch größere Werte erforderlich, z. B. 4096 oder sogar 8192. Wenn Sie die technischen Details zu Ihrer SSD erhalten, Sie können lernen, was seine Anforderungen sind. Wenn nicht, versuchen Sie es mit einem Standard-Ausrichtungswert von 2048, 4096 oder 8192.

Meine Fähigkeiten sfdisksind begrenzt (ich habe den Befehlssatz noch nie gemocht), daher kann ich nicht genau sagen, wie das mit dem Tool gemacht werden soll, mit Ausnahme allgemeiner Hinweise: Geben Sie den Anfangs- und Endpunkt der Partition in Sektoren an, nicht in Zylindern. Wenn Sie die Einstellungen manuell vornehmen, ziehen Sie einen Taschenrechner heraus (oder verwenden Sie eine Taschenrechner-Desktop-App), und stellen Sie sicher, dass Partitionen mit Werten beginnen, die gleichmäßig durch den verwendeten Ausrichtungswert teilbar sind. Die Endpunkte sind nicht wichtig, es sei denn, Sie möchten wahrscheinlich, dass sie einen Sektor vor dem nächsten Startpunkt beenden, um unnötigen Speicherplatz zu minimieren.

Beides partedund gdisktun mehr, um die Partitionsausrichtung durchzusetzen als fdiskich (und ich vermute sfdisk). Daher sollten Sie eines dieser Tools in Betracht ziehen - gdiskfunktioniert jedoch nur auf GPT-Datenträgern. Sie sollten es also nur verwenden, wenn Sie von MBR zu GPT wechseln möchten.

Was für ein grandioser Zusammenbruch, vielen Dank! Eine Frage ist jedoch, dass der Ausrichtungswert, den ich zum Teilen verwende, die Sektoranzahl ist (zum Beispiel 56 in meinem obigen Beispiel). hamstar vor 10 Jahren 0
Bei Verwendung der veralteten CHS-Modi beginnt die * erste * Partition normalerweise mit dem Sektorwert, nachfolgende Partitionen beginnen mit dem Sektor * Kopfwert. Die Idee besteht darin, die meisten Partitionen auf dem ersten Sektor des ersten Plattentellers zu beginnen, mit einer Ausnahme ist die erste Partition, die früher begonnen wurde, um den Speicherplatz zu minimieren, der beim Start der Platte vergeudet wird. Dies ist alles ziemlich verwirrend, und da CHS jetzt fast nutzlos ist, sollten Sie am besten Tools verwenden, die LBA-Adressen nativ verwenden und die CHS-Werte ignorieren. Rod Smith vor 10 Jahren 0