Se sei un nuovo utente di Linux o qualcuno che ha intenzione di abbandonare Windows e passare a Linux, allora questo articolo ti sarà di grande utilità. Questo articolo passo passo ti guiderà attraverso la procedura per spostare la directory home in una nuova partizione o unità in Linux.
Introduzione
La maggior parte dei principianti durante l'installazione di sistemi operativi Linux non si preoccuperà di creare partizioni diverse.
I neofiti di solito scelgono di rimanere con la partizione predefinita in cui tutti i file system (/home
, /var
, /boot/
, /opt
, ecc.) verranno montati in un'unica partizione.
In effetti, ho anche scelto lo schema di partizione predefinito nei miei primi giorni da principiante di Linux. Quando il mio sistema operativo va in crash, ho perso tutti i miei dati personali in /home
directory. Questo perché ho creato una sola partizione per l'intero disco e ho montato tutto in quella partizione.
Lezione appresa! Il modo migliore per proteggere i dati è creare una partizione separata per la home directory. Quindi, se la tua macchina si arresta in modo anomalo per qualsiasi motivo, la partizione non sarà interessata a meno che l'intero disco non sia difettoso.
Insieme a partizioni separate, è consigliabile fare il backup dei dati su un'unità esterna. Ci sono molti strumenti di backup disponibili per la piattaforma Linux. Abbiamo pubblicato molte guide su Backup Linux argomento. Controlla i seguenti link e scegli quello più adatto alle tue esigenze.
Guide per il backup di Linux:
- Come eseguire il backup dell'intero sistema Linux utilizzando Rsync
- Come eseguire il backup di file e directory utilizzando Rsync in Linux
- Come eseguire il backup e il ripristino del sistema Linux con Timeshift
- Come eseguire il backup e il ripristino di file utilizzando BorgBackup in Linux
- Vorta:un frontend grafico per BorgBackup
- Come eseguire il backup e il ripristino di file utilizzando Deja Dup in Linux
- Come configurare il server di backup utilizzando Rsnapshot
- CYA:utilità di ripristino e snapshot di sistema per Linux
- Restic:un'applicazione di backup veloce, sicura ed efficiente
- Come installare Rclone in Linux e Unix
Ai fini di questa guida, utilizzerò Rocky Linux macchina virtuale in esecuzione in Virtualbox.
Disclaimer: Non farlo su un sistema di produzione. Il trasferimento della directory /home su una nuova partizione o unità può causare la perdita di dati e/o un errore di avvio del sistema. Se sei un principiante, ti consiglio vivamente di cercare l'aiuto di esperti. Né l'autore né il team OSTechNix sono responsabili per eventuali danni. Sei stato avvisato!
Ottieni informazioni sulla partizione
Possiamo elencare i dettagli della partizione del disco utilizzando vari strumenti in Linux. In questa guida useremo il comando lsblk e fdisk.
Per ottenere le informazioni sul dispositivo di blocco utilizzando lsblk
comando, esegui:
$ lsblk

Nella mia macchina ho un'unità da 50 GB (sda). Ho optato per uno schema di partizionamento predefinito, quindi ci sono due partizioni (sda1, sda2) create dal programma di installazione del sistema operativo.
NOTA: Lo schema di denominazione delle unità varia a seconda del tipo di unità collegata alla macchina.
Come affermato in precedenza, possiamo anche usare fdisk
comando per ottenere le informazioni sul dispositivo di blocco.
$ sudo fdisk -l

Per controllare in quale partizione è montata la directory home, usa il df
comando. Nel mio caso, è montato sotto / .
$ df -h /home Filesystem Size Used Avail Use% Mounted on /dev/mapper/rl-root 46G 2.8G 43G 7% /
Crea nuova partizione
Ho inserito un'altra unità con una dimensione di 20 GB nella virtualbox. L'unità è nota come sdb .

Creiamo una nuova partizione dalla nuova unità in cui verrà montata la partizione home. Userò fdisk
utility per creare una partizione.
$ sudo fdisk /dev/sdb
Digita "n
" per creare una nuova partizione.

Ti verrà chiesto di scegliere il tipo di partizione, il numero di partizione, il primo settore e l'ultimo settore. Nell'ultimo settore, puoi fornire input in termini di GB, PB, TB, ecc. Sto creando una partizione da 10 GB, quindi inserisci un input come +10G.

