Gestire il disco con parted

Parted è un comando per gestire le partizioni di un disco da linea di comando (sicuramente molti di voi conosceranno gparted, il front-end grafico). In questo articolo vedremo come funziona questo comando, e i comandi principali per modificare le partizioni da un disco. Innanzitutto, vi sono due modalitá di utilizzo di parted:

  • interactive – viene lanciata una shell dove inserire i comandi
  • command line – i comandi vengono passati direttamente da linea di comando

In questo tutorial faremo principalmente riferimento alla modalitá interattiva. Ovviamente per utilizzarlo occorre essere autenticati come utente root. Quindi iniziamo con il lanciare il programma:

parted /dev/sdb

Dove /dev/sdb indica il device che noi vorremo andare a modificare (attenzione non dovete mettere anche il numero di partizione, quindi se provate a inserire per esempio /dev/sdb1 riceverete un errore).

Questo ci porta all’interno di una shell che si dovrebbe presentare così:

GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Da qui possiamo inserire i comandi. In qualsiasi momento possiamo decidere di cambiare device di lavoro con il comando select:

(parted) select /dev/sda

In questo caso stiamo istruendo parted di cambiare l’unita su cui intervenire da sdb a sda. Ora per esempio avremo bisogno di sapere quale è la situazione attuale del nostro device prima di creare e/o modificare partizioni, per questo basta semplicemente dare il comando print:

(parted) print

Questo comando stampa la lista delle partizioni con altre informazioni utili quali: tipo filesystem, inizio e fine della partizione, eventuali flags, etc. un output di esempio è il seguente:

Model: Generic- xD/SD/M.S. (scsi)
Disk /dev/sdb: 3965MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  62.9MB  58.7MB  primary  fat16        lba
 2      62.9MB  1940MB  1877MB  primary  ext4

A questo punto potremo per esempio voler creare una nuova partizione nello spazio non ancora utilizzato (come potete notare sono utilizzat solo circa 2gb su 4). Quindi possiamo utilizzare il comando mkpart per crearne una nuova. La sintassi del comando è la seguente:

mkpart [PART-TYPE fs-Type] start end

Dove:

  • PART-TYPE  indica il tipo di partizione: primary o logical
  • fs-type indica il tipo di file system che conterrá, ma attenzione: non crea il filesystem, per crearlo dovete usare mkfs
  • start ed end invece sono il punto di inizio e il punto di fine della partizione normalmente espresso in mb.

Quindi per esempio se volessimo creare una partizione da 110mb, ci basta dare il comando:

(parted) mkpart primary ext4 1940 2050

Ora se diamo print avremo un output del tipo:

(parted) print
Model: Generic- xD/SD/M.S. (scsi)
Disk /dev/sdb: 3965MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  62.9MB  58.7MB  primary  fat16        lba
 2      62.9MB  1940MB  1877MB  primary  ext4
 3      1940MB  2050MB  110MB   primary

Come vedete abbiamo una nuova partizione, la numero 3. Ora supponiamo di voler rendere la partizione bootabile, per farlo abbiamo a disposizione il comando set, che serve per gestire i flag relativi alla partizione. La sintassi del comando è:

set partition-number flag state
dove:
  • partition-number indica il numero della partizione alla quale vogliamo modificare i flags (il numero è quello ottenuto dal comando print)
  • flag è appunto il flag che vogliamo andare a configurare, quelli disponibili sono: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot
  • Mentre lo stato può essere on/off

Quindi per settare la partizione appena creata come bootabile possiamo dare il comando:

(parted) set 3 boot on

Ora supponiamo di esserci sbagliati, e vogliamo rimuovere la partizione appena creata, ci basta usare il comando rm seguito dal numero della partizione:

(parted) rm 3

Ora come detto prima le dimensioni si esprimono in megabyte per i vari comandi di parted, ma se vogliamo cambiare unitá, possiamo usare il comando unit, che ci permette di cambiare l’unitá di misura. La sintassi è:

unit UNIT

Dove le unitá di misura a disposizione sono:

  • s, B, kB, MB, GB, TB, compact, cyl, chs, %, kiB, MiB, GiB, TiB

Infine se vogliamo creare una nuova partition table che sostituisca quella corrente (attenzione con questo comando: rischiate di perdere tutto), abbiamo il comando mklabel, che come argomento prende il tipo di tabella che si vuole creare. I tipi di tabella disponibili:

  • bsd
  • loop (raw disk access)
  • gpt
  • mac
  • msdos
  • pc98
  • sun

Ora se per esempio vogliamo creare una nuova tabella di partizioni del tipo msdos (quello dei pc normali) daremo il comando:

(parted) mklabel msdos

Attenzione con questo comando, potreste perdere i vostri dati. Se per errore avete dato questo comando sul vostro disco principale, non tutto è perduto. Infatti la tabella non viene cancellata, ma resa inusabile. Il comando rescue ci aiuta a risolvere questo potenziale problema, riprristinando le partizioni una ad una. In pratica questo programma tenta di recuperare una partizione che si trova approssimativamente fra start e end.  La sintassi del comando è:

rescue start end

Dove:

  • start è la zona approssimativa di inizio della nostra partizione
  • end é la zona approssimativa di fine della partizione. Ricordo che se non avete cambiato le unitá questi valori si esprimono in mb.

Per esempio un comando potrebbe essere:

(parted) rescue 1930 2300

Che cerca di recuperare una partizione fra il 1930mo MB e il 2300mo MB.

Infine è utile sapere che questi comandi possono essere anche inseriti in maniera interattiva, ovvero se diamo solo il nome del comando senza alcun argomento, il programma ci farà una serie di domande chiedendo lui i vari parametri di cui ha bisogno, quindi per esempio, se diamo rm senza argomenti avremo:

(parted) rm
Partition number? 3
(parted)

Un ultima parola, molti di voi avranno sentito parlare di parted per la sua possibilitá di ridimensionare partizioni, e qui non vi si è fatta alcuna menzione, questo perchè a partire dalla versione 2.4 se non erro, il team di sviluppo ha deciso di rimuovere il supporto al ridimensionamento delle partizioni. Quindi il comando resize è stato rimosso. Se avete versioni più vecchie di parted potete usarlo con la sintassi seguente:

resize partition-number partition-start newpartition-end

Beh con questo mi fermo, spero che questo articolo vi aiuti se volete utilizzare questo programma.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.