Jak mogę powielić moje środowisko Linux, jeśli migruję na inny sprzęt?


10

Obecnie mam pakiety, moduły, ustawienia itp. Dla Eclipse, MySQL, Python, Firefox itp. Skonfigurowane na Kubuntu. Mam również optymalnie skonfigurowane Kubuntu dla moich potrzeb. Chciałbym zduplikować moje środowisko na innym komputerze, który ma inny procesor (obecnie na Intel Q9450, nowy procesor to i7). Jak rozumiem, moje aplikacje są kompilowane do użytku z moim konkretnym procesorem, więc nie ma mowy o utworzeniu kopii partycji prostej.

Czy jest jakiś sposób na skopiowanie mojego środowiska na inną maszynę, bez ponownej instalacji i ponownej konfiguracji?


To pytanie jest dla mnie niewiarygodne ... Zadawałem to samo!
dag729

„Rozumiem, że moje aplikacje są kompilowane do użycia z moim konkretnym procesorem”: Skąd pomysł? Nie znam żadnej dystrybucji (z wyjątkiem oczywiście Gentoo), która to robi.
sleske

@sleske: czy kiedykolwiek próbowałeś zainstalować pakiet amd64 w wersji PPC Debiana? ;)
dag729

1
@ dag729: Oczywiście, jeśli zmienisz architekturę procesora , będziesz potrzebować nowych pakietów. Ale zarówno Intel Q9450, jak i i7 są procesorami x86.
śleske,

1
Myślałem, że mój i7 to x86_64. Na tym komputerze uruchamiam 64-bitowe aplikacje. Czy jestem w błędzie?
ciekawy

Odpowiedzi:


3

Jak rozumiem, moje aplikacje są kompilowane do użytku z moim konkretnym procesorem, więc nie ma mowy o utworzeniu kopii partycji prostej.

Co prowadzi cię do tego wniosku? Przynajmniej dla x86 pakiety instalowane przez Kubuntu są kompilowane do działania na praktycznie wszystkich nie-prehistorycznych procesorach. Wierzę, że będą działać na czymkolwiek nowszym niż 486, co prawdopodobnie nie stanowi problemu w twoim przypadku :-).

Tak więc kopia partycji prostej powinna działać dobrze:

  • skopiuj partycje (lub po prostu skopiuj pliki cp -a, jeśli zmieniłeś układ partycji)
  • dostosuj / etc / fstab do nowego układu partycji
  • ponownie skonfiguruj program ładujący dla nowych partycji i ponownie zainstaluj program ładujący
  • uruchom i ciesz się

Problemy można się spodziewać tylko w przypadku:

  • samodzielnie skompilowane pakiety, ale nawet tam większość domyślnie skompiluje się dla wszystkich współczesnych procesorów, chyba że grasz z opcjami kompilatora
  • sterowniki urządzeń

Większość współczesnych jąder automatycznie wykrywa sprzęt podczas uruchamiania, więc zwykle nawet sterowniki powinny być w porządku, ale jeśli coś się nie powiedzie, zwykle można uruchomić system w trybie pojedynczego użytkownika i naprawić wszelkie problemy ze sterownikami.


Jeśli to zadziała, moje życie będzie znacznie łatwiejsze. Dzięki! Spróbuję tego pierwszego.
ciekawy

7

Możesz zabrać swój katalog domowy bez żadnych zmian. Prawie wszystko, co trafia do katalogu domowego, jest zaprojektowane tak, aby można je było udostępniać na czymś takim jak NFS, więc jesteś dobry.

Zapisz również swój wybór pakietu za pomocą

sudo dpkg --get-selections '*' >file.txt

i przywróć go na innym komputerze za pomocą

sudo dpkg --set-selections <file.txt

Podobnie zapisz ustawienia debconf za pomocą

sudo debconf-get-selections >file2.txt

i przywróć za pomocą

sudo debconf-set-selections <file2.txt

W pozostałej części konfiguracji, /etcktóra nie jest zarządzana przez debconf, trudno jest śledzić to, co zostało ręcznie zmienione, chyba że użyłeś czegoś takiego jak etckeeper (być może pomysł na przyszłość). Z tego powodu większość mojej konfiguracji przechowuję w katalogu domowym. Ponieważ jednak wiesz, które programy Cię interesują, znalezienie odpowiednich plików /etcoraz sprawdzenie i skopiowanie ich ręcznie powinno być łatwe .


1
Tak, jeśli przeprowadzasz migrację do innej architektury, jest to odpowiedni sposób. Na marginesie: Po prostu zrób kopię pliku / etc / gdzieś bezpiecznie, a następnie możesz selektywnie przywracać pliki konfiguracyjne, gdy są potrzebne w nowym systemie.
sleske

1

Możesz wykonać kopię zapasową domu i przywrócić go na innym komputerze. To nie może w pełni zaspokoić twoich potrzeb, ale przywróci całą konfigurację. Musisz jednak ponownie zainstalować pakiety.


1

Zdecydowana większość niestandardowych konfiguracji będzie w / home /, a większość pozostałych w / etc /. niektóre pliki / etc zawierają informacje specyficzne dla komputera lub sprzętu (/etc/X11/xorg.conf, / etc / hostname, / etc / fstab z mojej głowy), ale większość z nich można po prostu skopiować, jeśli będą używać tej samej wersji systemu operacyjnego.


Spośród wymienionych rzeczy MySQL jest jedyną, która prawdopodobnie będzie miała konfigurację w / etc /, którą możesz chcieć skopiować, reszta znajduje się w / home /
Justin Smith

1

Oddając get, ustaw rzecz wyborów.

Aby dokładnie wiedzieć, które pliki konfiguracyjne zostały zmienione, uruchom to:

dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
  [[ -r $f ]] || continue; m2=$(md5sum "$f") ;
  [[ $m2 != "$m  $f" ]] && echo "$f";
done |xargs -n1 dlocate  |tee ~/edited-conffiles

Jeśli nie masz już zainstalowanego dlocate, możesz go zastąpić dpkg -Slub pominąć tę część.

Aby wykonać kopię zapasową wszystkich plików konfiguracyjnych:

dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
  echo "$f"
done |sudo tar cjf ~/conffiles.tbz2 -T -

1

Hmm Jeśli nie przeszkadza ci odrobina majstrowania, możesz podłączyć nowy dysk twardy do swojego urządzenia, zamontuj go, a następnie użyj dd. Na przykład, jeśli bieżący katalog główny jest ustawiony na / dev / sda3 i zamontowałeś nowy dysk twardy w / dev / sdb2, którego byś użył

dd if=/dev/sda3 of=/dev/sdb2

Oczywiście musisz to zrobić jako root. Potem będziesz chciał zainstalować Gruba, więc musisz zainstalować Ubuntu LiveCD i używać go.

Lub możesz rzucić okiem na ten link: http://www.ehow.com/how_4924091_clone-hard-drive-linux.html - Wygląda to na całkiem dobry krok do klonowania dysku twardego Linux, chociaż nie sam przetestowałem tę stronę.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.