Digita "w
" e scriverà le modifiche nella tabella delle partizioni.

Ora verifica se la nuova partizione (cioè sdb1 -> 10G) è stata creata elencando le informazioni sul dispositivo a blocchi con lsblk
comando:
$ lsblk /dev/sdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 10G 0 part
Formatta e monta la partizione
Formattiamo la partizione appena creata con il file system ext4 usando mkfs
comando:
$ sudo mkfs.ext4 /dev/sdb1

Ora la partizione può essere montata in qualsiasi directory come desideri. Dato che monteremo temporaneamente questa directory, scelgo /mnt
directory.
$ sudo mkdir /mnt/home_move/
$ sudo mount /dev/sdb1 /mnt/home_move/

Sposta la directory principale in una nuova partizione in Linux
Ora tutta la directory e i file dalla home directory dovrebbero essere copiati nella partizione appena creata montata in /mnt/home_move
.
Uso il seguente rsync
comando per copiare i dati nella nuova partizione. Sostituisci il nome del percorso della directory di destinazione con il tuo.
$ rsync -av /home/* /mnt/home_move/
Una volta copiati i dati nella nuova partizione, non rimuovere la home directory ancora. Spostalo in modo che in caso di incidenti puoi tornare indietro.
$ sudo mv /home /home_old
$ ls -l /home
ls: cannot access '/home': No such file or directory
Crea un nuovo /home
directory per montare /dev/sdb1
.
$ sudo mkdir /home
Ricorda la partizione /dev/sdb1
è già montato in /mnt/home_move/
. Dovrebbe essere smontato prima, quindi può essere montato in /home
directory.
$ sudo umount /dev/sdb1
$ sudo mount /dev/sdb1 /home
Ora la nuova partizione /dev/sdb1
è stato montato correttamente in /home
directory. Puoi eseguire lsblk
e df
comando per verificarlo.
$ lsblk /dev/sdb sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 10G 0 part /home
$ df -h /home/ Filesystem Size Used Avail Use% Mounted on /dev/sdb1 9.8G 37M 9.3G 1% /home
Montaggio persistente con Fstab
Aggiungi una voce a fstab
file in modo che le partizioni appena create vengano montate automaticamente durante l'avvio del sistema. Fai il backup di fstab
file come misura di sicurezza.
$ sudo cp /etc/fstab /etc/fstab_old
Apri fstab e aggiungi le seguenti voci in fondo al file fstab. Sostituisci /dev/sdb1
con il nome della partizione dell'unità.
/dev/sdb1 /home ext4 defaults 0 0

Puoi anche utilizzare l'UUID di un dispositivo a blocchi per montare la partizione. Per trovare l'UUID per un dispositivo a blocchi, esegui i seguenti comandi.
$ lsblk -f /dev/sdb1
$ blkid | grep -i sdb1

Riavvia la macchina, accedi nuovamente e controlla dove è montata la directory /home eseguendo df
comando.
$ df -h /home/ Filesystem Size Used Avail Use% Mounted on /dev/sdb1 9.8G 37M 9.3G 1% /home
Directory principale della partizione durante l'installazione del sistema operativo
Puoi saltare tutti i passaggi discussi nelle sezioni precedenti se hai creato una partizione separata per la directory home durante l'installazione del sistema operativo. Ogni programma di installazione avrà un passaggio per configurare il disco.
Ti verrà richiesto uno schema di partizione automatico o uno schema di partizione personalizzato. Dovresti scegliere uno schema di partizione personalizzato e creare partizioni separate.
Di seguito è riportata un'immagine di esempio dalla mia partizione personalizzata RHEL 8.4 in cui viene creata una partizione home separata con 15 GB.

Conclusione
In questo articolo, abbiamo discusso di come spostare la directory home da una partizione a un'altra in Linux. La procedura è la stessa se si desidera spostare la directory HOME su una nuova unità.
Basta creare una nuova partizione, formattarla con il filesystem di tua scelta e montarla. Dopo aver montato la partizione, sposta i dati nella nuova partizione. Sposta i dati dalla vecchia partizione a quella nuova. Infine, aggiungi la voce fstab per renderlo persistente.
Se hai suggerimenti o feedback, pubblicali nella sezione commenti e saremo lieti di risponderti.
Lettura correlata:
- Crea directory home per utenti esistenti in Linux
Immagine in primo piano di Pixabay.