2012-05-09 15 views
6

Ich habe die partedman page gelesen, kann aber keine Dokumentation zu gültigen Parametern finden. Ich versuche, einen USB-CompactFlash mit bestimmten Partitionsgrößen zu partitionieren (unabhängig von der CF-Größe). Aber ich möchte sicherstellen, dass meine Ausrichtung perfekt und optimal ist.Gültige Argumente für parted

Zum Beispiel, wenn ich die folgenden Befehle:

parted -s -a optimal $DEV mkpart primary ext3 1 1600 
parted -s -a optimal $DEV mkpart primary ext3 1600 3200 
parted -s -a optimal $DEV mkpart primary ext3 3200 3600 

Es ist nicht klar, ob die erste Partition Start 1 oder 0 sein sollte? Der einzige Hinweis, den ich bekomme, dass es mit einem 1 statt einer Null beginnen sollte, ist, wenn ich laufe:

parted /dev/sdc align-check optimal 1 

Welche mir sagt, es ausgerichtet ist, wenn sie mit 1 und nicht ausgerichtet beginnen, wenn sie mit 0. Aber beim Start von I Beginne mit einer 1 und ich mache einen 'Druck', der Start ist bei 1049kB ... ist das normal? Wenn ich die Druckpartitionen ablege, die von anderen Tools erstellt wurden, sehe ich, dass sie bei 32kB beginnen. Wenn ich einen Anfang von 0 verwende, druckt es einen Start von 512kB. Was ist richtig, ich weiß es nicht!

Darüber hinaus habe ich viele Beispiele im Netz von Menschen gesehen, die ihren Startwert für die zweite und dritte Partition als ihren Endwert der davor liegenden Partition verwenden (dh 1600 und 3200 Werte). Haben wir eine Überlappung oder Erhöhung um 1? Die Manpages sagen nichts darüber. Und ich habe einige Webseiten gesehen, wo sie sagen, es sei ein Fehler für den Start, dass sie den gleichen Wert des letzten Endes haben.

Wenn ich '-a optimal' verwende, scheint es nicht einmal meine Partition zu beeinflussen. Das Verwenden des Ausrichtungsflags scheint das gleiche Ergebnis zu erzeugen. Wozu dient das? Gibt es etwas, das mir fehlt?

Ich wünschte wirklich, geteilt würde viel intelligenter sein und keinen Anfang erfordern, aber konnte es eher selbst ableiten. Tatsächlich scheinen viele Leute genau dieses Feature zu brauchen, also bin ich nicht der einzige merkwürdige Ball mit diesem Bedürfnis. Hoffentlich werden einige Geeks da draußen dieses Bedürfnis sehen und es tatsächlich als Feature hinzufügen.

Beachten Sie, dass ich ein automatisiertes Build-Skript verwende, weshalb ich das Flag '-s' verwende.

Wenn mich jemand darüber aufklären kann, würde ich es sehr schätzen ... Vielen Dank im Voraus!

+0

Diese Frage wäre auf der Superuser-Site StackExchange geeignet. – BeowulfNode42

Antwort

17

Ich denke, du hast hier ein paar interessante Fragen gestellt, wie schade, dass sie noch niemand beantwortet hat, also werde ich es versuchen.


It's not clear if the first partition start should be 1 or 0?

Der erste Partition Start muss 1 sein, da das erste Bytes einer Platte das Master Boot Record enthalten und die Struktur einiger Plattenlabels, wie MS-DOS. Wenn Sie also als ersten Partitionsstart den Wert 0 verwenden, belässt libparted einige Bytes am Anfang der Platte, um diesen Inhalt zuzulassen, wobei der Anfang der Partition unmittelbar nach dem ersten Sektor liegt.


the start is at 1049kB... is this normal?

Es ist normal. Um dies zu erklären, müssen Sie zunächst wissen, dass ein Kilobyte für libparte nicht 1024 Byte entspricht, sondern 1000 Byte entspricht.

KB = KiloByte = 1000Bytes
KiB = KibiByte = 1024Bytes

Weitere Informationen:
http://en.wikipedia.org/wiki/Kilobyte
http://www.gnu.org/software/parted/manual/html_node/unit.html

Die Partition in KB-Offset (Kilobyte) und sein Wert ist eine Annäherung , wenn Sie die Einheit in Byte ändern:

parted /dev/sdf unit b print 

Sie sehen den tatsächlichen Wert: 1048576B das ist, 1MiB (1048576B ~ = 1049KB), genau das, was Sie wollten.


I see that they start at 32kB

Ja, startet die Partition bei 32KB, weil das Werkzeug Sie verwenden wahrscheinlich zu alt ist, und Sie eine Festplatte mit 512-Byte-Sektorgröße verwendet wird. Der tatsächliche Start-Offset der Partition ist wahrscheinlich 32256, was dem Sektor 63 entspricht. Vor Jahren platzieren die Partitionierungswerkzeuge den Anfang der ersten Partition im 63. Sektor, um ihn an der alten CHS-Geometrie auszurichten. Das ist zu lange zu erklären, aber ich empfehle, dass Sie diese Links für weitere Informationen zu lesen:

https://superuser.com/questions/352572/why-does-the-partition-start-on-sector-2048-instead-of-63 http://lwn.net/Articles/377895/


If I use a start of 0, it prints a start of 512kB

Ich denke, es gibt den Start bei 512B, nicht KB , Liege ich falsch?
In Ihrer Festplatte von 512-Byte-Sektoren, der erste Sektor endet am Offset 511, so wie ich oben sagte, beginnt die erste Partition nach dem ersten Sektor.


Are we suppose to have an overlap or increment by 1?

ich Sie das Gerät an Bytes ändern, werden Sie die tatsächliche Platzierung der Partitionen sehen und überprüfen können, dass sie sich nicht überlappen.


What purpose is this for? Is there something I'm missing?

Das liegt daran, dass in der Standardeinstellung arbeitet mit MiB getrennt. Wenn Sie Folgendes eingeben:

parted -s -a optimal $DEV mkpart primary ext3 1 1600 

Sie für Fragen erstellen gescheitelt eine Trennwand zwischen den Offsets zum MiB # 1 und # 1600 entspricht. Die Offsets, die auf MiB ausgerichtet sind, werden immer auf die beste Leistung ausgerichtet. Daher muss -a optimal nicht angegeben werden. Wenn Sie das Gerät an Bytes ändern können Sie eine nicht-ausgerichtete Partition erstellen:

parted $DEV unit b mkpart primary 1000000 160MB 
parted $DEV align-check optimal 1 

Es den Fehler gezeigt haben: The resulting partition is not properly aligned for best performance.

Also, versuchen Sie das gleiche mit -a none Option zu tun:

parted -a none $DEV unit b mkpart primary 1000000 160MB 

Jetzt gibt es keinen Fehler, das ist der Zweck dieser Option.


I really wish parted would be a lot more intelligent and not require a start, but rather could deduce it itself.

Ich denke, dass Feature von jedem Tool implementiert werden würde, die libparted verwendet, aber ich denke nicht notwendig, in der Bibliothek ist ... aber wer weiß? vielleicht hört ein lippierter Entwickler zu ... hast du versucht, einen Fehlerbericht zu senden? [email protected]

Verwandte Themen