Jak przenieść ustawienia użytkownika i dane na nowy komputer?

52

Jestem nowy w Ubuntu i ostatnio zacząłem go używać na moim komputerze. Zamienię ten komputer na nowy. Chcę przenieść moje dane i ustawienia na nettop. Jakie aspekty powinienem wziąć pod uwagę?

Oczywiście chcę przenieść moje dane. Czego mi brakuje, jeśli kopiuję tylko cały folder domowy?

Jest to komputer domowy (nie korporacyjny), więc prawa użytkownika i inne kwestie bezpieczeństwa nie stanowią problemu, z wyjątkiem tego, że pliki powinny być dostępne na nowym komputerze!

Proszę wziąć pod uwagę, że nowy komputer to nettop, który nie ma napędu optycznego i nie pozwala mi podłączyć do niego starego dysku SATA, więc każdy transfer danych musi być obsługiwany przez sieć domową (mogę mieć zarówno stare i nowe urządzenie włączone i podłączone do domowej sieci LAN), a ja mam pendrive USB o ograniczonej pojemności (2 GB).
Brzmi, jakby to mogło ograniczyć ogólne zastosowanie, ale w rzeczywistości uczyniłoby to bardziej ogólnym.

Torben Gundtofte-Bruun
źródło

Odpowiedzi:

43

Ustawienia użytkownika są zapisywane w folderze głównym zgodnie z projektem. Tak więc, jeśli skopiujesz swój /home/your-usernamena nowy komputer, powinieneś mieć się dobrze ...

... ale są pewne zastrzeżenia:

  • Uprawnienia Często programy (skrypty powłoki, niestandardowe programy budujące) są umieszczane w folderze domowym. Aby zachować uprawnienia, użyj --preserve=modeprzełącznika (za pomocą cp) lub -p(za pomocą tar)
  • UserID / GroupID. Nawet jeśli nazwy użytkowników są takie same w obu systemach, identyfikator użytkownika nie musi. Zwykle nie stanowi to problemu, ale jeśli masz skrypty / programy / ustawienia korzystające z UserID, powinieneś upewnić się, że identyfikator użytkownika i identyfikator grupy powinny być takie same w systemie docelowym.
    Bieżący identyfikator użytkownika i identyfikator grupy można znaleźć, wykonując id. Na przykład, aby zmienić identyfikator użytkownika „twoja nazwa użytkownika”, uruchom sudo usermod --uid 1234 your-username. Aby zmienić identyfikator grupy, musisz uruchomić sudo groupmod --gid 1234 your-username.

Ustawienia (profil Firefox, wygląd, ...) są często przechowywane w ukrytych folderach (lub plikach). Ukryte foldery / pliki są poprzedzone kropką, tak jak .mozillaw przeglądarce Firefox (i innych aplikacjach Mozilla).

Ponieważ bezpieczeństwo nie stanowi problemu, a chcesz, aby zadanie kopiowania zostało wykonane tak szybko, jak to możliwe, sugeruję połączenie programów netcat i tar. Obie aplikacje są instalowane domyślnie. Upewnij się, że zapory ogniowe na obu komputerach umożliwiają wejściowy dostęp do docelowego portu 8888 (komputer źródłowy) i wychodzący do docelowego portu 8888 (komputer docelowy). Umieść nettop obok komputera, abyś mógł szybko uruchamiać polecenia.

Na komputerze źródłowym musisz zainstalować tradycyjny program netcat (znany również jako Swiss Army Knife, a nie BSD). Aby to zrobić, zainstaluj netcat-traditionalpakiet. Możesz także skonfigurować tradycyjny program netcat jako domyślny. Polecenia instalujące netcat-traditional i używające go jako domyślnego:

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

Na komputerze źródłowym wpisz następne polecenie w terminalu (nie naciskaj jeszcze Enter):

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

