Separare la /home dalla root /
I principali vantaggi che derivano dal fatto di avere due partizioni dedicate e separate per la partizione /home e la partizione / sono molteplici. Quelli ritenuti più importanti e vantaggiosi sono riportati nei punti seguenti:
- Proteggere i dati dell'utent e mantenere il livello ottimale di efficienza del sistema;
- Possibilità di mantenere le impostazioni dei programmi installati in caso di una nuova installazione;
Mantenere sotto controllo le dimensioni e le caratteristiche delle partizioni /home e /, potendo anche scegliere di posizionarle su due HardDisk diversi per evitare che guasti Hardware possano provocare la perdita di tutti i dati.
Obiettivo
L'obiettivo di questa guida è quello, a partire da un sistema classico in cui / e /home convivono nella stessa partizione, di ottenere un sistema in cui la root / e la /home siano posizionate in due differenti partizioni dell'HardDisk. Il tutto senza dover reinstallare.
Prima di procedere
Requisiti preliminari
Conoscere la gestione del disco e la nominazione delle partizioni in ambiente GNU/Linux. Per informazioni fare riferimento alla relativa guida;
Conoscere il programma GParted per il partizionamento manuale del disco ed il ridimensionamento di partizioni esistenti. Ulteriori informazioni nella relativa guida;
Conoscere il senso della frase "Montare una partizione" ed essere in grado di effettuare il mount. Ulteriori informazioni nella relativa guida;
Avere una copia di backup dei propri dati.
Verifiche sullo spazio disponibile
Verificare la dimensione della propria /home con il comando
du -kshP /home
il quale restituirà qualcosa del tipo
1,3G /home
Ciò vuol dire che la partizione che ospiterà la /home dovrà avere una dimensione minima di 1,4GiB arrotondando per eccesso.
Verificare lo spazio libero disponibile nei propri HardDisks attraverso il programma GParted
Nella figura 1 è presente una schermata di Gparted con la situazione delle partizione dell'HardDisk. |
Spostamento
Modifica delle partizioni
Ridimensionare la /dev/sda6 e creare una nuova partizione nello spazio liberato. Questa nuova partizione, nel caso in esame /dev/sda8, ospiterà la /home.
Assicurarsi che la partizione /dev/sda8 sia formattata con lo stesso File System della partizione dalla quale si estrarrà la /home. Nel caso in esame ext4.
Copia della /home nella nuova partizione
Per fare chiarezza su quanto verrà fatto si ricordano i punti salienti:
Si ha un sistema Ubuntu con installazione classica (/ e /home nella stessa partizione) installato nella /dev/sda6
Si è ridimensionata la partizione /dev/sda6 creando una nuova partizione nominata /dev/sda8
Si procederà a copiare la /home originale, situata nella /dev/sda6, nella nuova partizione /dev/sda8.
Tutti i passi seguenti vanno effettuati all'interno dell'installazione di cui si vuole trasferire la /home. |
Procedere come segue
Montare la nuova partizione creata (/dev/sda8) attraverso il comando
sudo mkdir /media/home && sudo mount /dev/sda8 /media/home
Copiare la home nella nuova posizione avendo l'accortezza di sostituire nome_utente con il proprio nome utente. Usare il comando
sudo cp -av /home/nome_utente /media/home
Il processo potrebbe durare da qualche minuto a varie ore, a seconda della quantità di dati da trasferire e della potenza del computer.Attribuire i permessi alla nuova cartella attraverso il comando
sudo chown $(id -u) /media/home/nome_utente
UUID della partizione
Verificare la partizione in cui è stata copiata la /home, che dovrebbe essere, in base a quanto detto fin'ora /dev/sda8, con il comando
df -h /media/home
che restituirà un output del tipo
File system Dim. Usati Disp. Uso% Montato su /dev/sda8 6,3G 1,4G 4,6G 24% /media/home
Identificare l'UIDD della partizione con il comando
sudo blkid /dev/sda8
che restituirà un output del tipo
/dev/sda8: UUID="41800cf0-acb6-4845-b05e-479e9258f25f" TYPE="ext4"
Copiare la stringa appena ottenuta, nello specifico
41800cf0-acb6-4845-b05e-479e9258f25f
Modificare il file /etc/fstab
Creare una copia di backup del file, nel caso qualcosa andasse storto
sudo cp /etc/fstab /etc/fstab.backup
Aprire il file con privilegi di amministratore
sudo gedit /etc/fstab
Inserire una nuova riga strutturata nel seguente modo
UUID=????? /home ext4 relatime 0 2
Inserendo al posto dei ????? l'UUID ottenuto al passo precedente. Nel caso specifico la riga si presenta come
UUID=41800cf0-acb6-4845-b05e-479e9258f25f /home ext4 relatime 0 2
Verificare la correttezza degli UUID delle altre partizioni, in quanto potrebbero aver subito modifiche a causa dei partizionamenti. Per fare ciò digitare, in una finestra di terminale
sudo blkid
e confrontare i valori con quelli riportati nel file /etc/fstab.
- Salvare, chiudere il file e riavviare.
Verifica
Al riavvio ci si ritroverà come se nulla fosse cambiato. In realtà la /home sarà posizionata nella nuova partizione. Per fare una verifica si può utilizzare il comando
df -h
che restituirà un output del tipo
File system Dim. Usati Disp. Uso% Montato su /dev/sda6 8,6G 4,0G 4,2G 49% / none 245M 256K 245M 1% /dev none 249M 112K 249M 1% /dev/shm none 249M 88K 249M 1% /var/run none 249M 0 249M 0% /var/lock none 249M 0 249M 0% /lib/init/rw /dev/sda8 6,3G 1,4G 4,6G 24% /home /dev/sda1 9,4G 1,7G 7,7G 18% /media/4E80F14880F136D5
in cui appare chiaro che la /home di trova ora in /dev/sda8 proprio come doveva essere.
Eliminazione della vecchia /home
Dopo aver verificato che tutto sia andato a buon fine si può eliminare la vecchia /home posizionata in /dev/sda6. Per fare ciò è necessario operare da LiveCD ed eliminare solo la /home contenuta nella partizione dev/sda6.
Se non si necessita urgentemente di liberare spazio, questo ultimo passaggio può essere evitato in quanto la vecchia /home sarà eliminata automaticamente alla prossima installazione pulita con /home separata.