Come posso creare script per la creazione di una singola partizione che utilizza l'intero dispositivo?


9

Lo sto usando specificamente per partizionare e montare volumi EBS su istanze Amazon EC2, ma in realtà questo dovrebbe essere generalmente applicabile all'inizializzazione di qualsiasi nuovo disco.

Come dice la domanda, voglio creare script per la creazione di una singola partizione primaria che utilizza tutto lo spazio disponibile su un determinato dispositivo. Non saprò in anticipo quanto sia grande il dispositivo e potrebbe essere molto grande (cioè diversi TB).

Nella ricerca di questo sembra partedsia il miglior comando da usare per lo scripting. Penso che qualcosa sulla falsariga di parted /dev/sdf mkpart primary 0 ENDciò che voglio sia, ma sto facendo fatica a trovare un modo elegante per determinare quale END dovrebbe essere. Qualcuno sa un modo semplice per farlo?

Risposte:


11

Puoi farlo in questo modo:

parted /dev/sdf --script -- mkpart primary 0 -1

5

Ho riscontrato problemi quando ho tentato di utilizzare l'altra risposta. Quello che ha funzionato per me è stato invece utilizzare l'approccio delle percentuali come questo:

$ parted /dev/sdf --script -- mkpart primary 0% 100%

C'è un problema con partede il modo in cui si occupa dell'allineamento delle partizioni. Questi 2 articoli discutono un po 'il problema:

La matematica descritta in quegli articoli semplicemente non ha funzionato nei miei scenari. Sepolto in uno dei commenti sul secondo, collega qualcuno che ha suggerito di utilizzare le percentuali e che ha funzionato.

Per inciso, in genere è necessario etichettare anche l'HDD. Per farlo tramite CLI con parted:

$ parted /dev/sde --script -- mklabel msdos

-o-

$ parted /dev/sde --script -- mklabel gpt

A seconda del tuo HDD.


gdisksi allinea correttamente. Secondo me, partedè un casino. Fa troppo - e le cose che fa sono solo vagamente connesse. È strano il modo in cui crea filesystem e tabelle di partizione insieme: i locarioni del disco per i dati che scrive non sono come nello stesso vicinato. Ho iniziato a capire come funzionavano i dischi quando mi sono reso conto che la tabella delle partizioni è una piccola mappa che si trova in testa e dice al sistema operativo dove potrebbe cercare un filesystem se lo desidera. Quando è stato cliccato, ho capito superblocchi e megaman e tutto il resto. Beh, mi piace pensarlo comunque.
Mikeserv,

Grazie, il sito degli strumenti in questo spazio è sempre stato un casino per me. Mescolo costantemente sfdisk, fdisk, cfdisk, parted, ecc. Proverò fdisk e vedrò se è più facile. Principalmente alla ricerca di un facile da eseguire dall'opzione cli per l'inclusione negli script.
slm

Fondamentalmente [gf]disknon discriminano il loro stdin - a loro non importa se proviene da un termine interno. Pertanto, qualsiasi sequenza di comandi da inserire in modo interattivo per ottenere ciò che si desidera può essere tradotta direttamente in uno printfscript. Tutte le nuove righe nella mia risposta sono solo le (or press enter for default)opzioni. È abbastanza facile Quando gioco con loro vado semplicemente su /tmpe fallocate -l1g imgquindi uso il mio nuovo /tmp/imgfile come disco, a loro non importa. Vogliono solo scrivere una tabella delle partizioni. Se fai lo stesso, dai un'occhiata a cosa succede strings -1 imgoccasionalmente.
Mikeserv,

Ma prima mentivo: Megaman mi rimane misterioso. Forse lo farà sempre.
Mikeserv,

1
con parted /dev/sdf --script -- mkpart primary 0 -1ho ricevuto un avviso per non allineato per le migliori prestazioni. Andava bene con le percentuali
nachoparker,

2

Tu puoi fare...

printf 'n\n\n\n\n\nw\n' | fdisk /dev/disk

... per un tipo msdos. Praticamente la stessa cosa funziona per gpt ...

printf 'n\n\n\n\n\nw\ny\n' | gdisk /dev/disk

E puoi etichettare il tuo disco durante la creazione del filesystem.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.