Traslocare la Home Directory

Il file system di linux e’ di una bellezza spesso sottovalutata, nonostante questa caratteristica sia tra le piu’ decantate, spesso viene del tutto ignorata dagli utenti specialmente al momento della prima installazione, quando ancora poco avvezzi non se ne comprende fino in fondo la potenza e la flessibilita’. Provenendo da sistemi operativi dove un disco rigido o una partizione sono appunto visti come dischi fisici, non si comprende subito invece il livello aggiuntivo di astrazione, il Virtual Files System, che si sovrappone al il file system “reale”. Qui i dischi non sono piu’ dischi ma rami dell’albero principale e questi rami possono essere “montati” in ogni punto del tronco principale.

Il tronco principale e’ “/” e questo e’ l’asse da cui si dipartono tutte le ramificazioni, “/home” o “/var” o qualsiasi altro ramo secondario puo’ risiedere nello stesso disco/partizione o in un disco/partizione separata. Al momento dell’installazione e’ possibile partizionare il disco fisso presente o i vari dischi presenti nella macchina.

Uno dei consigli piu’ popolari e’ quello di di fare una partizione separata nel caso si abbia un solo disco per mettere il ramo “/home”, anni fa era anche in voga l’indicazione di mettere “/var” su un disco separato, nonche’ usare una partizione separata per lo swap della ram.

Anche io come molti al momento dell’installazione ho ignorato bellamente queste indicazioni e installato tutto on un’unica partizione contennte il tronco principale dell’albero / e tutti i rami /xxxx/xxxx/xxxx/etc… L’aggiunta di un secondo hard disk SSD mi ha spinto a spostare la mia home su questo e quindi ho potuto sperimentare questa fantastica possibilita’.

Su consiglio di Marco, il mio “partner in crime” per quello che riguarda Linux, ho deciso di installare sulla mia macchina principale un secondo SSD, lui ha lo stesso portatile (gli ultimi Macbook realizzati ancora in modo di poterci mettere dentro le mani agevolmente) e quindi mi ha consigliato di sostituire il lettore ottico con un drive caddy, una sorta di “vassoio”, che va a sostituirsi perfettamente al lettore ottico e va a contenere in modo stabile e sicuro l’SSD che si collega all’interfaccia SATA precedentemente occupata dal lettore ottico.

Questa’ e’ una modifica che consiglio a tutti quelli che posseggono un portatile con lettore ottico, inutile portarsi dietro quel peso per usarlo si e no un paio di volte all’anno, uno esterno da tenere a casa fa egregiamente il suo dovere, molto piu’ utile avere capacita’ aggiuntiva incorporata nella macchina.

Il bello del file system di Linux e’ quello di essere fatto ad albero, dove il tronco e’ rappresentato dalla directory principale “/” dalla quale si dipartono le diramazioni secondarie sotto le quali esistono altre diramazioni, appunto andando a costituire l’albero del file system. Ogni disco e partizione, per essere accessible deve essere montata ad un ramo, in qualsiasi posizione.

Per esempio anche le unita’ di memoria rimovibili quando collegate vengono montate automaticamente in un punto specifico del file system, un memoria flash USB su linux mint per esempio viene montata su /media/utente/USB DISK (utente e’ il nome utente, e USB DISK e’ il nome del dispositivo).

La cosa puo’ apparire solo formale ma in realta e’ sostanziale, in questo modo il disco o la partizione diventa parte integrante del file system principale e la periferica stessa e’ vista come una directory, non come una periferica fisica. I Desktop Environemnt poi hanno tradotto questo rappresentando l’unita’ montata come un dispositivo fisico che appare sul desktop o nel file browser cercando un’analogia con quello che accade su Windows per facilitare l’uso delle unita’ esterne. Anni fa bisognava montare queste unita’ manualmente dando comandi da riga di comando, credo che l’automazione di tutto questo sia una delle cose piu’ comode introdotte per gli utenti.

Al momento dell’installazione se si ha un solo disco fisso e’ di solito consigliato di creare delle partizioni in modo da tenere /home su una partizione diversa rispetto al file sistem principale / in modo che nel caso di dover installare nuovamente il sistema operativo basta formattare la partizione dove risiede / ma la partizione dove risiede /home rimane integra e viene montata inalterata dal nuovo sistema installato.

Come detto, io non ho mai seguito questo consiglio ma con l’occasione di aver installato un secondo SSD nella macchina ho pensato di provare a SPOSTARE la mia home su questo nuovo SSD e poi di impostarla perche fosse rimontata di default al suo posto /home/ sul ramo principale.

Avrei potuto reinstallare tutto partizionando e montando la partizione e poi ripristinare i miei files da un back up, pero’ mi sembrava piu’ elegante provare a spostare la home senza riformattare.

Una volta installato fisicamente l’SSD nella macchina questo viene identificato come sdb (mentre il primo disco e’ sda) e gli viene assegnato un numero identificativo univoco UUID di 32 cifre esadecimali.

I passaggi da fare sono:

  1. partizionare e formattare il nuovo SSD
  2. spostare i files dalla home di partenza /home al nuovo SSD
  3. montare la nuova home al posto della vecchia in /home
  4. modificare il file fstab in modo che ad ogni avvio il disco nuovo con la nostra home venga montato in corrispondenza di /home/

Ho trovato delle istruzioni in rete ma ho semplificato il tutto usando le comodita’ delle interfacce grafiche moderne invece che che procedere solo per riga di comando, in questo modo diventa tutto alla portata di chiunque

La soluzione piu’ comoda e’ usare il software gparted, e’ potentissimo e semplicissimo. Si puo’ decidere di fare un’unica partizione o farne diverse, io ho preferito dedicare tutto lo spazio ad una partizione primaria, formattata ext4. fatto questo il disco e’ pronto

Per essere usato il disco deve essere montato, per farlo basta aprire il file browser e cliccare sul dispositivo che essendo stato partizionato e formattato viene individuato come montabile. Come accade per i dischi rimovibili viene montato in

/media/utente/ e identificato dal suo UUID quindi 
/media/utente/xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx

per identificare l’UUID e il path completo basta prenderlo dal file manager una volta montato il disco

a questo punto e’ possibile copiare i file della propria home che di solito sono dentro /home/utente per farlo io ho usato il potentissimo comando rsync che permette di clonare tutti i files

sudo rsync -aXSv /home/. /media/utente/xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx/.

rsync e’ un potentissimo comando che permette di tenere il contenuto di due directory un sincrono, in questo modo si ha la sicurezza di aver copiato tutto, basta infatti ridare il comando 3-5 volte di fila per assicurarsi che ci sia tutto.

a questo punto non rimane che cancellare la propria home directory con il comando

sudo rm -rI /home/

e quindi andare a modificare il file fstab inserendo la riga che permette di montare ad ogni avvio il nuovo disco contenente la nostra home al ramo /home/

sudo nano /etc/fstab

usando Nano per esempio come editor, basta inserire questa linea al file, dove xxxxx…. rappresenta sempre l’UUID del nostro disco

UUID=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx   /home    ext4          defaults       0       2

Riavviamo e se andiamo a controllare possiamo scoprire che adesso la capacita’ totale del file system e’ data dalla somma delle capacita’ dei due dischi.

Traslocare la Home Directory

Rispondi