Come spostare la directory home di Linux su un'altra unità

Pubblicato: 2022-01-29
Terminale Linux su laptop stilizzato
Fatmawati Achmad Zaenuri/Shutterstock

Vuoi spostare la tua cartella home di Linux su un'altra unità? Ecco un modo semplice e passo dopo passo per farlo che dovrebbe funzionare su qualsiasi distribuzione. Spostare la tua cartella Inizio significa che puoi reinstallare Linux e non devi preoccuparti dei tuoi file personali.

Perché tenere separata la cartella home?

Se stai configurando una nuova macchina o aggiungendo un disco rigido a uno esistente, potresti voler avere la tua home directory su un'unità diversa da quella predefinita.

Una configurazione sempre più popolare per i moderni personal computer consiste nell'avere un'unità a stato solido (SSD) di medie dimensioni che contiene il sistema operativo e un'unità ibrida a stato solido (SSHD) più grande o un disco rigido tradizionale (HD) come memoria principale per i dati. Oppure potresti avere un singolo disco rigido tradizionale nel tuo sistema e hai aggiunto un nuovo HD per aumentare lo spazio di archiviazione. Qualunque siano le tue ragioni, ecco un semplice e rapido riassunto dello spostamento della tua home directory.

A proposito, se stai installando un sistema Linux da zero, probabilmente vedrai un'opzione per creare una home directory separata nel programma di installazione della tua distribuzione Linux. In genere, devi solo accedere alle opzioni di partizionamento, creare una partizione separata e montarla su "/home". Tuttavia, se hai già installato una distribuzione Linux, puoi utilizzare queste istruzioni per spostare la tua directory home corrente in una nuova posizione senza perdere nulla o reinstallare il sistema operativo.

Ora, prima di iniziare, vai a fare un backup.

CORRELATI: Come eseguire il backup del tuo sistema Linux con rsync

Identifica l'unità

Se hai appena installato un'unità su un computer Linux o installato Linux su una delle unità in un nuovo computer a più unità e riavviato, ci sono poche prove che la nuova unità sia presente.

Annuncio pubblicitario

Il comando fdisk elencherà per noi le unità e le loro partizioni.

 sudo fdisk -l 

Scorri l'output finché non hai identificato la nuova unità. La prima unità è denominata /dev/sda , la seconda è /dev/sdb e così via, con l'ultima lettera che aumenta ogni volta. Quindi /dev/sde sarebbe il quinto disco rigido del sistema.

in questo esempio, il nuovo drive è il secondo drive da montare sul sistema. Quindi dobbiamo cercare una voce per /dev/sdb .

/dev/sdb è evidenziato sopra. Noterai che non ha una riga che descrive una partizione su di esso. È un disco nuovo di zecca, quindi non ne avrà ancora uno. Dobbiamo creare la partizione. Possiamo farlo usando fdisk . Se il tuo disco rigido non è /dev/sdb , assicurati di sostituire /dev/sdb con l'identificatore di unità effettivo per il tuo nuovo disco rigido nel comando.

 sudo fdisk /dev/sdb 

Quando fdisk richiede un comando, premere la lettera p . Questo stampa la tabella delle partizioni per il disco rigido. Sappiamo che non ne avrà uno, ma otteniamo alcune informazioni utili sull'unità. Ci dà una buona possibilità di assicurarci che l'unità per cui creeremo una partizione sia l'unità con cui intendevamo lavorare.

Ci dice che l'unità è un'unità da 1 TB, che corrisponde a ciò che ci aspettiamo in questa macchina di prova, quindi procederemo.

Crea una partizione

Premere la lettera n per una nuova partizione, quindi premere p per una partizione primaria. Quando viene richiesto il numero della partizione, premere il numero 1 .

Annuncio pubblicitario

Creeremo una singola partizione per l'intero disco, quindi quando richiesto per il primo settore possiamo premere Invio per accettare il valore predefinito. Ti verrà quindi richiesto l'ultimo settore e Invio accetterà il valore predefinito.

Sebbene fdisk confermi di aver creato una partizione Linux da 1 TB, che è la partizione numero 1, non è ancora cambiato nulla sul disco rigido. Fino a quando non dai a fdisk il comando per scrivere le modifiche sull'unità, l'unità non è stata modificata. Una volta che sei certo di essere soddisfatto delle nostre scelte, premi la lettera w per scrivere le modifiche sull'unità.

