Ricerca nel sito web

Come spostare la directory Home su una nuova partizione o disco in Linux


Su qualsiasi sistema Linux, una delle directory che sicuramente aumenterà di dimensione sarà la directory /home. Questo perché le directory degli account di sistema (utenti) risiederanno in /home tranne l'account root: qui gli utenti memorizzeranno continuamente documenti e altri file.

Un'altra directory importante con lo stesso comportamento è /var, contiene file di registro la cui dimensione aumenterà gradualmente man mano che il sistema continua a funzionare come file di registro, file web, file di spool di stampa ecc.

Quando queste directory si riempiono, ciò può causare problemi critici sul file system root con conseguente errore di avvio del sistema o altri problemi correlati. Tuttavia, a volte puoi notare questo solo dopo aver installato il sistema e configurato tutte le directory sul file system/partizione root.

Lettura consigliata: spiegazione della struttura delle directory Linux e dei percorsi dei file importanti

In questa guida mostreremo come spostare la directory home in una partizione dedicata possibilmente su un nuovo disco di archiviazione in Linux.

Installazione e partizionamento di un nuovo disco rigido in Linux

Prima di procedere oltre, spiegheremo brevemente come aggiungere un nuovo disco rigido a un server Linux esistente.

Nota: se hai già una partizione pronta per l'operazione, vai alla sezione che spiega i passaggi per spostare la directory /home in una partizione propria di seguito.

Supponiamo che tu abbia collegato il nuovo disco al sistema. Su un disco rigido, il numero di partizioni da creare e la tabella delle partizioni sono normalmente determinati dal tipo di etichetta del disco e i primi byte di spazio definiranno l'MBR (Master Boot Record ) che memorizza la tabella delle partizioni e il boot loader (per i dischi avviabili).

Sebbene esistano molti tipi di etichette, Linux ne accetta solo due: MSDOS MBR (516 byte di dimensione) o GPT (Tabella delle partizioni GUID) MBR.

Supponiamo inoltre che il nuovo disco rigido (/dev/sdb di dimensione 270 GB utilizzato ai fini di questa guida, probabilmente necessiti di una capacità maggiore su un server per ampio bacino di utenza.

Per prima cosa devi impostare il tipo di etichetta del disco usando fdisk o parted; in questo esempio abbiamo utilizzato il nome dell'etichetta GPT.

parted /dev/sdb mklabel gpt

Nota: fdisk supporta solo MSDOS MBR per ora e parted supporta entrambe le etichette.

Ora crea la prima partizione (/dev/sdb1) con dimensioni 106 GB. Abbiamo riservato 1024 MB di spazio per l'MBR.

parted -a cylinder /dev/sdb mkpart primary 1074MB 107GB

Spiegando il comando sopra:

  • a – opzione per specificare l'allineamento della partizione.
  • mkpart – comando secondario per creare la partizione.
  • primaria – imposta il tipo di partizione come primaria sul disco rigido (gli altri valori sono logici o estesi).
  • 1074MB – inizio della partizione.
  • 107GB – fine della partizione.

Ora controlla lo spazio libero sul disco come segue.

parted /dev/sdb print free

Creeremo un'altra partizione (/dev/sdb2) con dimensioni 154GB.

parted -a cylinder /dev/sdb mkpart primary 115GB 268GB

Successivamente, impostiamo il tipo di filesystem su ciascuna partizione.

mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb2

Per visualizzare tutti i dispositivi di archiviazione collegati al sistema, digitare.

parted -l

Spostamento della directory Home in una partizione dedicata

Ora abbiamo aggiunto il nuovo disco e creato la partizione necessaria; è ora di spostare la cartella home in una delle partizioni. Per utilizzare un filesystem, deve essere montato sul filesystem root in un punto di montaggio: la directory di destinazione come /home.

Per prima cosa elenca l'utilizzo del filesystem usando il comando df sul sistema.

df -l

Inizieremo creando una nuova directory /srv/home dove possiamo montare /dev/sdb1 per il momento.

mkdir -p /srv/home
mount /dev/sdb1 /srv/home 

Quindi sposta il contenuto di /home in /srv/home (così saranno praticamente archiviati in /dev/sdb1) utilizzando il comando rsync o comando CP.

rsync -av /home/* /srv/home/
OR
cp -aR /home/* /srv/home/

Successivamente, troveremo la differenza tra le due directory utilizzando lo strumento diff, se tutto va bene, vai al passaggio successivo.

diff -r /home /srv/home

Successivamente, elimina tutti i vecchi contenuti in /home come segue.

rm -rf /home/*

Successivamente smonta /srv/home.

umount /srv/home

Infine, nel frattempo dobbiamo montare il filesystem /dev/sdb1 su /home.

mount /dev/sdb1 /home
ls -l /home

Le modifiche di cui sopra dureranno solo per l'avvio corrente, aggiungi la riga seguente in /etc/fstab per rendere le modifiche permanenti.

Utilizza il seguente comando per ottenere la partizione UUID.

blkid /dev/sdb1

/dev/sdb1: UUID="e087e709-20f9-42a4-a4dc-d74544c490a6" TYPE="ext4" PARTLABEL="primary" PARTUUID="52d77e5c-0b20-4a68-ada4-881851b2ca99"

Una volta conosciuta la partizione UUID, apri il file /etc/fstab e aggiungi la riga seguente.

UUID=e087e709-20f9-42a4-a4dc-d74544c490a6   /home   ext4   defaults   0   2

Spiegando il campo nella riga sopra:

  • UUID – specifica il dispositivo a blocchi, in alternativa puoi utilizzare il file del dispositivo /dev/sdb1.
  • /home: questo è il punto di montaggio.
  • etx4: descrive il tipo di file system sul dispositivo/partizione.
  • default – opzioni di montaggio (qui questo valore significa rw, suid, dev, exec, auto, nouser e async).
  • 0 – utilizzato dallo strumento dump, 0 significa non eseguire il dump se il filesystem non è presente.
  • 2 – utilizzato dallo strumento fsck per scoprire l'ordine di controllo del filesystem, questo valore significa controllare questo dispositivo dopo il filesystem root.

Salvare il file e riavviare il sistema.

Puoi eseguire il seguente comando per vedere che la directory /home è stata spostata con successo in una partizione dedicata.

df -hl

Per ora è tutto! Per comprendere meglio il file system Linux, leggi queste guide relative alla gestione del file system su Linux.

  1. Come eliminare gli account utente con la home directory in Linux
  2. Cos'è Ext2, Ext3 ed Ext4 e come creare e convertire file system Linux
  3. 7 modi per determinare il tipo di file system in Linux (Ext2, Ext3 o Ext4)
  4. Come montare file system o directory Linux remoti utilizzando SSHFS su SSH

In questa guida ti abbiamo spiegato come spostare la directory /home in una partizione dedicata in Linux. Puoi condividere qualsiasi pensiero riguardante questo articolo tramite il modulo di commento qui sotto.