Probleme beim Ermitteln der optimalen Ausrichtung mehrerer Partitionen auf einer externen 931.5 GiB-Festplatte mit Advanced Format unter Linux

826
gluonman

ZUSAMMENFASSUNG

Ich habe einen Dell Inspiron 17-5767-Laptop mit einer 1 TB internen Festplatte, den ich dem ursprünglich gelieferten Windows 10 erlaubt habe, weiterhin alles zu haben und zu beherrschen (es ist mein Spielbetriebssystem). Zusätzlich habe ich zwei externe Laufwerke, von denen ich meine aktuellen und zukünftigen Linux-Betriebssysteme booten kann. Mein aktuelles Setup ist wie folgt:

  1. USB 3.0 Port # 0: Seagate Expansion + 931,5 GiB (1000204885504 Byte) Externe Festplatte als / dev / sdb erkannt
    • Derzeit enthält es eine leere, leere ext4-Partition, die jedoch mit einem optimal ausgerichteten Partitionierungsschema von 12 Partitionen zu kämpfen hatte (der Kampfpunkt liegt in der Ausrichtung).
  2. USB 3.0-Anschluss 1: 238,5 GiB (256060514304 Byte) Samsung SSD 840 Pro als / dev / sdc erkannt
    • wurde mit dem Installationsprogramm der Fedora LiveCD (mit der Option "custom") partitioniert und beherbergt sowohl meine Fedora LXDE - als auch die Lubuntu - Linux - Distributionen in einem einzigen LVM, die einen gemeinsam genutzten Swap Space, einen gemeinsam genutzten Benutzerraum, separate Roots und separate externe Bootpartitionen (von Extern hier meine ich nicht nur in der LVM, sondern in ihren eigenen separaten Primärpartitionen an anderer Stelle auf derselben Platte.
    • Dieses Laufwerk hat sowohl eine physische als auch eine logische Blockgröße von 512 und ist entsprechend dem Hilfsprogramm 'align-check opt x' von parted optimal ausgerichtet, und fdisk ist auch mit der Ausrichtung zufrieden (keine Ausrichtungsbeschwerden von irgendeinem Dienstprogramm).
  3. Das UEFI-BIOS versucht, vor dem internen Start von USB zu booten, so dass mir Grub mit allen verfügbaren Optionen angezeigt wird

TOR

Ich versuche, etwas zu replizieren, was ich mit / dev / sdc auf / dev / sdb-Laufwerk gemacht habe, aber mit 5 Linux-Distributionen. Diesen Aspekt meines Projekts habe ich behandelt, da ich ein erfahrener Multi-Booter bin. Aber der andere Teil meines Ziels ist, dass meine Partitionierung auf / dev / sdb so optimal ist, wie dies bei / dev / sdc der Fall ist, und hier stoße ich in Schwierigkeiten.

UMGEBUNG

Ich arbeite zurzeit an meiner relativ frischen und aktualisierten Installation von Fedora LXDE. Die Ergebnisse, die ich bekomme, sind in meiner ebenfalls relativ frischen und aktualisierten Installation von Lubuntu ebenfalls vollständig wiederholbar.

BERICHTETE SCHEIBENPARAMETER

[root@frank ~]# cat /sys/class/block/sdb/queue/physical_block_size  4096 [root@frank ~]# cat /sys/class/block/sdb/queue/logical_block_size  512 [root@frank ~]# cat /sys/class/block/sdb/queue/minimum_io_size  4096 [root@frank ~]# cat /sys/class/block/sdb/queue/optimal_io_size  33553920 [root@frank ~]# cat /sys/class/block/sdb/alignment_offset  0 [root@frank ~]# fdisk -l /dev/sdb Disk /dev/sdb: 931.5 GiB, 1000204885504 bytes, 1953525167 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 33553920 bytes Disklabel type: gpt Disk identifier: 9428D9DB-746C-40CA-B189-060F92A10E3C  Device Start End Sectors Size Type /dev/sdb1 65535 1953467279 1953401745 931.5G Linux filesystem  Partition 1 does not start on physical sector boundary. [root@frank ~]# 

PROBLEM

Auf der Grundlage der Berichterstattung über die physische Blockgröße scheint es also so zu sein, dass die Platte 4k (erweitertes Format) ist und nicht 512b wie das andere Laufwerk, obwohl sie aus Gründen der Rückwärtskompatibilität eine logische Sektorgröße von 512b verwendet. Ich kann sagen, dass das GNU-parted-Dienstprogramm eine Blockgröße von 512 voraussetzt, weil es das optimale E / A-Intervall berechnet

(optimal_io_size + alignment_offset) / physical_block_size = optimal_sector_interval 

Es erhält einen Wert von 65535. Hier wird automatisch die erste Partition gestartet. Die einzige Möglichkeit, mit der das Align-Check-Hilfsprogramm eine Partitionsausrichtung durchläuft, ist optimal, wenn es mit einem Vielfachen von 65535 startet Das Ergebnis ist sinnvoll, wenn Sie der Meinung sind, dass es die Physical_io_size als 512 statt als 4096 behandelt

(33553920 + 0) / 512 = 65535. 

Parted kann die 4096-Blockgröße jedoch verständlicherweise nicht verwenden, da sich die Gleichung dann ausgleichen würde

(33553920 + 0) / 4096 = 8191.875. 

Diese Antwort würde einen High-School-Algebra-Lehrer befriedigen, macht aber offensichtlich keinen Sinn als Sektorintervall, für das man einen diskreten Wert erwarten würde (dh eine ganze Zahl!). Da ich 12 Partitionen erstellen möchte, von denen einige nur 256 MB groß sind, ist dies in GNU Parted nicht mit Prozentwerten möglich. Lange Zeit war es mir nur möglich, Ausrichtungsüberprüfungen für eine optimale Ausrichtung zu erfüllen Wenn ich bei 'unit s' bleibe und selbst die modulare Arithmetik durchführe, um sicherzustellen, dass meine Partitionen in Intervallen von 65535s gestartet wurden, wollte der Teil, der mich teilte. Aufgrund meiner Nachforschungen hielt ich es nicht für wichtig, sicherzustellen, dass meine Partitionen auch in diesen Intervallen endeten, und daher blieben zwischen den meisten meiner Partitionen Lücken (offensichtlich nicht größer als 65535).

Teilweise meinte parted, mein Ergebnis sei optimal ausgerichtet, die physikalische Blockgröße wurde als 512 statt 4096 behandelt. Nach dem Beenden von parted und Ausführen von 'fdisk -l / dev / sdb' erhielt ich jedoch folgende Ausgabe in der Ausgabe:

Partition 1 does not start on physical sector boundary. Partition 2 does not start on physical sector boundary. Partition 3 does not start on physical sector boundary. Partition 4 does not start on physical sector boundary. Partition 5 does not start on physical sector boundary. Partition 6 does not start on physical sector boundary. Partition 7 does not start on physical sector boundary. Partition 8 does not start on physical sector boundary. Partition 9 does not start on physical sector boundary. Partition 10 does not start on physical sector boundary. Partition 11 does not start on physical sector boundary. Partition 12 does not start on physical sector boundary. 

Also, was Parted mag, fdisk nicht. Also habe ich versucht, gParted zu verwenden, um mein Partitionierungsschema zu wiederholen, wobei 1 MiB als Einheitsgröße verwendet wurde, und die erste Partition wurde um 2048 gestartet, wie auf meiner anderen Festplatte (/ dev / sdc) zu sehen war. fdisk war glücklich und hörte nicht mehr auf, sich über die Sektorausrichtung zu beschweren, aber GNU teilte die Alignment-Tests für den optimalen Modus, obwohl es für den Minimalmodus bestehen würde.

Ich habe jedoch festgestellt, dass in beiden Fällen mkswap (das ich zum Erstellen eines Swap-Volumes innerhalb des LVM, das ich unter / dev / sdb11 abgelegt habe, gab) die folgende Warnung angezeigt:

[root@frank ~]# mkswap /dev/strange_quark_experimental/swap mkswap: warning: /dev/strange_quark_experimental/swap is misaligned 

So stellt mkswap fest, dass mein Swap-Volume falsch ausgerichtet ist, unabhängig davon, ob parted der Meinung ist, dass die Platte optimal oder minimal ausgerichtet ist, und mkswap auch mein Swap-Volume als falsch ausgerichtet betrachtet, ob fdisk sich über die Ausrichtung freut oder nicht.

Theorien

Bei all dem habe ich den Eindruck, dass ich möglicherweise Warnungen von mindestens einem Dienstprogramm zur Berichterstellung oder zum Partitionieren von Datenträgern ignorieren muss. Es ist auch möglich, dass alle Berichte zunächst unzuverlässig sind, da das USB-kompatible Gehäuse, das die Festplatte enthält, möglicherweise mindestens einen der Sektorparameter falsch anzeigt. Zum Beispiel ist es vielleicht kein AF-Laufwerk? Oder vielleicht wird die optimale IO-Größe falsch gemeldet. Oder vielleicht beides? Vertrauen Sie mir, ich habe auch die Möglichkeit in Betracht gezogen, dass es sich um einen PEBKAC-Fall handelt, da ich vielleicht etwas falsch verstanden habe, wie Partitionen auf einem 4k-Laufwerk ausgerichtet werden sollen. Ich bin mir nicht sicher.

Was auch immer los ist, ich werde mit meinen eigentlichen Linux-Installationen fortfahren, wenn ich der Meinung bin, dass meine Partitionen optimal aufeinander abgestimmt sind und mkswap oder zumindest die Dienstprogramme, denen ich eigentlich am meisten vertrauen sollte, aufhören, sich über die Ausrichtung zu beklagen.

HILFE

Bitte helfen Sie mir zu verstehen, warum ich mich scheinbar nicht scheiden lassen kann und dass andere Festplatten-Dienstprogramme sich auf etwas mehr als eine minimale Ausrichtung einigen können (dies wird nur bei der Partitionierung mit gParted oder gdisk erreicht). Bitte lassen Sie mich wissen, ob ich mir wirklich zu viele Sorgen machen sollte über die Vorteile einer optimalen Ausrichtung gegenüber einer minimalen Ausrichtung in meinem Fall, da ich keine weitere Zeit verschwenden werde, wenn die Leistung oder der Festplattenstatus zu gering sind. Ansonsten möchte ich die Vorteile des erweiterten Formats meiner Festplatte voll ausnutzen.

1
Auf einer AF-Platte mit einer physischen Sektorgröße von 4096 Byte sollten Partitionen an diese Größe angepasst werden. Das heißt, die Anfangs-512-Byte-Sektornummer sollte ein Vielfaches von acht sein. So einfach ist das. Johan Myréen vor 6 Jahren 0
Richtig, und als ich darauf hingewiesen habe, wenn ein Vielfaches von 8 verwendet wird, wie zum Beispiel ein Startpunkt von 2048s (wie bei gParted), sieht das parted-Dienstprogramm die Festplatte als nicht optimal ausgerichtet, sondern nur minimal ausgerichtet und mkswap beschwert sich dass mein Swap-Volumen innerhalb des LVM falsch ausgerichtet ist, unabhängig davon, ob ich bei den 2048er-Modellen bleibe oder der bizarren Forderung von parted für ein 65535s-Intervall für eine optimale Ausrichtung entspreche. Schauen Sie sich nur die Sektorparameter an, die das System gezeichnet hat. Wie kann ich sogar darauf vertrauen, dass diese Parameter überhaupt korrekt gemeldet werden? gluonman vor 6 Jahren 0
Mein internes Laufwerk ist ein AF-Laufwerk mit identischer Größe. Der einzige Unterschied ist, dass es keine seltsame optimale IO-Größe hat, die ein Sektorintervall außerhalb des diskreten Bereichs gewährleistet. Die optimale E / A-Größe ist die gleiche wie die minimale E / A-Größe von 4096, und sie beginnt bei 2048 Sekunden. Teilweise denkt, dass die Partitionen optimal ausgerichtet sind. Daher frage ich mich, ob der einzige Grund, warum meine Hilfsprogramme sich über Fehlausrichtungen beschweren, und dieser Teil möchte, dass ich 65535 verwendet, weil die optimale E / A-Größe eine falsche Zahl ist. Ich denke, das ist meine beste Hypothese. Aber ich möchte nur sicher gehen, dass ich tatsächlich optimiert bin. gluonman vor 6 Jahren 0
Die "optimale IO-Größe" ist nur eine Andeutung, und 65535 ist definitiv nicht optimal für die Anzahl der 512-Byte-Sektoren, auf denen eine Partition gestartet wird. Das GParted-Handbuch sagt: "MiB-Ausrichtung für moderne Betriebssysteme verwenden." Johan Myréen vor 6 Jahren 0
Okay. In meinem Kopf hat sich etabliert, dass das Teilen einfach falsch ist in dem, was meiner Meinung nach optimal ist (sowohl bei meinem Fedora als auch bei meinem Lubuntu), weil der optimale Hinweis für die IO-Größe, der von diesem bestimmten Laufwerk kommt, es abwirft. Würdest du zustimmen? Ich meine, ich wusste, dass die Zahlen seltsam waren, aber ich vertraute seit Jahren der Trennung, und das ist das erste Mal, dass ich gesehen habe, dass es Probleme mit der Ausrichtung auf mich hatte. Ich sollte also wahrscheinlich nur bei den 2048s-Intervallen bleiben und die Beschwerden von parted (und die von mkswap) ignorieren, oder? gluonman vor 6 Jahren 0
Muss ich mir auch Sorgen machen, wo meine Partitionen enden? Muss es mit einem Wert x enden, bei dem x mod 2048 = 0 ist? Oder ist es vollkommen in Ordnung, eine kleine Lücke zwischen bestimmten Partitionen zu haben? gluonman vor 6 Jahren 0
Ich denke, das End-Alignment spielt keine so große Rolle, aber das Dateisystem kann sich an ein paar schönen Runden orientieren, so dass Sie vielleicht noch mehr Speicherplatz verlieren. Dies hängt natürlich vom Dateisystem ab. Johan Myréen vor 6 Jahren 0
In Ordung. Würden Sie dem folgenden Ansatz meinerseits zustimmen, um zu einer Schlussfolgerung zu gelangen? Ich benutze ein 2048s-Intervall, und parted wird sich beschweren, dass es minimal, aber nicht optimal ist (es will 65535), aber ich werde diese Beschwerden ignorieren, da die optimale IO-Größe ein beschissener Hinweis ist. fdisk wird sich freuen, aber mkswap wird eine Warnung geben, aber das werde ich auch ignorieren. Ich mache mir zwar wahrscheinlich keine Sorgen über meine Partitionsenden, aber ich werde die meisten möglichen zukünftigen Probleme beseitigen, indem ich dafür sorge, dass meine Partitionen in einem auf 2048 gerundeten Sektor enden, ähnlich wie beim Startpunkt. Funktioniert es? gluonman vor 6 Jahren 0
Sieht gut aus für mich. Aber warum sollte sich mkswap beschweren? Johan Myréen vor 6 Jahren 0
Ich habe ehrlich gesagt keine Ahnung, es sei denn, ich habe nur vermutet, dass es sich beschwert, weil es aus dem gleichen Grund, aus dem die Trennung besteht, über Sektorparameter verwirrt ist. Wie Sie bereits erwähnt haben, ist die optimale IO-Größe ein schlechter Hinweis. Es ist jedoch immer noch besorgniserregend, ohne absolute Bestätigung voranzukommen. Ich habe immer noch das Gefühl, als würde ich nur vermuten, dass sich der Teil getrennt hat und dass mkswap aufgrund eines falschen Hinweises falsch berechnet wird. Aber Sie haben geholfen, meinen Verdacht zu lenken. gluonman vor 6 Jahren 0

0 Antworten auf die Frage