Come migrare le impostazioni utente e i dati sulla nuova macchina?


52

Sono nuovo di Ubuntu e recentemente ho iniziato a usarlo sul mio PC. Sostituirò quel PC con una nuova macchina. Voglio trasferire i miei dati e le mie impostazioni su nettop. Quali aspetti dovrei considerare?

Ovviamente voglio spostare i miei dati. Cosa mi manca se copio solo l'intera cartella home?

Questo è un PC di casa (non aziendale), quindi i diritti dell'utente e altri problemi di sicurezza non sono un problema, tranne che i file dovrebbero essere accessibili sul nuovo computer!

Tieni presente che la nuova macchina è un nettop che non ha un'unità ottica e non mi consente di collegare il vecchio disco SATA al suo interno, quindi qualsiasi trasferimento di dati deve essere gestito tramite la rete domestica (posso avere entrambi i vecchio e il nuovo computer acceso e collegato alla LAN di casa) e ho una chiavetta USB con capacità limitata (2 GB).
Sembra che potrebbe limitare l'applicabilità generale, ma in realtà lo renderebbe più generale.

Risposte:


43

Le impostazioni dell'utente sono memorizzate nella cartella Home in base alla progettazione. Quindi, se copi il /home/your-usernametuo nuovo computer, dovresti andare bene ...

... ma ci sono avvertenze:

  • Autorizzazioni. È comune che "programmi" (shellscripts, programmi di compilazione personalizzati) vengano inseriti nella cartella home. Per conservare le autorizzazioni, utilizzare l' --preserve=modeopzione (usando cp) o -p(usando tar)
  • UserID / GroupID. Anche se i nomi utente sono uguali su entrambi i sistemi, l'ID utente non è necessario. Di solito, questo non è un problema, ma se gli script / i programmi / le impostazioni vengono inoltrati sull'ID utente, è necessario assicurarsi che l'ID utente e l'ID gruppo siano gli stessi sul sistema di destinazione.
    È possibile trovare l'attuale ID utente e ID gruppo eseguendo id. Ad esempio, per modificare l'ID utente dell'utente "nome-utente", eseguire sudo usermod --uid 1234 your-username. Per modificare il groupID, è necessario eseguire sudo groupmod --gid 1234 your-username.

Le impostazioni (profilo, aspetto, ...) di Firefox sono spesso memorizzate in cartelle (o file) nascoste. Cartelle / file nascosti sono preceduti da un punto, come .mozillaper Firefox (e altre applicazioni Mozilla).

Poiché la sicurezza non è un problema e si desidera che il processo di copia venga eseguito il più rapidamente possibile, suggerisco una combinazione dei programmi netcat e tar. Entrambe le applicazioni sono installate per impostazione predefinita. Assicurarsi che i firewall su entrambi i computer consentano l'accesso in entrata alla porta di destinazione 8888 (computer di origine) e in uscita alla porta di destinazione 8888 (computer di destinazione). Metti il ​​nettop vicino al computer in modo da poter eseguire rapidamente i comandi.

Sul computer di origine, è necessario che sia installato il tradizionale programma netcat (noto anche come Swiss Army Knife, non quello di BSD). Per fare ciò, installare il netcat-traditionalpacchetto. È inoltre possibile configurare il programma netcat tradizionale come predefinito. Comandi per installare netcat-tradizionale e usarlo come predefinito:

sudo apt-get install netcat-traditional 
sudo update-alternatives --set nc /bin/nc.traditional

Sul computer di origine, digitare il comando successivo in un terminale (non premere ancora Invio):

 tar cz -C/home $(whoami) | nc -l -p 8888 -w 10

Spiegazione:

  • tar è un'utilità per impacchettare i file
  • cz c crea un file così compresso ("tarball")
  • Il tarball viene compresso utilizzando l' algoritmo G Z ip per ridurre le dimensioni del file.
  • -C/home $(whoami)cambia la directory di lavoro in /homee inserisce la cartella del tuo nome utente. In alternativa, puoi digitare la tua your-usernamecartella nel tarball
  • nc (netcat) viene utilizzato per impostare facilmente connessioni tra macchine
  • -l: Modalità di ascolto, consente ad altre macchine di connettersi alla macchina corrente
  • -p 8888: Ascolta sulla porta 8888 (numero scelto casualmente, potrebbe essere qualsiasi altro numero superiore a 1024)
  • -w 10: esce da netcat dopo 10 secondi di silenzio. È necessario connettersi a questo computer di origine entro questo tempo.