La partizione è stata scritta in /dev/sdb . Controlliamo cosa è appena successo. Useremo ancora una volta fdisk su /dev/sdb .

 sudo fdisk /dev/sdb 

Premi la lettera p per stampare quella tabella delle partizioni e vedrai che ora c'è una partizione elencata per l'unità. Poiché era la prima partizione su questa unità, si chiama /dev/sdb1 . Una seconda partizione sarebbe chiamata /dev/sdb2 e così via.

Non vogliamo apportare modifiche alla partizione, quindi premi la lettera q per uscire.

Crea un file system sulla partizione

Abbiamo bisogno di creare un filesystem sulla partizione. Questo si ottiene facilmente con il comando mkfs . Si noti che è necessario includere il numero di partizione nel comando. Fare attenzione a digitare /dev/sdb1 (la partizione) e non /dev/sdb (l'unità).

 sudo mkfs -t ext4 /dev/sdb1 

Annuncio pubblicitario

Il filesystem verrà creato per te e verrai riportato al prompt dei comandi.

Montaggio della nuova unità

Per utilizzare la nuova unità, dobbiamo montare la partizione su di essa su un punto di montaggio nel filesystem. In realtà, per essere perfettamente precisi, non stiamo montando né l'unità né la partizione, stiamo montando il filesystem sulla partizione, innestandolo nell'albero del filesystem del tuo sistema.

Il punto /mnt è un posto buono come un altro. È solo un punto di montaggio temporaneo che ci consente di copiare i dati sulla nuova unità. Useremo il comando mount per montare il filesystem sulla prima partizione su /dev/sdb , in /mnt .

 sudo mount /dev/sdb1 /mnt 

Se tutto va bene, verrai riportato alla riga di comando senza messaggi di errore. Vediamo se possiamo cambiare la directory nel nostro filesystem appena montato.

 cd /mnt 

Sì possiamo. vediamo cosa c'è qui

 ls -ah 

Siamo nel nostro nuovo file system. La directory predefinita "smarrito+trovato" non è richiesta, quindi possiamo rimuoverla.

 sudo rm -rf perso+trovato 

Copiare la cartella Inizio

Abbiamo bisogno di copiare tutto dalla vecchia home directory al filesystem appena montato. L'uso delle opzioni r (ricorsivo) p (conserva) garantirà che tutte le sottodirectory vengano copiate e che le proprietà dei file, le autorizzazioni e altri attributi vengano mantenuti.

 sudo cp -rp /home/* /mnt 

Annuncio pubblicitario

Quando la copia è stata completata, usa ls per dare un'occhiata in giro e verificare che i tuoi dati siano dove ti aspetti che siano nel nuovo filesystem. In altre parole, se /mnt era la tua home directory, è tutto presente e corretto?

 ls
 è dave 

Probabilmente vorrai essere un po' più approfondito di quanto non fossimo sulla macchina di prova su cui questo articolo è stato studiato. Come rete di sicurezza, rinomineremo e manterremo la tua vecchia directory /home finché non sarai soddisfatto che sia sicuro eliminarla.

 sudo mv /home /home.orig 

E creeremo una nuova directory home vuota.

 sudo mkdir /home 

Useremo quella nuova directory home vuota come punto di montaggio per il nostro filesystem sul nuovo disco rigido. Dobbiamo smontarlo da /mnt e rimontarlo su /home . Nota che il comando umount non ha una "n" dopo la "u".

Ma prima, passeremo alla directory principale (con cd / ) per assicurarci di non trovarci in una directory che verrà inclusa nelle posizioni di montaggio o smontaggio.

 cd /
 sudo smonta /dev/sdb1
 sudo mount /dev/sdb1 /home/ 

CORRELATI: La struttura della directory di Linux, spiegata

Testare la tua nuova home directory

Vediamo ora quali sono gli attributi della partizione /dev/sdb1 :

 df /dev/sdb1 

Annuncio pubblicitario

Ci viene mostrato il nome del filesystem, la dimensione della partizione e lo spazio utilizzato e disponibile su di essa e, soprattutto, dove è montato. Ora è la nostra directory /home . Ciò significa che dovremmo essere in grado di fare riferimento esattamente come potremmo fare con la vecchia directory /home .

Se ci spostiamo in un punto arbitrario del filesystem, dovremmo essere in grado di tornare a /home usando la scorciatoia ~ tilde.

 cd /
 cd ~
 pwd
 ls 

 cd/casa
 ls
 cd dave
 ls
 ls -a 

Possiamo muoverci attraverso il filesystem avanti e indietro verso /home usando comandi espliciti e usando la scorciatoia ~ . Le cartelle, i file e i dotfile che ci aspetteremmo sono tutti presenti. Sembra tutto a posto.

Se mancava qualcosa, potremmo copiarlo dalla directory /home.orig , a cui abbiamo ancora accesso nella radice del filesystem. Ma sembra tutto a posto.

Ora è necessario che /dev/sdb1 venga montato automaticamente ogni volta che si avvia il computer.

Modifica fstab

Il file "fstab" contiene le descrizioni dei filesystem che verranno montati all'avvio del sistema. Prima di apportare modifiche, ne faremo una copia di backup a cui potremo tornare in caso di problemi.

 sudo cp /etc/fstab /etc/fstab.orig 

Annuncio pubblicitario

Ora possiamo modificare il file fstab. Usa il tuo editor preferito, stiamo usando gedit . Qualsiasi editor di testo lo farà.

 sudo gedit /etc/fstab 

Devi aggiungere una riga in fondo al file per montare la nostra nuova directory /home . Se gli identificatori di unità e partizione sono diversi da quelli utilizzati in questo esempio, sostituisci quelli con /dev/sdb1 mostrato qui.

  • Digitare il nome della partizione all'inizio della riga, quindi premere Tab.
  • Digita il punto di montaggio, /home e premi Tab.
  • Digita la descrizione del filesystem ext4 e premi Tab.
  • Digita i defaults per le opzioni di montaggio e premi Tab.
  • Digitare la cifra 0 per l'opzione di dump del filesystem e premere Tab.
  • Digitare la cifra 0 per l'opzione di controllo del filesystem.

Utilizzo di gedit per modificare il file fstab

Salva il file fstab.

Riavvia il tuo sistema

Dobbiamo riavviare per verificare che tutto sia andato secondo i piani e che tu abbia una connessione senza interruzioni alla tua nuova directory /home .

In caso contrario, hai ancora la rete di sicurezza della tua directory /home originale e il file fstab che potrebbe essere ripristinato se necessario. A causa delle precauzioni che abbiamo preso, copiando la directory /home e i file fstab, potresti facilmente riportare il tuo sistema allo stato in cui si trovava prima di iniziare.

 sudo riavvia ora 

CORRELATI: Come riavviare o spegnere Linux utilizzando la riga di comando

Controlli finali

Quando il tuo sistema si riavvia, controlliamo solo che la tua directory /home sia davvero sul tuo nuovo disco rigido e che il tuo sistema non sia in qualche modo (miracolosamente) tornato a utilizzare la vecchia directory /home .

 df /dev/sdb1 

Ottimo, è montato su /home . Missione compiuta.

Una volta che sei perfettamente sicuro di non aver più bisogno della copia di sicurezza della tua vecchia directory /home , puoi eliminarla:

 cd /
 sudo rm -rf home.orig/ 

Annuncio pubblicitario

E ovviamente, se ti rendi conto che qualcosa non è stato copiato dalla vecchia /home alla tua nuova /home , sarai in grado di recuperarlo dal backup che hai fatto prima di iniziare.

Casa dolce casa

Ora che hai separato la tua directory /home dal resto della partizione del sistema operativo, puoi reinstallare il tuo sistema operativo e i tuoi dati non saranno modificati. Tutto quello che devi fare è modificare il file fstab per montare la tua seconda unità su /home .

E poiché tutti i tuoi dotfile si trovano nella tua directory /home , quando avvii le tue varie applicazioni, troveranno tutte le tue impostazioni, preferenze e dati.

Elimina il dolore delle reinstallazioni e il rischio degli aggiornamenti.

CORRELATI: I migliori laptop Linux per sviluppatori e appassionati