Come spostare la directory home di Linux su un'altra unità
Pubblicato: 2022-01-29Vuoi 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.
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
.
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
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
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
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
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.
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/
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.
Comandi Linux | ||
File | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · converti · rclone · shred · srm | |
Processi | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Rete | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
CORRELATI: I migliori laptop Linux per sviluppatori e appassionati