Come spostare la directory principale di Linux su un’altra unità

Vuoi spostare la tua cartella home di Linux su un’altra unità? Ecco un modo semplice e graduale per farlo che dovrebbe funzionare su qualsiasi distribuzione. Spostare la tua cartella home 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 directory home su un’unità diversa da quella predefinita.

Una configurazione sempre più popolare per i personal computer moderni consiste nell’avere un Solid State Drive (SSD) di medie dimensioni che contiene il sistema operativo e un Solid State Hybrid Drive (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 sia la tua ragione, ecco un semplice e colpo dopo colpo per spostare la tua directory home.

A proposito, se stai installando un sistema Linux da zero, probabilmente vedrai un’opzione per creare una directory home separata nel programma di installazione della tua distribuzione Linux. In generale, devi solo entrare nelle opzioni di partizionamento, creare una partizione separata e montarla in “/ 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.

Identifica l’unità

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

Il comando fdisk lo farà elenca le unità e le loro partizioni per noi.

sudo fdisk -l

sudo fdisk -l in una finestra di terminale

Scorri l’output finché non hai identificato la nuova unità. La prima unità è chiamata / 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, la nuova unità è la seconda unità da montare nel sistema. Quindi dobbiamo cercare una voce per / dev / sdb.

Uscita da fdisk in una finestra di terminale con / dev / sdb evidenziato

/ 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 effettivo del tuo nuovo disco rigido nel comando.

sudo fdisk /dev/sdb

sudo fdisk / dev / sdb in una finestra di terminale

Quando fdisk ti richiede un comando, premi 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.

  Come installare JetBrains GoLand su Linux

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 di 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.

creando una partizione con fdisk in una finestra di terminale

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 si dà a fdisk il comando di scrivere le modifiche sull’unità, l’unità non viene toccata. Una volta che sei certo di essere soddisfatto delle nostre scelte, premi la lettera w per scrivere le modifiche sull’unità.

la scrittura dell'fdisk cambia nell'unità in una finestra di terminale

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

sudo fdisk /dev/sdb

sudo fdisk / dev / sdb in una finestra di terminale

Premi la lettera p per stampare quella tabella delle partizioni e vedrai che ora è elencata una partizione 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

Dobbiamo creare un filesystem sulla partizione. Ciò si ottiene facilmente con il comando mkfs. Notare che è necessario includere il numero di partizione al comando. Fai attenzione a digitare / dev / sdb1 (la partizione) e non / dev / sdb (l’unità).

sudo mkfs -t ext4 /dev/sdb1

sudo mkfs -t ext4 / dev / sdb1 in una finestra di terminale

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

Uscita dal comando mkfs in una finestra di terminale

Montaggio della nuova unità

Per utilizzare la nuova unità, dobbiamo montare la partizione su di essa in 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 vostro sistema.

  Come applicare una patch a un file (e creare patch) in Linux

Il punto / mnt è un posto buono come un altro. È solo un punto di montaggio temporaneo per consentirci 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

sudo monta / dev / sdb1 / mnt in una finestra di terminale

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

cd /mnt

cd / mnt in una finestra di terminale

Sì possiamo. vediamo cosa c’è qui.

ls -ahl

ls -ahl in una finestra di terminale

Siamo nel nostro nuovo file system. La directory predefinita “lost + found” non è richiesta, quindi possiamo rimuoverla.

sudo rm -rf lost+found

sudo rm -rf perso + trovato in una finestra di terminale

Copiare la cartella Home

Dobbiamo copiare tutto dalla vecchia directory home al filesystem appena montato. L’uso delle opzioni r (ricorsivo) ep (conserva) garantirà tutto le sottodirectory vengono copiate e che le proprietà dei file, le autorizzazioni e altri attributi vengono mantenuti.

sudo cp -rp /home/* /mnt

sudo cp -rp / home / * / mnt in una finestra di terminale

Quando la copia è 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 fosse la tua home directory, è tutto presente e corretto?

ls
ls dave

È in una finestra di terminale

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

sudo mv /home /home.orig

sudo mv / home /home.orig in una finestra di terminale

E creeremo una nuova directory home vuota.

sudo mkdir /home

sudo mkdir / home in una finestra di terminale

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”.

sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home/

sudo umount / dev / sdb1 in una finestra di terminale

Testare la nuova home directory

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

df /dev/sdb1

df / dev / sdb1 in una finestra di terminale

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 referenziarlo esattamente come avremmo potuto fare con la vecchia directory / home.

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

cd /
cd ~
pwd
ls

cd / e altri comandi in una finestra di terminale per testare la directory home

cd /home
ls
cd dave
ls
ls -a

cd / home e altri comandi per testare la directory / home in una finestra di terminale

Possiamo muoverci attraverso il filesystem avanti e indietro fino a / 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.

  Come giocare a Orwell su Linux

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

Ora dobbiamo avere / dev / sdb1 montato automaticamente ogni volta che il computer viene avviato.

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 possiamo tornare in caso di problemi.

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

sudo cp / etc / fstab /etc/fstab.orig in una finestra di terminale

Ora possiamo modificare il file fstab.

sudo gedit /etc/fstab

sudo gedit .etc.fstab in una finestra di terminale

È necessario 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 usati in questo esempio, sostituisci quelli con / dev / sdb1 mostrato qui.

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

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 perfetta alla tua nuova directory / home.

In caso contrario, hai ancora la rete di sicurezza della directory / home originale e del 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 reboot now

sudo riavvia ora in una finestra di terminale

Controlli finali

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

df /dev/sdb1

df / dev / sdb1 in una finestra di terminale

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/

sudo rm -rf home.orig / in una finestra di terminale

E, naturalmente, 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 rimarranno intatti. Tutto quello che devi fare è modificare il file fstab per montare la tua seconda unità su / home.

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

Elimina il problema delle reinstallazioni e riduce il rischio degli aggiornamenti.