User:Wacek/brudnopis Migrate installation to new hardware

From ArchWiki
Jump to navigation Jump to search

W tym artykule omówiono kroki wymagane do przeniesienia systemu Arch Linux na nowy sprzęt. Celem jest osiągnięcie takiej samej instalacji ArchLinux, jeśli chodzi o zainstalowane oprogramowanie i konfigurację, która jest niezależna od sprzętu.

Warning: Niektóre z poniższych instrukcji mogą być niebezpieczne: przed kontynuowaniem zaleca się wykonanie kopii zapasowej wszystkich ważnych danych w starym systemie.

Istnieją dwa różne podejścia do migracji instalacji:

  1. Bottom to top: Zainstaluj świeży system Arch Linux na nowym sprzęcie, a następnie przywróć zainstalowane pakiety i pliki konfiguracyjne, m.in. jak opisano w dotfiles.
  2. Top to bottom: Sklonuj stary dysk twardy na nowy dysk twardy lub umieść stary dysk twardy w nowym systemie; w razie potrzeby zmodyfikuj pliki konfiguracyjne.

Podejście od góry do dołu zapewnia dokładniejsze odtworzenie oryginalnego systemu niż podejście od dołu do góry.


Dostosuj się do nowego sprzętu

Warning: W przypadku obu podejść musimy uwzględnić różnice między starym a sprzętem i odpowiednio zmienić zainstalowane sterowniki i konfigurację.

Zanim zaczniesz, zbadaj aspekty nowego sprzętu i sporządź listę różnic. Wspólne różnice to

Hard drive vs. SSD

Zobacz artykuł SSD.

Dostawca procesora

Jeśli zmienisz procesor na procesor innego dostawcy (np. Intel na AMD), zmień konfigurację mikrokod.

GPU

Jeśli zmieniłeś GPU na GPU innego dostawcy (np. z firmy Amd na NVIDIA), zmień sterownik graficzny.

UEFI vs. MBR boot code booting

Jeśli przełączysz się na nowszą płytę główną z UEFI, może być preferowane lub wymagane przełączenie rozruchu z „MBR boot code” na rozruch UEFI. W takim przypadku potrzebny jest EFI system partition.

Od dołu do gór

W starym systemie

We define here a minimal configuration that carries over from the old to the new system which differentiates this approach from the Installation guide. Think about the configuration files from /etc and dotfiles in /home that you want to copy to the new system, as well as user data files. If you will not have access to the old system from the new system then backup up all the files that you want to copy over.

Lista zainstalowanych pakietów

$ pacman -Qqen > pkglist.txt
$ pacman -Qqem > pkglist_aur.txt

daje ładną listę jawnie zainstalowanych pakietów z repozytoriów i AUR. Dołącz go do kopii zapasowej, jeśli ją wykonasz.

Możesz również użyć następującego skryptu, aby uzyskać lepszy przegląd plików binarnych i bibliotek zainstalowanych bez wiedzy pacmana (np. instalowanych przez Steam, Desura lub przy użyciu ich własnych metod instalacji):

find / -regextype posix-extended -regex "/(sys|srv|proc)|.*/\.ccache/.*" -prune -o -type f \
-exec bash -c 'file "{}" | grep -E "(32|64)-bit"' \; | \
awk -F: '{print $1}' | \
while read -r bin; \
do pacman -Qo "$bin" &>/dev/null || echo "$bin"; \
done

pacman cache

Rozważ utworzenie kopii zapasowej /var/cache/pacman/pkg/ jeśli nie zmieniasz architektur (na przykład z x86 na x86_64).

W nowym systemie

Instrukcja instalacji pierwsza połowa

Podstawowe informacje na temat instalacji nowego systemu można znaleźć w Installation guide. Postępuj zgodnie z pierwszą połową instrukcji instalacji, ale z wyłączeniem polecenia pacstrap.

Skopiuj pamięć podręczną pacmana

Skopiuj pamięć podręczną pacman znalezioną w /var/cache/pacman/pkg/ ze starego do nowego systemu lub z kopii zapasowej do nowego systemu.

Instrukcja instalacji druga połowa

Kontynuuj korzystanie z przewodnika instalacji od, włącznie z poleceniem pacstrap, aż do końca, ale nie uruchamiaj ponownie. Nie pomijaj polecenia pacstrap, ponieważ wykonuje ono dodatkową pracę poza instalacją pakietów.

Zainstaluj wcześniej zainstalowane oprogramowanie

Edytuj pkglist.txt (i pkglist_aur.txt) i usuń sterowniki, które nie są potrzebne w nowym systemie. Następnie zainstaluj inne wcześniej zainstalowane oprogramowanie za pomocą

# pacman -S --needed - < pkglist.txt

Od góry do dołu

Istnieją dwie opcje podejścia od góry do dołu: możesz zachować dysk, na którym system jest już zainstalowany, i zmodyfikować jego zawartość lub skopiować system na nowy dysk. Jeśli zachowasz dysk i zmodyfikujesz go, a następnie umieścisz go z powrotem w starym systemie, modyfikacje prawdopodobnie uniemożliwią uruchomienie starego systemu.

Oczyść stary system

