Appunti di Programmazione

Linux - spostare la 'home' in altra partizione

Nel mio portatile da 'battaglia', quello che uso per le prove e i vari esperimenti informatici, avevo installato, in tre partizioni distinte, altrettanti Sistemi Operativi: Mac OS, Mint e Mabox. Dopo un pò di tempo e numerosi pasticci, ho dovuto formattare e reinstallare Mint, processo con il quale ho perso alcuni file che mi erano necssari. Per evitare future situazioni spiacevoli come quella appena descritta, ho pensato di tenere la 'home' in una partizione separata. Ho deciso quindi di eliminare Mabox e al suo posto ricavarci uno spazio da destinare alla 'home' di Mint, lasciando il resto del sistema operativo confinato nella posizione originale.

La 'home' attualmente si trova nella partizione sda5:

$ df -h /home
File system     Dim. Usati Dispon. Uso% Montato su
/dev/sda5       48G   4,3G    41G    10%  /

Volendo spostarla è buona norma controllare quanto spazio essa occupi e se la nuova partizione è sufficientemente ampia da portela ospitare senza problemi. Quindi:

$ sudo du -kshP /home
[sudo] password di gandalfrank:          
212M	/home

Adesso controlliamo le partizioni attualmente presenti sul disco.

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 298,1G  0 disk 
├─sda1        8:1    0   200M  0 part /boot/efi
├─sda2        8:2    0 149,1G  0 part 
├─sda3        8:3    0 619,9M  0 part 
├─sda4        8:4    0   1,9G  0 part [SWAP]
├─sda5        8:5    0  48,8G  0 part /
└─sda6        8:6    0  97,5G  0 part 
sr0          11:0    1  1024M  0 rom  
mmcblk0     179:0    0   1,8G  0 disk 
└─mmcblk0p1 179:1    0   1,8G  0 part

La partizione ospite, precedentemente preparata e formattata ext4 è la sda6 la quale dispone di circa 100GB di spazio disponibile, quindi è più che sufficiente per trasferirci la nostra 'home' .

Creiamo la cartella che servirà per montare la partizione:

$ sudo mkdir /media/home
[sudo] password di gandalfrank:

Adesso montiamola:

$ sudo mount /dev/sda6 /media/home
[sudo] password di gandalfrank:

E' il momento di copiare tutti i file dalla vecchia 'home' alla nuova:

$ sudo cp -priv /home/gandalfrank /media/home
[sudo] password di gandalfrank:

Controliamo la dimensione occupata dalla nuova 'home' così da verificare che sia uguale alla vecchia, condizione necessaria per assicurarci che il trasferimento dei file sia stato eseguito correttamente.

$ sudo du -kshP /media/home
[sudo] password di gandalfrank:
212M	/media/home

Il valore di 212 MB corrisponde a quello riscontrato all'inizio dell'articolo, quindi lo spostamento è stato corretto.

Eliminiamo la vecchia 'home':

$ sudo rm -r /home/
[sudo] password di gandalfrank:

Per rendere permanente la modifica bisogna aggiornare il file /etc/fstab con il riferimento numerico univoco della nuova partizione: lo UUID. Tale valore lo si recupera in questo modo:

$ sudo blkid /dev/sda6
[sudo] password di gandalfrank:
/dev/sda6: UUID="33746677-0ca6-49db-b41a-954df44f3624" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="005e922c-1e31-4360-82e4-942da704cdd4"

Prendiamo nota dell' UUID e apriamo il file sopracitato:

sudo nano /etc/fstab

file /etc/fstab

Alla fine del file aggiungiamo la seguente linea: UUID=my_uuid /home ext4 defaults 0 2 dove al posto di my_uuid va ovviamente inserito il numero annotato in precedenza.

UUID=33746677-0ca6-49db-b41a-954df44f3624 /home ext4 defaults 0 2

file /etc/fstab modificato

Riavviamo il PC e avremo la partizione spostata nella nuova posizione. Per sincerarsene è sufficiente usare quesdto comando:

$ df -h /home
File system     Dim. Usati Dispon. Uso% Montato su
/dev/sda6       96G   212M    91G    1%  /home

Il risultato è chiaro: la 'home' si trova nella partizione /dev/sda6 che è esattamente quello che volevamo.