2012-05-09 12 views
6

Ho letto il partedman page ma non riesco a trovare alcuna documentazione sui parametri validi. Sto provando a partizionare una USB CompactFlash con dimensioni partizioni specifiche (indipendentemente dalla dimensione CF). Ma mi piacerebbe essere sicuro che il mio allineamento sia perfettamente corretto e ottimale.Argomenti validi per parted

Per esempio, quando io uso i seguenti comandi:

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 

Non è chiaro se il primo avvio partizione dovrebbe essere 1 o 0? L'unico suggerimento che ho che dovrebbe iniziare con un 1 invece che uno zero è quando corro:

parted /dev/sdc align-check optimal 1 

Il che mi dice che è allineato quando si inizia con 1 e non allineate quando si inizia con 0. Ma quando ho inizia con un 1 e faccio una 'stampa', l'inizio è a 1049kB ... è normale? Quando eseguo il dump delle partizioni di stampa create da altri strumenti, vedo che iniziano a 32kB. Se uso un inizio di 0, stampa un inizio di 512kB. Quale è corretto, non lo so!

Inoltre, ho visto molti esempi su tutta la rete di persone che usano il loro valore iniziale per la seconda e la terza partizione come valore finale della partizione precedente (es .: valori 1600 e 3200). Supponiamo di avere una sovrapposizione o un incremento di 1? Le pagine man non dicono nulla a riguardo. E ho visto alcune pagine web in cui dicono che un errore per l'inizio è dello stesso valore dell'ultima parte.

Quando uso '-a ottimale', non sembra nemmeno avere effetto sulla mia partizione. Non usare il flag di allineamento sembra produrre lo stesso risultato. A che scopo è questo? C'è qualcosa che mi manca?

Vorrei davvero separarmi sarebbe molto più intelligente e non richiedere un inizio, ma piuttosto potrebbe dedurre esso stesso. In realtà molte persone sembrano aver bisogno di questa funzione esatta, quindi non sono l'unica bizzarra con questa esigenza. Speriamo che qualche geek là fuori vedrà questo bisogno e in effetti lo aggiungerà come caratteristica.

Nota che sto usando parted in uno script di build automatico, motivo per cui utilizzo il flag '-s'.

Se qualcuno mi può illuminare su questo lo apprezzerei molto ... grazie in anticipo!

+0

Questa domanda sarebbe appropriata sul sito StackExchange di superutente. – BeowulfNode42

risposta

17

Penso che tu abbia fatto un paio di domande interessanti proprio qui, che peccato nessuno abbia mai risposto prima, quindi proverò a farlo.


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

Il primo avvio partizione deve essere 1, perché i primi byte di un disco contengono il Master Boot Record e la struttura di alcune etichette del disco, come MS-DOS. Quindi se usi il valore 0 come prima partizione, libparted lascerà alcuni byte all'inizio del disco per consentire questo contenuto, posizionando l'inizio della partizione immediatamente dopo il primo settore.


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

E 'normale. Per spiegarlo, innanzitutto devi sapere che, per libparted, un kilobyte non è uguale a 1024 byte, invece, è uguale a 1000 byte.

KB = Kilobyte = 1000Bytes
KiB = Kibibyte = 1024Bytes

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

La partizione offset è in KB (kilobyte) e il suo valore è un'approssimazione , se si modifica l'unità in byte:

parted /dev/sdf unit b print 

vedrai il valore reale: 1048576B questo è, 1MiB (1048576B ~ = 1049KB), esattamente quello che volevi.


I see that they start at 32kB

Sì, la partizione dalle ore 32 KB perché lo strumento che si sta utilizzando è probabilmente troppo vecchio, e si sta utilizzando un disco con 512-byte dimensione del settore. Lo spostamento iniziale effettivo della partizione probabilmente sarà 32256 corrispondente al settore 63. Anni fa, gli strumenti di partizionamento posizionano l'inizio della prima partizione sul 63 ° settore, per allinearlo alla vecchia geometria CHS. Questo è troppo lungo da spiegare, ma vi consiglio di leggere questo link per informazioni più dettagliate:

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

penso che stampa l'avvio al 512B, non KB , ho sbagliato?
Nel tuo disco di settori da 512 byte, il primo settore termina con lo scostamento 511, quindi come ho detto sopra, la prima partizione inizia dopo il primo settore.


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

mi si modifica l'unità di byte, vedrete l'espletamento effettivo delle partizioni e può controllare che non si sovrappongano.


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

Questo perché, per impostazione predefinita, le opere si separarono con MiB. Quando si digita:

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

stai chiedendo parted per creare una partizione tra le compensazioni corrispondenti al MiB # 1 e # 1600. Gli offset allineati a MiB sono sempre allineati per le migliori prestazioni, quindi non è necessario specificare -a optimal. Se si modifica l'unità di byte è possibile creare una partizione non allineato:

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

E hanno dimostrato l'errore: The resulting partition is not properly aligned for best performance.

Quindi, cercare di fare lo stesso con -a none opzione:

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

Ora non ci sono errori, questo è lo scopo di questa opzione.


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

Penso che la funzione sarebbe stata attuata da qualsiasi strumento che utilizza libparted, ma penso che non è necessario nella biblioteca ... ma chi lo sa? forse qualche sviluppatore libparted sta ascoltando ... hai provato a inviare un bug report? [email protected]

Problemi correlati