Warto również wyczyścić system przed sklonowaniem, jak opisano w System maintenance#Clean the filesystem Upewnij się, że stary system nadal działa zgodnie z oczekiwaniami po oczyszczeniu, zanim przejdziesz dalej.

Skopiuj system na nowy dysk

Note: Jeśli planujesz zachować dysk twardy, na którym system jest już zainstalowany, możesz pominąć tę sekcję.

Istnieją dwie podstawowe metody kopiowania systemu na nowy dysk, disk cloning i kopiowanie plików.

Klonowanie dysku

Wymagane jest używanie działającego systemu Linux zamiast starego systemu Arch Linux; na przykład możesz użyć nośnika instalacyjnego Arch Linux USB flash installation media. Zostaną odtworzone układ partycji i systemy plików starego systemu.

Kopiowanie plików

  • Utwórz nowe partycje i systemy plików na nowym dysku. Możesz skorzystać z okazji, aby wybrać inny układ partycji i/lub systemy plików niż wcześniej.
  • Dla każdego systemu plików skopiuj pliki ze starego na nowy dysk, używając rsync lub innych narzędzi, które zachowują uprawnienia, atrybuty itp., zobacz rsync#Full system backup rsync#File system cloning aby uzyskać więcej informacji.

Transport options

Istnieje wiele różnych metod przenoszenia danych między dwoma dyskami:

  • Podłącz oryginalny i docelowy dysk twardy do tego samego komputera, starego lub nowego. Łącze danych: stary HDD -> komputer -> nowy HDD.
  • Korzystaj z tymczasowych urządzeń pamięci masowej, takich jak zewnętrzne dyski twarde lub kopie zapasowe w chmurze. Łącze danych: stary dysk twardy -> stary komputer -> pamięć -> nowy komputer -> nowy dysk twardy. Zobacz artykuł System backup.
  • Przesyłaj dane przez sieć, na przykład za pomocą rsync. Łącze danych: stary dysk twardy -> stary komputer -> sieć -> nowy komputer -> nowy dysk twardy.

For the first two options, consider that you might need adapters to connect the HDDs (PATA->SATA, USB-HDD-Cases, etc.), and choose a connection that is sufficiently fast.

W przypadku dwóch pierwszych opcji należy wziąć pod uwagę, że do podłączenia dysków twardych mogą być potrzebne adaptery (PATA->SATA, USB-HDD-Cases, itp.) i wybrać wystarczająco szybkie połączenie.

Dwie ostatnie opcje wymagają użycia działającego systemu Linux na nowym komputerze, ponieważ w tym momencie nie można uruchomić systemu z nowego dysku twardego.

Zaktualizuj fstab

Warning: Przed wykonaniem tego kroku upewnij się, że nie chcesz używać tego dysku w starym systemie, ponieważ zmiana pliku fstab prawdopodobnie uniemożliwi uruchomienie systemu w starej konfiguracji.

Jeśli używasz obrazu instalacyjnego Arch Linux, zamontuj nową partycję główną do /mnt i inne wymagane partycje, tak jak podczas normalnej instalacji (zobacz Installation guide#Mount the file systems).

Wstaw dowolny komentarz, taki jak #end of old fstab na końcu /mnt/etc/fstab. Wygeneruj nowy plik fstab, jak wskazano w Przewodniku Installation guide#Fstab, dołączając go do bieżącego pliku fstab. Ogólnie zawsze przeglądaj plik fstab utworzony przez genfstab. W takim przypadku sprawdź starsze wpisy fstab przed komentarzem, jeśli są nieaktualne lub zduplikowane, usuń je, a jeśli stare wpisy nadal będą przydatne, zachowaj je. Na przykład można zachować wpisy montowania dla dysków sieciowych. Ogólnie zaleca się używanie Persistent block device naming.

Zainstaluj ponownie program ładujący

Może zajść potrzeba ponownej instalacji i/lub ponownej konfiguracji boot loadera z następujących powodów:

  • Różne dyski, układ partycji lub system plików
  • Dodawanie wpisów rozruchowych UEFI do nowej pamięci NVRAM na płycie głównej
  • Migracja z rozruchu „MBR boot code” do rozruchu UEFI
  • Migracja z USB do SATA/NVMe
  • Aktualizacja wiersza poleceń jądra
    • W przypadku innego GPU zaktualizuj tryb bufora ramki
    • Zaktualizuj obraz Microcode initramfs

If you are using a Arch Linux live environment, then before reinstalling the boot loader, change root into the new system:

# arch-chroot /mnt

Refer to the article on your boot loader for instructions on how to (re)install it.

Regenerate kernel image

It is recommended to regenerate the initramfs image with mkinitcpio, although initially the fallback initramfs image may work.

Reconfigure audio

  • alsamixer volume
    • save settings

Reconfigure network

If the old installation and the migrated installation shall coexist in the same network, set a new hostname with hostnamectl.

Also consider configuration changes that are required after a change in hostname:

  • /etc/hosts
  • other apps using hostname: synergy, nut (network ups tools)
  • grep -Ri 'hostname' /etc (as the root user)should give some hints on the files to be updated

The network interface names may change when using dhcpcd with named network interfaces.

  • Running dmesg | grep 'renamed from eth' as root might help to find the new interface name
  • remove old: disable dhcpcd@enpXs0.service
  • activate new: enable dhcpcd@enpXs0.service

See also