Ora vai al computer di destinazione (nettop). Per aggiungere i file al computer di destinazione, digitare (non eseguirlo ancora):

nc 192.168.1.2 8888|tar xzp -C/home
  • 192.168.1.2è l'indirizzo IP del computer di origine. Per ottenere il suo indirizzo IP, eseguire: ifconfigsul computer di origine
  • 8888 è il numero di porta immesso sul computer di origine
  • xzp: E x tratti del G Z tarball ip-compressa, mentre p riservando permessi.
  • -C/home: estrae la your-usernamecartella in/home/your-username
  • Facoltativamente, aggiungi l'opzione -val comando tar per l'estrazione dettagliata, in modo da avere un'idea dei progressi. Ciò potrebbe rallentare il processo di copia perché ogni file deve essere stampato.

Ora vai al computer di origine, premi Invio per eseguire il comando server. Passa rapidamente al tuo nettop e premi Invio per eseguire il comando client.

Se hai domande, usa semplicemente il campo dei commenti qui sotto.


1
Panoramica assolutamente eccellente! Grazie anche per la spiegazione dettagliata dei comandi. Dato che ho solo un monitor, mi piacerebbe impostare entrambe le macchine una accanto all'altra e utilizzare un qualche tipo di VNC per accedere alla vecchia macchina. Sono sicuro di poter rapidamente cercare su Google un'ottima guida per i manichini, ma forse puoi consigliarne una?
Torben Gundtofte-Bruun,