Wyjaśnienie:

  • tar to narzędzie do pakowania plików
  • cz c tworzy taki spakowany plik („tarball”)
  • Tarball jest kompresowany za pomocą algorytmu G Z ip w celu zmniejszenia rozmiaru pliku.
  • -C/home $(whoami)zmienia katalog roboczy na /homei umieszcza folder nazwy użytkownika. Alternatywnie możesz wpisać swój your-usernamefolder w tarballu
  • nc (netcat) służy do łatwego konfigurowania połączeń między komputerami
  • -l: Tryb nasłuchiwania, pozwala innym komputerom połączyć się z bieżącym urządzeniem
  • -p 8888: Nasłuchuje na porcie 8888 (losowo wybrany numer, może to być również dowolny numer wyższy niż 1024)
  • -w 10: wyjdź z netcata po 10 sekundach ciszy. W tym czasie musisz połączyć się z tym komputerem źródłowym.

Teraz przejdź do komputera docelowego (nettop). Aby dodać pliki do komputera docelowego, wpisz (jeszcze go nie uruchamiaj):

nc 192.168.1.2 8888|tar xzp -C/home
  • 192.168.1.2to adres IP komputera źródłowego. Aby uzyskać adres IP, uruchom: ifconfigna komputerze źródłowym
  • 8888 to numer portu wprowadzony na maszynie źródłowej
  • xzp: P x dróg G. Z ip sprężone paczkę while P uprawnieniami RESERVING.
  • -C/home: wypakowuje your-usernamefolder do/home/your-username
  • Opcjonalnie dodaj -vprzełącznik do polecenia tar w celu wyodrębnienia pełnego, abyś mógł zorientować się w postępach. Może to spowolnić proces kopiowania, ponieważ każdy plik musi zostać wydrukowany.

Teraz przejdź do komputera źródłowego, naciśnij klawisz Enter, aby uruchomić polecenie serwera. Szybko przełącz się na swój nettop i naciśnij klawisz Enter, aby uruchomić polecenie klienta.

Jeśli masz jakieś pytania, użyj poniższego pola komentarza.

Lekensteyn
źródło
1
Absolutnie doskonały przegląd! Dziękujemy również za szczegółowe wyjaśnienie poleceń. Biorąc pod uwagę, że mam tylko jeden monitor, chciałbym ustawić oba komputery obok siebie i użyć jakiegoś VNC, aby uzyskać dostęp do starej maszyny. Jestem pewien, że mogę szybko znaleźć w Google świetny przewodnik dla manekinów - ale może mógłbyś go polecić?
Torben Gundtofte-Bruun
Nie korzystałem z VNC innej niż dostarczona aplikacja z Kubuntu (Krdc). Jeśli nie potrzebujesz GUI (takiego jak ten proces kopiowania), po prostu zainstaluj, openssh-servera będziesz mógł połączyć się ze swoim komputerem poprzez uruchomienie ssh [email protected]. Do zdalnego dostępu GUI nie używam VNC, ponieważ jest boleśnie powolny, nawet w sieci (bezprzewodowej). Polecam X2go do zdalnego sterowania GUI ( instrukcja instalacji ).
Lekensteyn,
Maszyna źródłowa mówi mi: „To jest nc z pakietu netcat-openbsd. Alternatywny nc jest dostępny w tradycyjnym pakiecie netcat. Użycie: nc [-46DdhklnrStUuvzC] [interwał -i] [-P nazwa_użytkownika proxy] [-p port_źródłowy ] [-s adres_ip_źródła] [-T ToS] [-w limit czasu] [-X protokół_ proxy] [-x adres_ proxy [: port]] [nazwa hosta] [port [s]] ", monit terminala jest ponownie widoczny, a maszyna docelowa nic nie dostaje. czy robię coś źle?
Daniel
@Daniel: Jedyne, co robisz źle, to opublikowanie pytania jako komentarza. Otwórz nowe pytanie i link do tego.
Torben Gundtofte-Bruun
Cześć @ Lekensteyn, dostaję wiele „Nie można otworzyć” i „Nie można mkdir: brak takiego pliku lub katalogu” ... Czy to samo dotyczy, gdy próbuje to zrobić na maszynie wirtualnej (jako gość)?
George Katsanos,
16

