Jak migrować konfigurację między komputerami z innym sprzętem?

9

Chcę migrować konfigurację pulpitu Ubuntu do nowego urządzenia z innym sprzętem. Jak najłatwiej to zrobić? / etc / zawiera ustawienia specyficzne dla maszyny i sprzętu, więc nie mogę po prostu skopiować go na ślepo. Podobny problem istnieje w przypadku zainstalowanych pakietów.

edycja: Jest to przejście z x86 na x86-64.

użytkownik4745
źródło
@Gilles Myślę, że „inny sprzęt” zasługuje na inne pytanie, zwłaszcza przejście z x86 na x86-64.
phunehehe
W prostszym przypadku, gdy architektura procesora jest taka sama, zobacz Przenoszenie instalacji systemu Linux na nowy komputer . @phunehehe: Pytanie pierwotnie nie wspomniało o różnicy w architekturze.
Gilles „SO- przestań być zły”

Odpowiedzi:

7

Po pierwsze, jeśli zamierzasz nadal uruchamiać 32-bitowe pliki binarne, tak naprawdę nie zmieniasz architektury procesora: nadal będziesz działał na procesorze x86, nawet jeśli jest on również w stanie robić inne rzeczy. W takim przypadku zalecam klonowanie instalacji lub po prostu przeniesienie dysku twardego, jak opisano w Przenoszenie instalacji linuksowej na nowy komputer .

Z drugiej strony, jeśli chcesz mieć system 64-bitowy (w ujęciu Ubuntu: amd64architektura), musisz ponownie zainstalować, ponieważ nie możesz instalować amd64pakietów w i386systemie i odwrotnie. ( Zmieni się to, gdy pojawi się Multiarch ).

Wiele dostosowań znajduje się w twoim katalogu domowym i możesz skopiować to na nowe urządzenie. Ustawienia systemu nie mogą być kopiowane tak łatwo ze względu na zmianę architektury procesora.

W systemie Ubuntu 10.10 i nowszych wypróbuj OneConf .

OneConf jest mechanizmem do rejestrowania informacji o oprogramowaniu w Ubuntu One i synchronizacji z innymi komputerami w razie potrzeby. W Maverick lista zainstalowanych programów jest przechowywana. Może to ostatecznie rozszerzyć się o niektóre ustawienia aplikacji i stan aplikacji. Inne narzędzia, takie jak Stipple, mogą zapewniać bardziej zaawansowane ustawienia / kontrolę.

Jedną z głównych rzeczy, które chcesz odtworzyć w nowej instalacji, jest zestaw zainstalowanych pakietów. W przypadku dystrybucji opartych na APT możesz użyć aptitude-create-state-bundlepolecenia (części aptitudepakietu), aby utworzyć archiwum zawierające listę zainstalowanych pakietów i ich konfiguracji debconf oraz aptitude-run-state-bundlena nowym komputerze. (Dzięki intuicyjnemu za poinformowanie mnie o tym aptitude-create-state-bundle.) Zobacz także listę wyraźnie zainstalowanych pakietów Ubuntu oraz cytowane tam pytania Super User i Zadaj Ubuntu, zwłaszcza odpowiedź Telemachusa na temat ręcznego wykonywania tej części.

W przypadku rzeczy, które zmieniłeś /etc, musisz je przejrzeć. Wiele ma związek z konkretnymi ustawieniami sprzętu lub sieci i nie należy ich kopiować. Inni mają do czynienia z osobistymi preferencjami - ale w miarę możliwości powinieneś ustawiać osobiste preferencje dla poszczególnych użytkowników, aby ustawienia były zapisywane w katalogu domowym.

Jeśli planujesz z wyprzedzeniem, możesz użyć etckeeper, Zainstaluj etckeeper aby przejąć/etc kontrolę wersji ( szybki start etckeeper ). Nie musisz wiedzieć nic o kontroli wersji, aby korzystać z etckeeper, musisz tylko zacząć uczyć się, jeśli chcesz z niego skorzystać, aby robić wymyślne rzeczy.

Gilles „SO- przestań być zły”
źródło
Czy możesz wyjaśnić część dotyczącą problemów z łukiem procesora. Oczekuję, że nie powinno być problemu, ponieważ przechodzi z wersji x86-32 na x86-64.
tshepang
1
@Tshepang: Tak długo, jak nie jesteś zmieniając architekturę, to prościej skopiować całą instalację ( /home, /etc, /var, /usri wszystko) i wystarczy zmienić kilka plików w etctej edycji potrzebie. To nie jest opcja, jeśli przechodzisz na inną architekturę, ponieważ musisz ponownie zainstalować wszystkie pakiety binarne.
Gilles 'SO - przestań być zły'
1
@ user4745: Idealnie byłoby zatwierdzić każdą zmianę /etcosobno za pomocą znaczącego komunikatu zatwierdzenia (w przeciwieństwie do polegania na hakach automatycznego zatwierdzania) i zatwierdzać zmiany specyficzne dla komputera w innej gałęzi niż preferencje sysadmin lub konfiguracja w całej witrynie. Ale nawet podstawowe użycie pomaga śledzić zmiany, które wprowadziłeś /etc, abyś mógł je replikować na nowym komputerze.
Gilles „SO- przestań być zły”
1
Jak to się ma do używania aptitude-create-state-bundle?
intuicyjnie,
1
@intuited: Nie wiedziałem o aptitude-create-state-bundle. Dzięki, jest to automatyczny sposób odtwarzania stanu zarządzanego przez APT (lepszy niż sposób ręczny, który nie odtwarzał źródeł APT ani ustawień debconf). Możesz także dodać odpowiedź na powiązane pytania .
Gilles 'SO - przestań być zły'
3

