User:Wacek/brudnopis Migrate installation to new hardware
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.
Istnieją dwa różne podejścia do migracji instalacji:
- 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.
- 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
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
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
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