W przypadku pakietów oprogramowania należy przeczytać następujące informacje: 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

W przypadku ustawień i danych jest to trochę bardziej skomplikowane :-( Większość ustawień jest przechowywana w folderze domowym, więc wykonanie kopii zapasowej HOME może załatwić sprawę ... Ale wtedy oczywiście nie obejmuje to systemu aplikacje, których konfiguracja jest przechowywana w / etc ...

Mała Jawa
źródło
newmachine$ sudo apt-get --show-upgraded dselect-upgradedaje błądE: Command line option --show-upgrade is not understood
frepie
12

Większość ustawień aplikacji jest domyślnie ukryta w folderze domowym. Jeśli naciśniesz Ctrl+hNautilus, zobaczysz te foldery. Znalazłem najłatwiejszy sposób to po prostu zsynchronizować foldery potrzebne do konfiguracji. Coś takiego:

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

Możesz także - po prostu zsynchronizować cały folder domowy z nowym komputerem - ale może to powodować problemy w zależności od konfiguracji.

Marco Ceppi
źródło
12

Pracują nad nim deweloperzy Ubuntu, nazywa się OneConf .

akshatj
źródło
Och, właśnie tak - zapomniałem o tym. Oto link: omgubuntu.co.uk/2010/06/oneconf-to-reinstall-applications.html
eugenemarshall
Wylądował dzisiaj, ale niewiele można odkryć.
akshatj
1
wciąż wygląda jak praca w toku. Czy ten pakiet jest dojrzały?
lenzai
2
ostatnia aktualizacja 2015 zgodnie z code.launchpad.net/oneconf, więc nie jest już aktywnym projektem
Greg Bray
8

Jeśli masz instalację, którą lubisz na jednym komputerze, możesz po prostu ją sklonować. Nie ma znaczenia, czy maszyny mają inny sprzęt, o ile działają w tej samej architekturze (32-bitowej lub 64-bitowej, tj. I386 lub amd64 lub ...).

Oto sposób na zrobienie tego. Jest trochę długi, ale dość mało zaawansowany technologicznie. Możliwych jest wiele odmian.

  1. Podłącz dysk nowego komputera do istniejącego komputera (lub odwrotnie).
  2. Uruchom z istniejącej instalacji.
  3. Skonfiguruj nowy dysk :
    • Jeśli dyski mają ten sam rozmiar: uruchom narzędzie do partycjonowania (System / Administracja / GParted, pakiet gparted) i skopiuj cały stary dysk na nowy dysk.
      • Powinieneś nadać kopiom systemu plików nowe unikalne identyfikatory, aby uniknąć nieporozumień, jeśli później zamontujesz dysk jednego komputera na innym komputerze. W systemie plików ext2 / ext3 / ext4 użyj polecenia takiego jak sudo tune2fs -U $(uuidgen) /dev/sdz1gdzie sdzjest nowy dysk i 1numer partycji.
      • Jeśli przypisałeś nazwy do swoich woluminów, możesz chcieć przypisać różne nazwy.
    • W przeciwnym razie skonfiguruj partycje na nowym dysku za pomocą GParted lub System / Administration / Disk Utility i sformatuj je. Jeśli masz partycje o tym samym rozmiarze na obu dyskach, możesz je skopiować w GParted.
  4. Zamontuj partycję główną nowej instalacji, która powinna teraz pojawiać się w Miejscach.
  5. (Pomiń ten krok, jeśli skopiowałeś cały dysk.) Skopiuj dane z głównej partycji starej instalacji na nową. Pamiętaj, że na tym etapie ważne jest zachowanie uprawnień i własności plików, a to oznacza, że ​​musisz to zrobić jako administrator (root). Nie wiem, jak to zrobić w interfejsie GUI Ubuntu. W wierszu polecenia uruchom sudo cp -ax / /media/disk9(zamień /media/disk9na lokalizację, w której zamontowana jest nowa partycja root).
  6. Powtórz poprzednie dwa kroki dla każdej innej partycji, którą możesz mieć (np. Osobnej partycji domowej), chyba że skopiowałeś tę partycję (lub dysk) jako całość w kroku 3.
  7. Ulepsz nową instalację (zakładając, że jest zamontowana /media/disk9; adjust as needed):
    • Edytuj, aby ustawić nazwę nowego komputera. Sprawdzać pliki w innych wystąpień nazwy hosta - może pojawić się , itd/media/disk9/etc/hostname/media/disk9/etc//media/disk9/etc/hosts/media/disk9/etc/mailname
    • Jeśli korzystasz z serwera ssh , usuń /media/disk9/etc/ssh/ssh_host_*_key*. Serwer wygeneruje nowe klucze po uruchomieniu nowej instalacji.
    • Jeśli skonfigurowałeś sieć przez edycję /etc/network/interfaces, edytuj /media/disk9/etc/network/interfacesdla nowej instalacji.
    • Ewentualnie usunąć pliki /etc/udev/rules.d/70-persistent-*.rules, jeśli są obecne, tak, że dyski i interfejsy sieciowe ponownego wykorzystania tych samych nazw ( sda, eth0, ...) na nowej maszynie.
    • Jeśli używasz zastrzeżonych sterowników wideo (ATI lub Nvidia), a nowy komputer nie powinien używać tego samego sterownika, przejdź /media/disk9/etc/X11/xorg.confdo /media/disk9/etc/X11/xorg.conf.old-machine, w przeciwnym razie możesz nie być w stanie uruchomić systemu z graficznym interfejsem użytkownika na nowym komputerze.
  8. Przenieś dysk z nową instalacją z powrotem na prawowitą maszynę.
  9. Jeśli nie sklonowałeś dysku jako całości, włóż płytę CD / USB na żywo i napraw bootloader .
  10. Uruchom z nowej instalacji i wykonaj wszystkie niezbędne kroki przejścia:
    • Konieczne może być zainstalowanie nowych sterowników ( sterowniki systemowe / administracyjne / sprzętowe).
    • Jeśli masz statyczny adres IP skonfigurowany za pomocą Menedżera sieci, skonfiguruj sieć dla nowego komputera.
    • Jeśli prowadzisz serwer ssh , uruchom, dpkg-reconfigure openssh-serveraby wygenerować nowy klucz hosta.
Gilles „SO- przestań być zły”
źródło
Witam z 2013 roku :) Czy jesteś pewien, że inny sprzęt nie jest ważny? Nawet jeśli przeniosę się z chińskiego laptopa na Mac Air?
scythargon
@scythargon Dopóki jest to ten sam typ procesora (w obu przypadkach x86), nie ma zasadniczej różnicy, może tylko niektóre sterowniki do zainstalowania i pliki konfiguracyjne, o których wspominam. W przeciwieństwie do Windows, Linux koncentruje swoje zależności sprzętowe w kilku łatwych do zidentyfikowania plikach.
Gilles „SO- przestań być zły”
1
Możesz rzucić
Marc M
Dziękuję za podsumowanie. Bardzo bym chciał, gdybyś mógł dodać usunięcie /etc/udev/rules.d/70-persistent-net.rulespliku generowanego automatycznie przez udev, służy on do zagwarantowania, że ​​nowe urządzenia sieciowe nie otrzymają takiej samej nazwy jak poprzednio zainstalowane.
tvn
@tvn Tak naprawdę nie musisz usuwać tego pliku. Zapobiegnie to ponownemu użyciu tych samych nazw interfejsów / dysków, ale niekoniecznie jest to zła rzecz.
Gilles „SO- przestań być zły”
6

