Ich partitioniere eine Nicht-SSD-Festplatte mit Parted, weil ich eine GPT-Partitionstabelle möchte.
parted /dev/sda mklabel gpt
Jetzt versuche ich, die Partitionen korrekt auszurichten, damit ich mit dem folgenden Befehl weiß, wo der erste Sektor beginnt:
parted /dev/sda unit s p free
Disk /dev/sda: 488397168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
34s 488397134s 488397101s Free Space
Wir können sehen, dass es in Sektor 34 startet (das ist die Standardeinstellung, wenn diese Partitionstabelle verwendet wird).
Also, um die erste Partition zu erstellen, habe ich versucht:
parted /dev/sda mkpart primary 63s 127s
es auf Sektor 64 auszurichten, da es ein Vielfaches von 8 ist, aber es zeigt:
Warnung: Die resultierende Partition ist nicht richtig ausgerichtet, um eine optimale Leistung zu erzielen.
Die logischen und physischen Sektorgrößen auf meiner Festplatte betragen jeweils 512 Byte:
cat /sys/block/sda/queue/physical_block_size
512
cat /sys/block/sda/queue/logical_block_size
512
Wie erstelle ich korrekt ausgerichtete Partitionen? Was mache ich falsch?
parted /dev/sda mkpart primary 64s 128s
(falls es in 1 beginnt), aber es gibt die gleiche Warnung zurück.Antworten:
Zum Ausrichten der Partition
parted
können Sie die--align
Option verwenden. Gültige Ausrichtungstypen sind:Ein weiterer nützlicher Tipp ist, dass Sie die Größe mit Prozentsätzen festlegen können, um sie auszurichten. Beginnen Sie bei 0% und enden Sie bei 100%. Zum Beispiel:
parted -a optimal /dev/sda mkpart primary 0% 4096MB
quelle
0% 100%
? Wo kommt4096MB
her?'0%'
in Anführungszeichen setzen, damit meine Shell den Befehl richtig ausführte.print
Meine Lösung war die Verwendung von gdisk, mit der die Partitionsausrichtung standardmäßig automatisch auf 2048 Sektoren (1024 KB) durchgeführt werden kann, obwohl dies im Expertenmenü geändert werden kann.
quelle
Aus dem Arch Wiki :
Beim Erstellen einer Partition warnt parted möglicherweise vor einer falschen Partitionsausrichtung, gibt jedoch keinen Hinweis auf eine ordnungsgemäße Ausrichtung. Zum Beispiel:
Die Warnung bedeutet, dass die Partition
start
nicht ausgerichtet ist.Geben Sie ein
Ignore
, um trotzdem fortzufahren , drucken Sie die Partitionstabelle in Sektoren, um zu sehen, wo sie beginnt, und entfernen / erstellen Sie die Partition neu, wobei der Startsektor auf 2 aufgerundet wird, bis die Warnung aufhört. Auf einem Flash-Laufwerk mit 512B Sektoren wollte Parted beispielsweise, dass Partitionen auf Sektoren gestartet werden, die ein Vielfaches von 2048 waren, was einer Ausrichtung von 1 MB entspricht.Darüber hinaus wird direkt über diesem Abschnitt angegeben, dass die genaueren IEC-Binäreinheiten von KiB, MiB, GiB usw. für Einheiten sowie die weniger genauen KB, MB, GB usw. zulässig sind.
Persönlich lautete mein genaues Kommando, das dies löste:
Es hat sich nicht beschwert, ich denke, es wollte 1MB Alignments.
quelle
Eine kleine Korrektur. Wie ich es verstehe, haben GPT-Festplatten keine Partitionstypen mehr, sie sind alle "primär". Der Befehl 'mkpart primary' erstellt keine primäre Partition wie auf MSDOS-Festplatten, sondern nur eine Partition namens primary. Sie können genauso gut den Befehl verwenden
Dies kann zu Verwirrung führen, wenn Sie versuchen, logische Partitionen zu erstellen. Ich weiß, dass dies bei mir der Fall war.
Sie können in einer Partition mit dem Namen "extended" keine Partition mit dem Namen "logical" erstellen.
quelle
Die akzeptierte Antwort von @lik zeigt, wie Sie die bevorzugte Ausrichtung angeben können. Parted verwendet diese Ausrichtung jedoch immer zum Überprüfen der resultierenden Partition, erstellt jedoch nicht immer Partitionen mit dieser Ausrichtung.
TL; DR: Wenn 1 MB die optimale Ausrichtung ist, funktioniert die Angabe von 0% für Festplatten mit 200 MB und mehr. Bei kleineren Festplatten oder größerer Ausrichtung kann die Angabe von 0G funktionieren, bei 0% nicht. Lesen Sie weiter unten, warum.
Parted versucht zwar, die Ausrichtungseinschränkungen beim Erstellen einer Partition zu erfüllen, weicht jedoch nicht zu stark von den von Ihnen angeforderten Werten ab. Was als "zu viel" gilt, hängt davon ab, wie Sie die Positionen angegeben haben.
Wenn Sie eine Start- (oder End-) Position für den Befehl mkpart angeben, wird intern ein Bereich akzeptabler Werte generiert. Dieser Bereich ist auf den von Ihnen angegebenen Wert zentriert und erstreckt sich auf beiden Seiten gleichmäßig um die Hälfte der von Ihnen verwendeten Einheitengröße (das ist, was ich aus dem Code gelesen habe , in den Kommentaren wird an beiden Enden eine vollständige Einheitengröße angegeben).
Wenn Sie beispielsweise "10M" angeben, wird versucht, eine beliebige Position zwischen 9,5M und 10,5M zu verwenden. Dasselbe gilt für Prozentangaben. Wenn Sie also 0% angeben, wird ein Wert zwischen 0% und 0,5% verwendet (dies ist natürlich nicht negativ).
Eine Ausnahme besteht darin, dass bei Verwendung von Zweierpotenzen (wie KiB für 1024 im Gegensatz zu K für 1000) parted davon ausgegangen wird, dass Sie versuchen, eine genaue Position anzugeben, und nur den von Ihnen angegebenen genauen Wert berücksichtigt.
Da eine optimale Ausrichtung in der Regel 1MiB-ausgerichtet zu sein scheint, haben die K- und M-Einheiten häufig nicht genügend Platz, um eine optimale Ausrichtung zu erreichen. Das Angeben von Positionen in G sollte ausreichend Platz bieten, aber% ist normalerweise auch in Ordnung.
Das ist der Grund, warum 0% normalerweise funktioniert, obwohl selbst das Grenzen hat.
quelle