Oto jak uzyskać wszystko oprócz tego, co ręcznie skonfigurowałeś:

dpkg --get-selections > packages.txt
debconf-get-selections > debconf.txt

Edytuj te pliki, jeśli to konieczne, do wszystkiego, co zależy od łuku (np. Obraz linux), ale nie sądzę, że będzie ich wiele.

Skopiuj te pliki do nowego systemu, a następnie uruchom:

debconf-set-selections < debconf.txt
dpkg --set-selections < packages.txt
apt-get dselect-upgrade

Będziesz także chciał skopiować (najlepiej z rsync) / home i inne katalogi danych do nowego systemu.

Pozostaną tylko pliki konfiguracyjne z głównych pakietów (np. Apache, bind, cronjobs i in.).

bahamat
źródło
2
+1 za wzmiankę o debconf, ale -1 za przywrócenie selekcji dpkg. Oznacza to, że wszystkie pakiety są instalowane ręcznie na nowym komputerze. Służy aptitude search '~i !~M'do zapisywania listy ręcznie zainstalowanych pakietów; zobacz tę odpowiedź, aby uzyskać więcej informacji.
Gilles „SO- przestań być zły”
1

Naprawdę wiele Windows voodoo dotyczących sterowników, rejestru i wrażliwości na zmiany płyty głównej jest mniej dotkliwe w Linuksie, jeśli używasz ogólnego jądra ze wszystkimi sterownikami jako modułami, co jest typową sytuacją w Ubuntu. Są to jedyne rzeczy w / etc, które zależą od znanego mi sprzętu:

  • Jeśli masz zainstalowane zastrzeżone sterowniki graficzne, myślę, że mogą to stanowić problem.
  • Zamieniłem dysk twardy z zainstalowanym Debianem ze starego HP Pavilion (procesor 500 MHz, dość stary) na nieco nowszą płytę MSI KT4V. Jedyne problemy, jakie miałem, to to, że moje nazwy interfejsu sieciowego były pomieszane. Ale to dotyczyło mnie bardziej niż zwykłego użytkownika, ponieważ ta instalacja była wyraźnie przeznaczona do wykorzystania jako router.
  • Inną rzeczą, na którą mogą mieć wpływ czujniki lm, jeśli go używasz. Jest to specyficzne dla płyty głównej, ale możesz po prostu uruchomić wykrywanie czujników, aby to naprawić.
  • Jeśli zmienisz urządzenie, Linux spodziewa się, że będzie to partycja root, lub jeśli dowolne urządzenie / partycje wskazane w / etc / fstab zmienią się, tj. Przenosisz się z dysku PATA na SATA, musisz zaktualizować to, w przeciwnym razie Linux będzie mieć problemy.

Jeśli GPU jest taki sam, kontroler napędu jest tego samego typu i nie masz wielu domowych skryptów zależnych od nazw interfejsów sieciowych, nie przewiduję poważnych problemów.

LawrenceC
źródło
Sprzęt nie będzie bardzo podobny, większy dysk, różne partycjonowanie, inny procesor graficzny. Nie sądzę, aby kopiowanie hierarchii plików działało bez drastycznej interwencji, ponieważ będzie to przejście x86-> x64.
user4745
Opcje rozruchu (zapisane /etc/default/grubjako, jako wartość GRUB_CMDLINE_LINUX_DEFAULT) należy dodać do tej listy.
intuicyjnie,
0

[dodając do tej doskonałej odpowiedzi ]

Widzę, że wspominasz o trosce o zainstalowane pakiety. Rozumiem przez to, że masz zamiar przenosić dysk z jednej maszyny na drugą. Zakładając, że twoje dwa komputery mają architekturę x86, jedynym problemem, jaki mogę wymyślić, może się zdarzyć, jeśli twoja instalacja jest 64-bitowa, a twój nowy komputer nie. Jeśli wokół jest coś innego, nie powinno być problemu.

tshepang
źródło
Nie przesyłam dysku, ale mógłbym skopiować cały dysk, jeśli byłoby to łatwiejsze. Zakładając, że wykonałem czystą instalację, chciałem ponownie zainstalować te same pakiety, pomijając te zależne od sprzętu lub systemu.
user4745
Będzie to również przejście x86-> x64.
user4745