Wszystkie dane i ustawienia na żywo w domu.

Jeśli tylko skopiujesz, stracisz:

  • Zainstalowane programy. Ale zobacz odpowiedź Sabacona na to pytanie .
  • Konfiguracje całego systemu, w komputerze domowym, zwykle są to tylko dodatkowe umowy PPA.
  • Dane systemowe programów (zwykle demonów) (takich jak bazy danych MySQL).

Uważam, że najłatwiejszym sposobem na utworzenie kopii sieciowej jest:

  • Zainstaluj serwer OpenSSH Pobierz Gwibber na starym komputerze.
  • Upewnij się, że oba komputery są podłączone do sieci.
  • Otwórz Nautilus (przeglądarkę plików) na nowym komputerze.
  • W menu Widok zaznacz „Pokaż ukryte pliki”.
  • Naciśnij CTRL + L, w typie paska adresu ssh://ip-of-old-computer/home/
  • Powinieneś zostać poproszony o podanie nazwy użytkownika i hasła na starym komputerze.
  • Skopiuj wszystko, co chcesz za pomocą GUI.

wprowadź opis zdjęcia tutaj

Javier Rivera
źródło
4

Dropbox.

W ten sposób tworzę kopię zapasową ustawień z jednego komputera na drugi, a jeśli całkowicie stracę dysk twardy, nie ma to znaczenia.