Non ho usato altri VNC diversi dall'applicazione fornita con Kubuntu (Krdc). Se non hai bisogno di una GUI (come questo processo di copia), installa openssh-servere sarai in grado di connetterti con il tuo computer eseguendo ssh your-username@192.168.1.2. Per l' accesso alla GUI remota , non utilizzo VNC poiché è dolorosamente lento, anche su una rete (wireless). Consiglio X2go per il controllo remoto della GUI ( guida all'installazione ).
Lekensteyn,

La macchina di origine mi dice: "Questo è nc dal pacchetto netcat-openbsd. Un nc alternativo è disponibile nel pacchetto netcat-tradizionale. Utilizzo: nc [-46DdhklnrStUuvzC] [-i intervallo] [-P proxy_username] [-p source_port ] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [-x proxy_address [: port]] [hostname] [port [s]] ", il prompt del terminale è di nuovo visibile e il la macchina bersaglio non ottiene nulla. Sto facendo qualcosa di sbagliato?
Daniel,

@Daniel: l'unica cosa che sbagli è pubblicare la tua domanda come commento. Apri una nuova domanda e collega a questa.
Torben Gundtofte-Bruun,

Ciao @Lekensteyn, ricevo molti "Impossibile aprire" e "Impossibile mkdir: nessun file o directory" ... Lo stesso vale quando si tenta di farlo su una macchina virtuale (come guest)?
George Katsanos,

16

Per i pacchetti software, leggere quanto segue: http://www.omgubuntu.co.uk/2010/05/transfer-your-packages-to-a-clean-install/

oldmachine$ sudo dpkg --get-selections > installedsoftware
newmachine$ sudo dpkg --set-selections < installedsoftware
newmachine$ sudo apt-get --show-upgraded dselect-upgrade

Per le impostazioni e i dati, è un po 'più complicato :-( La maggior parte delle impostazioni sono memorizzate nella tua cartella home, quindi fare un backup della tua HOME può fare il trucco ... Ma ovviamente questo non copre il sistema app che hanno la loro configurazione memorizzata in / etc ...


newmachine$ sudo apt-get --show-upgraded dselect-upgradedà l'erroreE: Command line option --show-upgrade is not understood
frepie

12

La maggior parte delle impostazioni per le applicazioni si trova nella cartella principale nascosta per impostazione predefinita. Se premi Ctrl+hNautilus vedrai queste cartelle. Ho trovato il modo più semplice è semplicemente risincronizzare le cartelle necessarie per le configurazioni. Qualcosa come questo:

rsync -avz me@remote:/home/me/.foo me@remote:/home/me/.var me@remote:/home/me/.ack me@remote:/home/me/.bar /home/me/

Potresti anche - semplicemente risincronizzare l'intera cartella home con la nuova macchina - ma ciò potrebbe causare problemi a seconda delle tue configurazioni.




8

Se hai un'installazione che ti piace su una macchina, puoi semplicemente clonarla. Non importa se le macchine hanno hardware diverso purché eseguano la stessa architettura (32-bit o 64-bit, cioè i386 o amd64 o ...).

Ecco un modo per farlo. È un po 'lungo, ma piuttosto a bassa tecnologia. Sono possibili molte varianti.

  1. Collegare il disco della nuova macchina alla macchina esistente (o viceversa).
  2. Avvio dall'installazione esistente.
  3. Imposta il nuovo disco :
    • Se i dischi hanno le stesse dimensioni: avviare lo strumento di partizione (Sistema / Amministrazione / GParted, pacchetto gparted) e copiare l'intero vecchio disco sul nuovo disco.
      • Dovresti dare alle copie dei filesystem nuovi identificatori univoci, per evitare confusione se in seguito dovessi montare il disco di una macchina sull'altra macchina. Per il filesystem ext2 / ext3 / ext4, usa un comando come sudo tune2fs -U $(uuidgen) /dev/sdz1dove si sdztrova il nuovo disco ed 1è il numero di partizione.
      • Se hai assegnato nomi ai tuoi volumi, potresti voler assegnare nomi diversi.
    • Altrimenti, impostare le partizioni sul nuovo disco con GParted o Utilità di sistema / Amministrazione / Disco e formattarle. Se hai partizioni della stessa dimensione su entrambi i dischi, puoi copiarle in GParted.
  4. Montare la partizione radice della nuova installazione che dovrebbe ora apparire in Luoghi.
  5. (Salta questo passaggio se hai copiato l'intero disco.) Copia i dati dalla partizione root della vecchia installazione a quella nuova. Si noti che è fondamentale preservare le autorizzazioni e la proprietà dei file in questo passaggio e ciò significa che è necessario farlo come superutente (root). Non so quale sia il modo di farlo della GUI di Ubuntu. Sulla riga di comando, esegui sudo cp -ax / /media/disk9(sostituisci /media/disk9dalla posizione in cui è montata la nuova partizione di root).
  6. Ripeti i due passaggi precedenti per qualsiasi altra partizione che potresti avere (ad esempio una partizione home separata), a meno che tu non abbia copiato quella partizione (o il disco) nel suo insieme nel passaggio 3.
  7. Modifica la nuova installazione (supponendo che sia montata su /media/disk9; adjust as needed):
    • Modifica per impostare il nome della nuova macchina. Controllare i file sotto per le altre occorrenze del nome dell'host - potrebbe apparire in , ecc/media/disk9/etc/hostname/media/disk9/etc//media/disk9/etc/hosts/media/disk9/etc/mailname
    • Se stai eseguendo un server SSH , rimuovi /media/disk9/etc/ssh/ssh_host_*_key*. Il server genererà nuove chiavi all'avvio della nuova installazione.
    • Se hai configurato la rete modificando /etc/network/interfaces, modifica /media/disk9/etc/network/interfacesper la nuova installazione.
    • Facoltativamente, rimuovere i file /etc/udev/rules.d/70-persistent-*.rulesse presenti, in modo che i dischi e le interfacce di rete riutilizzare gli stessi nomi ( sda, eth0, ...) sulla nuova macchina.
    • Se si utilizzano driver video proprietari (ATI o Nvidia) e il nuovo computer non deve utilizzare lo stesso driver, passare /media/disk9/etc/X11/xorg.confa /media/disk9/etc/X11/xorg.conf.old-machine, altrimenti potrebbe non essere possibile avviare una GUI nel nuovo computer.
  8. Spostare il disco con la nuova installazione sul computer corretto.
  9. Se non hai clonato il disco nel suo insieme, inserisci un CD / USB live e ripara il bootloader .
  10. Avviare dalla nuova installazione ed eseguire tutti i passaggi di transizione rimanenti necessari:
    • Potrebbe essere necessario installare nuovi driver proprietari ( driver di sistema / amministrazione / hardware).
    • Se è stato impostato un indirizzo IP statico tramite Network Manager, configurare la rete per la nuova macchina.
    • Se si esegue un server SSH , eseguire dpkg-reconfigure openssh-serverper generare una nuova chiave host.

Ciao dal 2013 :) Sei sicuro che hardware diverso non sia importante? Anche se passo da un laptop cinese a Mac Air?
scythargon,

@scythargon Fintanto che è lo stesso tipo di CPU (x86 in entrambi i casi), non c'è alcuna differenza sostanziale, solo forse alcuni driver da installare e i file di configurazione che menziono. A differenza di Windows, Linux concentra le sue dipendenze hardware in pochi file facili da identificare.
Gilles 'SO- smetti di essere malvagio' il

1
Puoi dare un'occhiata a questa (simile) guida che ho scritto: positon.org/clone-a-linux-system-install-to-another-computer
Marc M

Grazie per il riassunto. Mi piacerebbe se potessi aggiungere la rimozione di /etc/udev/rules.d/70-persistent-net.rulesun file generato automaticamente da udev, viene utilizzato per garantire che i nuovi dispositivi di rete non ottengano lo stesso nome di quelli precedentemente installati.
tvn,

@tvn In realtà non è necessario rimuovere quel file. Impedirà il riutilizzo degli stessi nomi di interfaccia / disco, ma non è necessariamente una cosa negativa.
Gilles 'SO- smetti di essere malvagio' il

6

Tutti i tuoi dati e le impostazioni in diretta a casa tua.

Se lo copi, perderai:

  • Programmi installati. Ma vedi Sabacon rispondere a questa domanda .
  • Configurazioni a livello di sistema, in un computer di casa, di solito si tratta solo di PPA extra.
  • Dati di programmi di sistema (di solito daemon) (come database MySQL).

Sento che il modo più semplice per fare una copia di rete è questo:

  • Installa OpenSSH Server Scarica Gwibber nel vecchio computer.
  • Assicurarsi che entrambi i computer siano collegati alla rete.
  • Apri Nautilus (il browser dei file) nel nuovo computer.
  • Nel menu Visualizza, seleziona "Mostra file nascosti".
  • Premere CTRL + L, nel tipo di barra degli indirizzi ssh://ip-of-old-computer/home/
  • Dovresti ricevere il nome utente e la password sul vecchio computer.
  • Copia tutto ciò che desideri utilizzando la GUI.

inserisci qui la descrizione dell'immagine


4

Dropbox.

Questo è il modo in cui eseguo il backup delle mie impostazioni da una macchina all'altra e se perdo completamente il mio disco fisso non importa.

Dropbox è un servizio di backup / sincronizzazione online, che dà il via a grandi bottini e puoi ottenerlo gratuitamente. È disponibile con Ubuntu Karmic e con i repository Partner. Stai cercando un pacchetto chiamato nautilus-dropbox. Oppure puoi semplicemente scaricarlo dal sito: https://www.dropbox.com/downloading?os=lnx

Come sopra menzionato, la maggior parte delle impostazioni pertinenti vengono salvate in /home/yourname/.whatever

Ad esempio le impostazioni di configurazione di gnome sono salvate in

/home/username/.gnome2

Quindi, per fare la sincronizzazione:

Prima parte: eseguire il backup delle impostazioni di configurazione su Dropbox. (Questo è tutto sulla "vecchia" macchina, dove hai le tue impostazioni / configurazione come le vuoi.)

  1. Vai alla tua home directory e trova quanti più "dotfile" e directory puoi. Quasi tutti questi saranno rilevanti per le impostazioni di configurazione personali (premi Control + H in Nautilus per visualizzare i file nascosti).
  2. Dovrai copiare i file dei file di configurazione nella cartella Dropbox. EFFETTUARE UN BACKUP SE SEI PAURA DI PERderli.
  3. Rimuovi i file originali dalla tua home directory, quindi crea un collegamento dal file nella sua nuova home (sotto la tua cartella dropbox) alla home directory. Puoi farlo trascinando il file / cartella sul nome della tua directory home tenendo premuto il tasto "Alt" e selezionando "crea collegamento".

Parte seconda: (su una nuova macchina). Creare collegamenti dalle impostazioni di configurazione sincronizzate con Dropbox.

  1. Sulla tua "nuova" macchina, ad es. nuova installazione di Ubuntu, elimina ( E BACKUP SE NECESSARIO ) i tuoi vecchi file di configurazione della directory home. Installa dropbox sul nuovo computer. Consentire la sincronizzazione, AKA scarica le impostazioni della tua vecchia macchina.
  2. Ripeti il ​​passaggio 3 sopra sulla nuova macchina: copia i collegamenti dalle cartelle sincronizzate con Dropbox nella directory principale.

Ecco. Ora disponi di backup e migrazione delle impostazioni basati su Internet.


2

Dai un'occhiata a Stipple, mi sembra interessante:

"Salva un elenco di applicazioni installate, file .config e altre impostazioni su un couchDB. Sincronizza questo DB su altri computer con Ubuntu One. Questa applicazione ti aiuta anche a installare quei pacchetti e file .config sugli altri tuoi computer."

https://launchpad.net/stipple


Ubuntu One non sarebbe più un'opzione poiché il servizio è stato chiuso.
Tomislav Nakic-Alfirevic,

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.