Come posso spostare la directory home in una partizione separata?


22

Vorrei installare un'altra distribuzione ma mantenere la mia home directory. C'è un modo per spostare la home directory in una partizione separata? Non ho un disco rigido esterno disponibile per il backup dei miei dati. Vorrei impostare le mie partizioni come suggerito qui .


1
È sempre possibile ripartizionare e quindi ripristinare / home dal backup. Hai dei backup, vero?
KeithB,

Risposte:


13

La tua domanda è distro-neutrale, quindi se menziono qualcosa di specifico che non hai, usa solo l'equivalente dalla tua parte.

Consiglio vivamente di acquistare un esterno per i backup, fidati di me, perdere i tuoi dati è il peggiore. Procedi a tuo rischio e pericolo - Ma se non riesci a ottenerne uno, ecco cosa puoi fare.

Quello di cui hai bisogno

  • la dimensione della tua directory / home
  • spazio libero, superiore alla dimensione della tua directory / home
  • strumento di partizionamento del disco, consiglio gparted

Cosa fare

  • Controlla le dimensioni della tua directory / home (l'ultimo risultato sarà il totale home):

    du -h /home

  • Controlla se hai abbastanza spazio libero per la nuova partizione:

    df -h

  • Installa gparted

    sudo apt-get install gparted

Hai bisogno di più spazio libero rispetto alle dimensioni della tua directory / home. Se non hai lo spazio libero, non sarai in grado di creare quella nuova partizione e dovrai comunque spostare i tuoi dati su un dispositivo esterno.

Se si dispone dello spazio, utilizzare gparted per ridurre la partizione esistente, quindi creare una nuova partizione con lo spazio non allocato liberato. Quando la tua nuova partizione è pronta, nota che è / dev / sdax (usa sudo fdisk -lper vedere questo) e copia i tuoi file / home su di essa.

Utilizzo della partizione in una nuova distribuzione

Hai menzionato l'installazione di un'altra distro, se prevedi di sovrascrivere la tua distro attuale, durante l'installazione ti verrà chiesto di configurare le partizioni. A quel punto puoi specificare questa partizione come / home, scegliere di non formattarla e tutto andrà bene, puoi saltare questa sezione successiva.

Se comunque vuoi che la tua distribuzione attuale funzioni con la nuova partizione / home, segui questa sezione:

Montare la partizione in una distribuzione esistente

Dobbiamo dire al tuo sistema operativo di usare la partizione come nuovo / home, lo facciamo in fstab, ma prima cerchiamo di trovare l'UUID di questa nuova partizione:

ls -l /dev/disk/by-uuid

Fai un riferimento incrociato alla tua nuova partizione / sdax e copia l'UUID di esso, il mio sembra 3d866059-4b4c-4c71-a69c-213f0e4fbf32.

Backup fstab: sudo cp /etc/fstab /etc/fstab.bak modifica fstab:sudoedit /etc/fstab

L'idea è di aggiungere una nuova linea che monta la partizione in / home. Usa il tuo UUID, non quello che inserisco qui;)

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
UUID=3d866059.. /home           auto    default         0       1

Salvare e riavviare e verificare se la nuova partizione viene montata su / home. Esegui df -hper elencare tutte le partizioni montate, / home ora dovrebbe essere in quell'elenco.


Gli appunti

  • Potrebbe essere una buona idea familiarizzare con fstab se non lo conosci bene. Prenditi il ​​tuo tempo e pensa a ogni passaggio.
  • Se installi una nuova distro e utilizzi lo stesso nome di accesso, i tuoi vecchi file / home rientreranno automaticamente nella tua proprietà.
  • Questo non è un argomento banale da trattare in un post, ma penso di averne ottenuto gran parte. :)

Sto cercando di usare gparted, ma non riesco a ridimensionare la partizione /. Hai qualche consiglio su come ridimensionare la partizione di root? Potrei usare Parted Magic per farlo da un cd live.
vanillaike,

1
Sì, dovresti farlo da un Live CD perché il filesystem è montato dal sistema operativo in esecuzione. Ubuntu Live CD, Knoppix o Parted Magic funzioneranno tutti.
inverti il

3

Il titolo del post e la tua domanda mi hanno creato confusione. Vuoi separare il tuo homein una partizione o vuoi solo reinstallare e mantenere lo stesso home?

Se tutto ciò che desideri è reinstallare l'intero sistema operativo mantenendo il tuo, homepuoi eseguire il backup homein un luogo che non sarà interessato dall'installazione, quindi ripristinarlo successivamente, insieme a una correzione dell'autorizzazione (utilizzare chown -R username:groupnameper assicurarsi che la proprietà sia corretta ).

Se vuoi seguire alcune best practice e separare la tua, homeecco la guida di cui hai bisogno . È scritto per Ubuntu, ma penso che la stessa cosa valga per altre distro.


dispiace per la confusione. Vorrei separare la mia casa in una partizione
vanillaike l'

ATTENZIONE: il collegamento in "fix autorizzazione" rimbalza attualmente su uno a due diversi siti Web, l'ultimo dei quali richiede di installare Adobe Flash in una replica della finestra di dialogo dell'installer dall'aspetto molto complicato.
user66001,

Ho scollegato la "correzione delle autorizzazioni" e copiato nei consigli dall'articolo originale, che ho trovato archiviato .
mattdm,

2

Supponendo che tu abbia già una partizione separata (e, in caso contrario, probabilmente vuoi usare gparted o qualcosa di simile, per crearne una), devi semplicemente fare quanto segue (preferibilmente come utente root):

 cp -R /home/whatever /path/to/destination
 mv /home/whatever /home/whatever.orig
 ln -s /path/to/destionation /home/whatever 

Supponendo quindi che tutto funzioni come dovrebbe (accedere come utente e testare)

 rm -rf /home/whatever.orig 

Questo copia l'intera directory (e tutti i contenuti) sul mountpoint di destinazione, rinomina la directory home originale (nel caso in cui qualcosa sia rovinato nel processo, quindi possiamo recuperarlo), crea un collegamento simbolico dalla nuova posizione alla home originale directory (a cui tutto (come / etc / passwd) punta ancora), quindi supponendo che abbia funzionato, rimuove la copia di backup che abbiamo creato, lasciando la copia che abbiamo inserito nel filesystem di destinazione.


Questo non sta realmente usando /homecome mountpoint per la nuova partizione. Lo sta semplicemente ricollegando.
Matthew Flaschen,

È effettivamente la stessa cosa. Solo perché / home / username è un collegamento simbolico non significa che non funzionerà. Se vuoi mettere tutti gli account utente sull'altra partizione, modifica semplicemente la riga 'cp -R' in do / home invece di / home / username
Matt Simmons
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.