Jump to content
From ArchWiki

Related articles

- Migrating between architectures
- Moving an existing install into (or out of) a virtual machine

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.

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

Jeśli używasz środowiska Live Arch Linux, przed ponowną instalacją programu ładującego, wykonaj chroot w nowym systemie:

    # arch-chroot /mnt

Zapoznaj się z artykułem dotyczącym boot loader, aby dowiedzieć się, jak go (ponownie) zainstalować.

### Regeneracja obrazu jądra

Zaleca się zregenerowanie obrazu initramfs za pomocą mkinitcpio, chociaż początkowo awaryjny obraz initramfs może działać.

### Skonfiguruj ponownie dźwięk

- alsamixer volume
  - save settings

### Zmień konfigurację sieci

Jeśli stara instalacja i migrowana instalacja będą współistnieć w tej samej sieci, ustaw nową nazwę hosta z hostnamectl.

Rozważ również zmiany konfiguracji, które są wymagane po zmianie nazwy hosta:

- /etc/hosts
- other apps using hostname: synergy, nut (network ups tools)
- `grep -Ri 'hostname' /etc` (jako użytkownik root) powinien dać kilka wskazówek na temat plików do aktualizacji

Nazwy interfejsów sieciowych mogą ulec zmianie podczas używania dhcpcd z nazwanymi interfejsami sieciowymi.

- Uruchomienie `dmesg | grep 'renamed from eth'` jako root może pomóc znaleźć nową nazwę interfejsu
- usuwać stary: disable `dhcpcd@enpXs0.service`
- aktywuj nowy: enable `dhcpcd@enpXs0.service`

## Zobacz też

- Howto clone a linux system
- [1]
- [2]

Category:

- System recovery (Polski)