Dropbox to internetowa usługa tworzenia kopii zapasowych / synchronizacji, która powoduje duże zyski i można ją uzyskać za darmo. Jest dostępny pod Ubuntu Karmic i pod repozytoriami Partnerów. Szukasz pakietu o nazwie nautilus-dropbox. Lub możesz po prostu pobrać go ze strony: https://www.dropbox.com/downloading?os=lnx

Jak wspomniano powyżej, większość odpowiednich ustawień jest zapisywana w /home/yourname/.whatever

Na przykład ustawienia konfiguracji gnome są zapisywane pod

/home/username/.gnome2

Aby wykonać synchronizację:

Część pierwsza: Utwórz kopię zapasową ustawień konfiguracji w Dropbox. (To wszystko na „starym” komputerze, na którym masz swoje ustawienia / konfigurację tak, jak chcesz.)

  1. Przejdź do katalogu domowego i znajdź tyle plików „dotfiles” i katalogów, ile możesz. Prawie wszystkie z nich będą odpowiednie dla osobistych ustawień konfiguracji (naciśnij Control + H w Nautilusie, aby wyświetlić ukryte pliki).
  2. Będziesz chciał skopiować pliki tych plików konfiguracyjnych do folderu Dropbox. ZRÓB ZAPAS, JEŻELI SIĘ BĘDZIE UTRACIĆ.
  3. Usuń oryginalne pliki z katalogu domowego, a następnie utwórz łącze z pliku w jego nowym katalogu głównym (w folderze Dropbox) do katalogu domowego. Możesz to zrobić, przeciągając i upuszczając plik / folder do nazwy katalogu domowego, przytrzymując klawisz „Alt”, i wybierając „utwórz link”.

Część druga: (na nowym komputerze). Twórz łącza z ustawień konfiguracji zsynchronizowanych z Dropbox.

  1. Na „nowej” maszynie, tj. świeża instalacja Ubuntu, usuń ( I ZAPASUJ JEŚLI KONIECZNE ) stare pliki konfiguracyjne katalogu domowego. Zainstaluj Dropbox na nowym komputerze. Pozwól mu się zsynchronizować, AKA pobierz swoje stare ustawienia urządzenia.
  2. Powtórz krok 3 powyżej na nowym komputerze - skopiuj linki z folderów synchronizowanych z Dropbox do katalogu domowego.

Voila Masz teraz kopię zapasową ustawień internetowych i migrację.

emf
źródło
2

Spójrz na Stipple, wygląda dla mnie interesująco:

„Zapisz listę zainstalowanych aplikacji, plików .config i innych ustawień w couchDB. Zsynchronizuj tę bazę danych z innymi komputerami za pomocą Ubuntu One. Ta aplikacja pomaga również zainstalować te pakiety i pliki .config na innych komputerach.”

https://launchpad.net/stipple

Sabacon
źródło
Ubuntu One nie byłby już dostępny, ponieważ usługa została zamknięta.
Tomislav Nakic-Alfirevic
0

Mackup może tworzyć kopie zapasowe wielu aplikacji w chmurze lub kontroli wersji. Łatwo jest go rozszerzyć, na przykład tak wygląda wtyczka ssh

Ivotron
źródło