PDA

View Full Version : Ridimensionare partizioni ext3


City_Hunter
03-03-2004, 02:34
Premessa: le procedure indicate in questo post possono essere rischiose, chi volesse sperimentarle si assumerà automaticamente ogni responsabilità per l'eventuale perdita dei dati (do it at your own risk); un backup, come sempre prima di queste operazioni, è vivamente consigliato!

Questa sera mi sono trovato nella situazione di dover ridimensionare la partizione di root (con filesystem ext3) di un box, peraltro dalla partition table piuttosto eterogenea:

Device Boot Start End Blocks Id System
/dev/hdd1 * 1 1559 12522636 83 Linux
/dev/hdd2 2835 4858 16257780 f W95 Ext'd (LBA)
/dev/hdd5 2835 2964 1044193+ 82 Linux swap
/dev/hdd6 2965 4246 10297633+ 7 HPFS/NTFS
/dev/hdd7 4247 4858 4915858+ b W95 FAT32
Come si vede, c'è dello spazio libero non partizionato sul disco, fra la prima partizione linux e la partizione extended che comprende tutto il resto.
E' stata l'occasione per fare un giro tra i software disponibili per la gestione delle partizioni su Linux. Prima di tutto era necessario fare un backup della partizione di root.
Allo scopo ho trovato Partition Image (http://www.partimage.org/), software che ricorda un pò Norton Ghost per windows. Permette infatti di creare immagini delle partizioni, se necessario comprimendole e splittandole in più parti in modo da poterle trasportare su supporti rimovibili.
Purtroppo è possibile creare un'immagine soltanto per partizioni non montate e dovendo io backuppare quella di root, ho perso un pò di tempo in più dovendo usare apposti dischi di boot (http://www.partimage.org/doc/index-4.html) con il programma.

Fatto questo, ho cercato qua e là un programma adatto per il resize della partizione. La scelta è ricaduta inizialmente su GNU Parted (http://www.gnu.org/software/parted/parted.html), che per scopi preposti somiglia al noto Partition Magic. Purtroppo questo programma, pur valido ma forse un pò acerbo, non ha giovato alla mia causa: sembrava che il filesystem ext3 proprio non gli piacesse.
Così sono andato per la via meno comoda (anche se in realtà alla fine è filato tutto liscio abbastanza rapidamente), ossia la dritta indicata nelle man page di resize2fs. Il programma in questione ridimensiona il filesystem all'interno della partizione, non la partizione stessa.
Spiega però che per operare in quest'ultimo senso si può adoperare fdisk per cancellare la partizione (!!) e crearne una nuova più grande, assicurandosi che questa abbia rigorosamente lo stesso cilindro di inizio della partizione cancellata. In caso contrario, non solo l'operazione di resize non funziona, ma probabilmente si sputtanano anche i dati.

Per fortuna porto con me (servono quando si va a fare queste cose, cavolo se servono!) i cd di slackware 9.1. Bootando da cd infatti ho avuto a disposizione, senza dover montare la partizione di root, sia fdisk che resize2fs. Nonchè fsck, che fa sempre comodo.
Con fdisk ho provveduto a rifare la partizione, e la partition table è diventata:

Device Boot Start End Blocks Id System
/dev/hdd1 * 1 2834 22764073+ 83 Linux
/dev/hdd2 2835 4858 16257780 f W95 Ext'd (LBA)
/dev/hdd5 2835 2964 1044193+ 82 Linux swap
/dev/hdd6 2965 4246 10297633+ 7 HPFS/NTFS
/dev/hdd7 4247 4858 4915858+ b W95 FAT32
Dopodichè ho dato un fsck.ext3 -f /dev/hdd1 , che non fa mai male in questi casi. E poi con resize2fs /dev/hdd1 ho richiesto al filesystem di adeguarsi alla nuova dimensione della partizione. E' filato tutto liscio, la partizione di root ora sfrutta tutto lo spazio disponibile e tutti i dati già presenti sono integri.

Ho pubblicato questo post pensando che magari, se qualcuno volesse ridimensionare partizioni, adesso potrebbe farlo con le idee un pò più chiare :)