Guida verificata con Ubuntu: 20.04 22.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida illustra la procedura per spostare in partizione separata la cartella /home, oppure altre directory quali /temp, /var ecc., senza reinstallare il sistema operativo.

Si raccomanda di eseguire una copia di backup di tutti i propri dati prima di procedere con le operazioni descritte di seguito.

Descrizione

In fase di installazione è possibile impostare il sistema affinché siano collocate alcune directory del filesystem (/home, /boot, /tmp, /etc/fstab, /usr, /var, /opt ecc.) in apposite partizioni dedicate (create contestualmente o in precedenza, presenti su uno o più dischi fisici), diverse da quella di sistema (/, root), assegnando i relativi punti di mount. Per maggiori informazioni consultare questo paragrafo.

Tuttavia potrebbe capitare di avere necessità di partizioni separate per specifiche directory di sistema successivamente all'installazione.

Spostare alcune cartelle in partizioni separate dalla / (root) può essere utile in certi casi:

Prerequisiti

Le operazioni di seguito descritte comportano la conoscenza dei seguenti argomenti:

Procedura

Le operazioni di seguito descritte comprendono, in sintesi, i seguenti passaggi:

  1. Verifica dello spazio disponibile
  2. Modifica e/o predisposizione delle partizioni
  3. Copia della/e cartella/e
  4. Modifica del file /etc/fstab

  5. Verifica del funzionamento
  6. Eliminazione della/e cartella/e precedentemente utilizzate.

Nella procedura descritta di seguito verrà riportato come esempio lo spostamento della cartella /home (caso assai comune). Va da sé che la medesima procedura è compatibile anche con altre cartelle di sistema (/tmp, /var, /opt ecc.) applicando nei passaggi descritti di seguito le opportune modifiche dei nomi delle directory interessate.

La partizione che ospiterà la cartella spostata dovrà essere sempre maggiore alla cartella di origine.
Si raccomanda di dedicare spazio adeguato per tutte le cartelle spostate.
Si raccomanda lo spostamento di /boot solo agli utenti esperti, specialmente per i sistemi multiboot e/o Uefi.

Verifica dello spazio occupato dalla directory da spostare

Digitare nel terminale il comando:

sudo du -kshP /home

L'output sarà simile al seguente:

1,3G    /home

Si dovrà pertanto creare successivamente una partizione di dimensioni superiori a 1,3 GB.

Verifica dimensioni delle partizioni

Verificare e annotare la dimensione delle proprie partizioni digitando il seguente comando in un terminale:

df -h

L'output sarà simile al seguente:

File system            Dim. Usati Disp. Uso% Montato su
/dev/sda1              18G  4,4G   13G  26%  /
/dev/loop0             90M   90M     0  100% /snap/core/6130
/dev/loop1             91M   91M     0  100% /snap/core/6405

Modifica delle partizioni

  1. Se per creare lo spazio destinato alla nuova partizione è necessario ridurre la partizione di sistema / (root), utilizzare una DVD/USB live per compiere questa operazione.
    Se invece la partizione è già disponibile passare al punto successivo.

  2. Formattare la partizione di destinazione con lo stesso filesystem utilizzato per / (ext3, ext4, ecc.).

Copia delle partizioni

  1. Per montare la partizione appena creata, digitare il seguente comando nel terminale:

    sudo mkdir /media/home && sudo mount /dev/sdxy /media/home

    mettendo al posto di sdxy il nome della propria partizione.

  2. Copiare la vecchia /home nella nuova posizione digitando il seguente comando nel terminale:

    sudo cp -priv /home/nome_utente /media/home

    sostituendo nome_utente con il proprio nome utente. La durata del processo dipenderà dalla quantità di dati da trasferire.

  3. Verificare che la dimensione della /home originale e della sua copia coincidano confrontando i comandi

    df -h /home

    e

    df -h /media/home 

Modifica di /etc/fstab/

  1. Ricavare l'UUID della partizione in cui è stata copiata la /home digitando il seguente comando in un terminale:

    sudo blkid /dev/sdxy

    sostituendo sdxy con il nome della propria partizione.

  2. Il comando restituirà un output simile al seguente:

    /dev/sda2: UUID="41800cf0-acb6-4845-b05e-479e9258f25f" TYPE="ext4"
  3. Prendere nota del valore dell'UUID ottenuto, in questo caso:

    41800cf0-acb6-4845-b05e-479e9258f25f
  4. Creare una copia di backup di /etc/fstab:

    sudo cp /etc/fstab /etc/fstab.backup
  5. Aprire il file /etc/fstab con un editor di testo e con i privilegi di amministrazione.

  6. In una nuova riga inserire:

    UUID=uid /home ext4 defaults 0  2

    sostituendo uid con l'UUID individuato in precedenza e ext4 qualora sia in uso un filesystem differente.

  7. Salvare e chiudere il file.
  8. Riavviare il sistema.

Verifica

Al riavvio, per verificare che la cartella /home sia stata effettivamente spostata, si può utilizzare il comando:

df -h

che restituirà un output simile al seguente:

File system            Dim. Usati Disp. Uso% Montato su
/dev/sda1             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/sda2             6,3G  1,4G  4,6G  24% /home

in cui si può notare che la /home si trova adesso in una partizione diversa da / (in questo esempio in /dev/sda2).

Risoluzione di problemi

Qualora la procedura non avesse avuto esito positivo, durante il boot del sistema potrebbe comparire un messaggio di errore simile al seguente:

L'unità disco per /home non è ancora pronta o non è presente

Per risolvere il problema premere il tasto M sulla tastiera. Comparirà quindi una shell di ripristino. A questo punto:

  1. Ripristinare il file /etc/fstab originale digitando il comando

    cp -f /etc/fstab.backup /etc/fstab
  2. Riavviare quindi il sistema con il comando

    shutdown -r now

Il sistema sarà riavviato e si tornerà alla condizione preesistente. La partizione che è stata creata non verrà però eliminata.

Pertanto sarà possibile, a seconda dei casi, effettuare le opportune verifiche al sistema per individuare la causa dell'errore (es.: valore errato dell'UUID nel file /etc/fstab) e ritentare lo spostamento, oppure ripristinare la situazione iniziale.

Eliminazione delle cartelle precedenti

Se la procedura ha avuto esito positivo, sarà infine possibile eliminare le cartelle precedenti (come da esempio, la vecchia /home, interna alla partizione root di sistema). Per eseguire l'operazione si raccomanda di utilizzare un DVD o USB live, per agevolare il riconoscimento della directory da eliminare.

Ulteriori risorse


CategoryHardware

Hardware/DispositiviPartizioni/SpostareHomePartizioneSeparata (l'ultima modifica è del 13/04/2023 11.26.41, fatta da andreas-xavier)