È possibile spostare la cartella home in una nuova installazione di Ubuntu per mantenere tutte le impostazioni e le modifiche apportate all'utente su quel computer? Come se creo un nuovo utente sulla nuova installazione di Ubuntu con lo stesso nome e password dell'utente che voglio passare alla nuova installazione di Ubuntu. Funzionerà o, meglio ancora, è sicuro?
Risposta accettata:
Sì. L'ho fatto molte volte. rsync ha una modalità "-a" che conserva la proprietà, i tempi dei file, tutto. Può inviare file attraverso la rete. Oppure puoi copiare su un disco esterno formattato ext4 e ripristinare con rsync. Ricorda solo di non copiare con il normale trascinamento della selezione, usa rsync e conserva l'archivio di tutte le proprietà ("-a").
Supponiamo che il mio.vecchio.computer abbia il tuo account "mioutente".
Configura nuovo computer mio.nuovo.computer. Crea "il mio utente" lì. se sei meticoloso, ottieni l'ID utente e l'ID gruppo dal vecchio sistema e assegnali quando crei l'account utente. Ciò potrebbe ridurre i problemi, ma penso di farlo solo perché sono vecchio stile e questo è andato storto una volta nel 2005. Capisci cosa intendo per uid e gid? Numeri dell'account utente. Sul vecchio sistema esegui "id myuser", quindi quando crei il nuovo utente sul nuovo computer, assegni lo stesso uid e gid.
Crea un altro account su entrambi questi sistemi, non vogliamo provare a copiare una cartella utente per "myuser" quando quell'utente ha effettuato l'accesso, poiché una sessione dipende dai file che distruggi. Ripeti:non deve accedere come myuser quando si desidera copiare i file per l'account myuser. Su entrambi i sistemi.
Sul nuovo sistema, come root, sposta la directory utente predefinita (attenzione, non eliminare!), quindi crea una nuova directory
sudo mv /home/myuser /home/myuser.orig
sudo mkdir /home/myuser
sudo chown myuser.myuser /home/myuser
Hai bisogno di quest'ultimo passaggio in modo che il tuo normale account utente possa rsync
i file in. Non vogliamo farlo come root
Quindi copia la cartella /home/myuser
dal vecchio al nuovo, usando il rsync
flag -rav
.
Può inviare file dal vecchio sistema al nuovo sistema. Sul vecchio sistema
cd /home
rsync -e ssh -ravn myuser [email protected]:/home
Dove:
-r
:ricorsivo-a
:modalità archivio-v
:modalità dettagliata. Puoi ometterlo, andrà più veloce. Ma con meno rassicurazioni.-n
:in realtà non apportare modifiche
Ho messo il -n
flag perché voglio un test; se ci sono errori lo scopriremo. Dopo il test, esegui lo stesso comando senza -n
bandiera.
Funzionerà solo se il tuo account utente ha i permessi per copiare e scrivere i file in /home/myuser. Non sono del tutto sicuro di come farlo senza essere root, ma lo sapevo e scommetto che qualcuno qui sa cosa fare.
Oppure, se sei in un nuovo sistema, puoi copiare da altri
cd /home
rsync -e ssh -rav my.old.computer:/home/myuser .
Punto .
indica la directory di lavoro corrente. Esegui con -n
prima per vedere cosa c'è che non va.
L'ho fatto molte volte. L'impostazione manuale di uid e gid in realtà non dovrebbe essere necessaria, poiché la combinazione di ssh e rsync dovrebbe assegnare correttamente i nuovi file. Tuttavia, ho sbagliato una volta e tutti i nuovi file sono stati visualizzati come utilizzati dall'utente sbagliato. Dove ti aspetti di vedere ls -la output in questo modo:
rw------- 1 myuser myuser 174 Aug 4 22:43 .Xauthority
vedi i numeri degli utenti, come
rw------- 1 504 50004 174 Aug 4 22:43 .Xauthority
o, peggio, il nome di un altro utente. Succede perché uid e gid determinano davvero la proprietà del file; il nome leggibile dall'uomo è superficiale.
Di solito puoi cavartela con chown
, ma non vedrai se allinei uid e gid.
Non preoccuparti troppo se la copia fallisce una volta o fa qualcosa che non ti aspetti, perché puoi sempre eseguire di nuovo. Non stai distruggendo il vecchio computer e il nuovo computer è, beh, tabula rasa.
Penso che alcuni amanti del tar diranno che il modo migliore è tar up la vecchia cosa, spostare il file tar.gz, quindi espanderlo. Nel 2003 o giù di lì, ci sembrava vitale, ma ultimamente il metodo rsync ha funzionato bene.
A proposito, se sei interessato a conoscere rsync
, il man rsync
è una delle pagine man migliori e più utili di sempre. È leggibile dall'uomo con un sacco di esempi ed è uno dei motivi per cui mi aggrappo a rsync
come una zattera di salvataggio nella manutenzione del sistema.