Come spostare partizione Linux in un’altra partizione

Ciao a tutti era da un bel po’ che non mi facevo sentire, ho avuto i miei motivi comunque…. in effetti in questi giorni sono stato a scervellarmi su come potevo ingigantire la mia partizione di root non avendo spazio libero (non allocato) contiguo, intuitivamente la soluzione è semplice: basta crearmi una partizione dello stesso tipo più grande e spostarci dentro l’attuale root (/)… “eeeh hai detto niente!?!!??!” mi sono risposto dopo 😉

Supponete di avere un hard disk fisico di 160gb diviso in questo modo:

  • Una partizione Windows NTFS 85GB
  • Una partizione di root ext3 7 GB
  • Una partizione di home ext3 di 17GB
  • Una partizione di swap linux-sawp di 1GB
  • E infine una partizione dati di tipo reiserFS di 43Gb

Ovviamente le partizioni linux root e linux swap erano incluse in un’unica partizione estesa altrimenti avrei sforato il limite massimo di partizioni primarie che è 4…
Di seguito il riassunto dei passi che ho seguito per spostare l’attuale partizione di root in una partizione più grande:

  • Ho eliminato la partizione di Windows che non usavo già da tempo e in cui non avevo dati importanti da backappare.
  • Da questa ho preso 20 giga e li formattati con file system ext3
  • Ora dobbiamo solo copiare i dati nella nuova partizione appena creata:
    • Procuriamoci una live e riavviamo il sistema (io ho usato quella di Gutsy Gibbon)
    • Una volta entrati nella live apriamo il terminale e diamo i seguenti comandi

    sudo mkdir /media/actualRoot

    sudo mkdir /media/newRoot

    sudo mount /dev/hda6 /media/actualRoot

    sudo mount /dev/hda1 /media/newRoot

    cd /media/actualRoot/

    sudo cp -av ./bin/ ./boot/ ./dev/ ./etv/ ./home/ ./initrd/ ./lib/ ./lost+found/ ./mnt/ ./opt/ ./proc/ ./Recycled/ ./root/
    ./sbin/ ./srv/ ./sys/ ./tmp/ ./usr/ ./var/ /media/newRoot

Dopo alcuni minuti il comando cp avrà copiato tutto nella partizione /media/newRoot, ma prima di procedere alcune delucidazioni sulle operazioni appena svolte: quando entrate nel cd Live viene montato un file system temporaneo per non dire “fittizio” insomma di sicuro non è il file system che interessa a noi, quindi dobbiamo sapere quale tra i dispositivi nella directory dev corrisponde alla partizione che ci interessa montare su actualRoot (cioè la nostra / attuale) e quale, tra lo stesso insieme di dispositivi, corrisponde alla partizione in cui verrà spostata la actualRoot. Niente paura con GParted la cosa è molto più semplice basta aprirlo e vi dirà lui qual dev corrisponde alle rispettive partizioni.
Se volete seguire i comandi sopra riportati assicuratevi che abbiate montato le giuste partizioni e cosa più IMPORTANTE che passiate solo il necessario al comando “cp”, infatti non occorre passare tutto il contenuto della partizione di root al comando cp, ad esempio io ho la dircetory home montata su un’altra partizione e non ho avuto bisogno di includere questa directory tra quelle da copiare.
In generale:

  • Non includete i link simbolici presenti nella radice potrete ricrearli successivamente col comando ln -s
  • Non includete le directory in cui è montato un file system di una partizione diversa da /
  • La maggior parte delle volte non è necessario includere /dev /proc /tmp /var
  • Non dimenticate assolutamente l’opzione “-a” vicino al comando “cp” altrimenti vi ritroverete solo con un mucchio di file senza senso

Ok ora siamo pronti per preparare la nuova partizione all’avvio , consiglio di non cancellare la vecchia finchè non avrete testato la nuova.

Preparare la nuova partizione all’avvio significa ricreare i link simbolici che c’erano prima, ricreare le directory su cui verranno montati dei file system diversi da root , risitemare la tabella dei file system editanto il file “fstab” einfine riconfigurare e reinstallare GRUB nell’ MBR.

Pensavate di essere vicini alla fine vero?:D:D:D

Sostanzialmente ciò sopra detto si riassume in questi comandi. Dalla directory /media/newRoot:

sudo mkdir [tutte le direcotry non incluse prima nel comando cp]

sudo ln -s [percorso file da collegare/file da collegare] [percorso del collegamento/file del collegamento]

Aprite il file fstab e modificatelo opportunamente:

sudo gedit etc/fstab

Ora rimane solo da riconfigurare il grub. Entrate nella partizione /media/actualRoot e aprite il file ci configurazione grub:

sudo gedit boot/grub/menu.lst

Lasciate tutto come sta e aggiungete alla fine un qualcosa del genere:

title Ubuntu 7.10(test nuova partizione)
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-generic root=/dev/hda1 ro quiet splash locale=it_IT vga=792
initrd /boot/initrd.img-2.6.22-14-generic
quiet

dove hd(0,0) corrisponde a /dev/hda1 cioè la nuova partizione in cui abbiamo copiato root e abbiamo montato su /media/newRoot

salvate e chiudete. Ora dobbiamo chroottarci nella vecchia partizione di root ed eseguire grub-install quindi:

sudo mount -o bind /dev/ /media/actualRoot/dev/

sudo mount -t proc /proc/ /media/actualRoot/proc/

sudo chroot /media/actualRoot

Se tutto è andato bene ora siete utenti root nella vecchia partizione di linux, spostiamoci quindi nella directory /boot/grub/ ed eseguiamo il comando:

grub-install /dev/hda

A questo punto riavviate e se tutto è andato bene vi ritroverete la nuova riga inserita prima nel menu di grub, ora non vi resta che scegliere la nuova opzione per testare la nuova partizione, se tutto va bene potrete anche cancellare la vecchia root e rimettere a posto l’insieme delle partizioni ad esempio io alla fine ho disposto così il mio disco:

Partizioni

Situazione del mio disco dopo aver copiato la root(/dev/hda6) nella nuova partizione (/dev/hda1)

PartizoniDOpo

Situazione del mio disco dopo aver risistemato lo spazio non allocato e cancellato la root vecchia

Conclusioni:

Dopo questa avventura ho capito molto più a fondo la struttura del file system Linux e cosa molto più gratificante con un semplice comando di copia e u editor di testo sono riuscito ad effettuare operazioni alla stregua di Norton Ghost per Windows: la soluzione più semplice è sempre la più efficiente!!

Ciao e spero che questa recensione possa esservi di aiuto non esitate a postare commenti al riguardo:

nonSolO1x

Annunci