„Porażka to tylko okazja, aby zacząć od nowa, tym razem w mądrzejszy sposób”. – Henry Ford

Wprowadzenie

Arch Linux jest znany ze swojej elastyczności i kontroli, ale ta sama swoboda może czasami prowadzić do nieoczekiwanych sytuacji, takich jak błąd uruchamiania. Widok czarnego ekranu lub komunikatów o błędach podczas próby uruchomienia systemu może być frustrujący, zwłaszcza gdy jesteś w trakcie wykonywania ważnej pracy. Ale nie rozpaczaj! Ten przewodnik został stworzony, aby dać Ci narzędzia i wiedzę niezbędną do diagnozowania i naprawiania większości problemów związanych z uruchamianiem Arch Linux. Zamienimy tę frustrację w naukę i przywrócimy funkcjonalność systemu.

Podstawowe pojęcia

Zanim zagłębimy się w rozwiązania, ważne jest, aby zrozumieć kilka podstawowych pojęć regulujących proces uruchamiania Arch Linux.

### Proces uruchamiania

Po włączeniu komputera następuje sekwencja zdarzeń mających na celu załadowanie systemu operacyjnego. W systemie Arch Linux zazwyczaj obejmuje to:

* BIOS/UEFI: Oprogramowanie układowe sprzętu uruchamia się i przeprowadza test samokontroli po włączeniu (POST).

* Program rozruchowy: Program (taki jak GRUB lub systemd-boot) jest ładowany z nośnika pamięci. Odpowiada on za wyświetlenie menu i załadowanie jądra systemu Linux.

* Jądro: Jądro systemu operacyjnego jest ładowane do pamięci. Zarządza ono zasobami sprzętowymi i uruchamia początkowe procesy.

* initramfs: Tymczasowy system plików zawierający moduły niezbędne do zamontowania systemu plików root.

* systemd: System init Arch Linux, odpowiedzialny za uruchamianie wszystkich innych usług i procesów niezbędnych do działania systemu operacyjnego.

### systemd i cele

systemd to system zarządzania systemem i usługami w Arch Linux. Wykorzystuje on koncepcję „celów”, które są stanami systemu. Najpopularniejsze z nich to:

* multi-user.target: System jest gotowy do użycia w trybie tekstowym, ze wszystkimi usługami sieciowymi i wieloużytkownikowymi uruchomionymi.

* graphical.target: Podobny do multi-user.target, ale dodatkowo uruchamia środowisko graficzne (jeśli jest skonfigurowane).

* rescue.target: Minimalne środowisko do konserwacji, zazwyczaj z dostępem do sieci.

* emergency.target: Jeszcze bardziej minimalne środowisko z dostępem do katalogu głównego systemu plików, służące do awaryjnego odzyskiwania danych.

### Chroot

Polecenie chroot (change root) zmienia katalog główny widoczny dla procesu. Ma to kluczowe znaczenie podczas naprawiania zainstalowanego systemu Arch Linux, ponieważ pozwala nam pracować nad nim „od środka” z poziomu środowiska live.

Praktyczny przewodnik krok po kroku

Oto przewodnik krok po kroku dotyczący diagnozowania i naprawiania typowych błędów uruchamiania.

  1. Uruchom ponownie komputer i zwróć uwagę na komunikaty o błędach: Przy pierwszej próbie uruchom ponownie komputer i zwróć szczególną uwagę na wszelkie komunikaty wyświetlane na ekranie po uruchomieniu programu rozruchowego. Zanotuj wszelkie kody błędów lub opisy, które wydają się istotne.
  1. Uzyskaj dostęp do środowiska Live USB/CD: Jeśli Arch Linux nie uruchamia się, potrzebujesz nośnika odzyskiwania. Utwórz bootowalną pamięć USB z najnowszym obrazem ISO Arch Linux. Uruchom komputer z tej pamięci USB.
  1. Połącz się z Internetem: W środowisku Live konieczne jest połączenie z Internetem, aby pobrać pakiety lub skorzystać z Arch Wiki. Użyj iwctl aby skonfigurować sieć Wi-Fi lub dhcpcd dla sieci przewodowych.
  1. Zamontuj partycje systemu Arch: Zidentyfikuj partycje Arch Linux za pomocą lsblk lub fdisk -l. Zamontuj partycję root w /mnt i inne partycje (takie jak /boot lub /home) w odpowiednich punktach montowania w /mnt. Na przykład:

bash

# Zakładając, że partycja root to /dev/sdaX, a /boot to /dev/sdaY

mount /dev/sdaX /mnt

mount /dev/sdaY /mnt/boot

  1. Użyj arch-chroot aby wejść do zainstalowanego systemu: To polecenie ułatwia proces chroot i automatycznie montuje niezbędne katalogi.

bash

arch-chroot /mnt

Teraz działasz w ramach zainstalowanego systemu Arch Linux.

  1. Sprawdź logi systemd: Użyj polecenia journalctl aby sprawdzić logi systemowe.

* Aby wyświetlić wszystkie logi: journalctl -xb

* Aby wyświetlić logi związane z ostatnim uruchomieniem: journalctl -b -1 (lub -b -2 aby wyświetlić poprzednie uruchomienie)

* Filtruj według błędów: journalctl -p err

  1. Sprawdź, czy program rozruchowy jest poprawnie skonfigurowany:

* GRUB: Upewnij się, że GRUB jest poprawnie zainstalowany w MBR/EFI i że plik konfiguracyjny (/boot/grub/grub.cfg) jest poprawny. W razie potrzeby zainstaluj ponownie/zaktualizuj GRUB:

bash

grub-install –target=i386-pc /dev/sda # Dla BIOS

# lub

grub-install –target=x86_64-efi –efi-directory=/boot –bootloader-id=Arch # Dla UEFI

grub-mkconfig -o /boot/grub/grub.cfg

* systemd-boot: Sprawdź pliki konfiguracyjne w /boot/loader/entries/. Upewnij się, że jądro i initramfs znajdują się we właściwych ścieżkach.

  1. Przebuduj initramfs: Jeśli jądro nie ładuje się poprawnie, initramfs może być uszkodzone lub niekompletne.

* Sprawdź plik /etc/mkinitcpio.conf pod kątem poprawności modułów.

* Odbuduj initramfs:

bash

mkinitcpio -P

  1. Sprawdź integralność systemu plików: Uszkodzony system plików może uniemożliwić uruchomienie systemu.

* Wyjdź z arch-chroot (wpisz exit).

* Odmontuj partycje: umount -R /mnt

* Uruchom fsck na partycji root (zastąp /dev/sdaX rzeczywistą partycją):

bash

fsck /dev/sdaX

Odpowiedz ostrożnie na pytania, zazwyczaj y aby naprawić.

  1. Sprawdź fstab: Plik /etc/fstab zawiera listę partycji, które mają być montowane podczas uruchamiania. Błędy w tym pliku mogą uniemożliwić uruchomienie systemu. Upewnij się, że identyfikatory UUID lub nazwy urządzeń są poprawne, a opcje montowania są prawidłowe.
  1. Sprawdź, czy usługa menedżera wyświetlania jest włączona (jeśli używasz środowiska graficznego): Jeśli system uruchamia się w trybie tekstowym, ale środowisko graficzne nie ładuje się, usługa menedżera wyświetlania (np. gdm, sddm, lightdm) może nie być włączona.

bash

systemctl enable gdm.service # Przykład dla GDM

  1. Sprawdź integralność jądra i modułów: Jeśli niedawno zaktualizowałeś jądro i problem pojawił się po aktualizacji, może to oznaczać problem z instalacją jądra lub modułów. Spróbuj ponownie zainstalować pakiet jądra:

bash

pacman -S linux linux-headers

Następnie odbuduj ponownie initramfs (mkinitcpio -P).

  1. Wyjdź z arch-chroot i uruchom ponownie: Po wprowadzeniu poprawek wpisz exit aby wyjść ze środowiska chrootodmontuj partycje i zrestartuj system:

bash

exit

umount -R /mnt

reboot

* Arch Wiki jest twoim najlepszym przyjacielem: Arch Wiki jest niezwykle szczegółowym i aktualnym źródłem informacji. Jeśli napotkasz konkretny błąd, poszukaj go w Arch Wiki.

* Twórz kopie zapasowe: Regularnie twórz kopie zapasowe ważnych danych. Może to uratować Cię w poważniejszych sytuacjach.

* Częściowe aktualizacje są niebezpieczne: Unikaj wykonywania częściowych aktualizacji (pacman -Sy bez pacman -Su). Zawsze aktualizuj cały system, aby uniknąć konfliktów pakietów.

* Zanotuj zmiany: Jeśli przed wystąpieniem problemu wprowadziłeś jakieś istotne zmiany w systemie (instalacja sterowników, konfiguracja sprzętu itp.), zanotuj to, aby ułatwić diagnozę.

* Użyj bezpiecznego edytora tekstu: Podczas edycji plików konfiguracyjnych w środowisku chrootużywaj edytorów takich jak nano lub vim , które są mniej podatne na uszkodzenie plików niż niektóre edytory graficzne.

Tabela organizacji

Krok Co zrobić Przykład polecenia/działania
1. Wstępna diagnostyka Obserwuj komunikaty o błędach wyświetlane na ekranie podczas uruchamiania. Zanotuj komunikaty takie jak „kernel panic”, „error code X”, „failed to start…”
2. Środowisko odzyskiwania Uruchom komputer z Live USB/CD Arch Linux. Wybierz pendrive jako urządzenie rozruchowe w BIOS/UEFI.
3. Połączenie z Internetem Skonfiguruj sieć, aby pobrać pakiety lub sprawdzić Wiki. iwctl station wlan0 scan i iwctl station wlan0 connect SSID
4. Montaż systemu Zmontuj partycje Arch Linux zainstalowanego w katalogu /mnt. mount /dev/sdXY /mnt
mount /dev/sdXZ /mnt/boot
5. Chroot w zainstalowanym systemie Zaloguj się do zainstalowanego systemu, aby wprowadzić zmiany. arch-chroot /mnt
6. Sprawdzanie logów Przeanalizuj logi z systemd aby zidentyfikować przyczynę problemu. journalctl -xb
7. Konfiguracja bootloadera Upewnij się, że bootloader (GRUB/systemd-boot) jest poprawnie zainstalowany i skonfigurowany. grub-mkconfig -o /boot/grub/grub.cfg lub sprawdź pliki w /boot/loader/entries/
8. Odbudowa initramfs Zregeneruj initramfs, zwłaszcza po aktualizacjach jądra lub zmianach w /etc/mkinitcpio.conf. mkinitcpio -P
9. Sprawdzanie systemu plików Sprawdź integralność partycji dysku. fsck /dev/sdXY (poza chroot)
10. Przegląd fstab Sprawdź, czy plik /etc/fstab jest poprawny, z prawidłowymi identyfikatorami UUID i opcjami montowania. nano /etc/fstab
11. Włączanie usług Upewnij się, że podstawowe usługi (takie jak menedżer wyświetlania) są włączone. systemctl enable display-manager.service
12. Ponowna instalacja pakietów Ponownie zainstaluj jądro i nagłówki, jeśli podejrzewasz uszkodzenie. pacman -S linux linux-headers
13. Zakończenie i ponowne uruchomienie Wyjdź z chroot, odmontuj partycje i uruchom ponownie system. exit
umount -R /mnt
reboot

Typowe błędy

* Kernel Panic: Zazwyczaj wskazuje na problem z jądrem, sterownikami lub sprzętem. Sprawdź logi i, jeśli błąd wystąpił niedawno, spróbuj ponownie zainstalować jądro.

* Komunikaty „Failed to start…”: Wskazuje, że określona usługa nie uruchomiła się. Użyj journalctl -xe aby wyświetlić szczegóły dotyczące danej usługi.

* Nie znaleziono programu rozruchowego: Program rozruchowy może nie być poprawnie zainstalowany na urządzeniu rozruchowym lub konfiguracja BIOS/UEFI jest nieprawidłowa.

* Uszkodzony system plików: Może wystąpić w wyniku nieprawidłowego wyłączenia. Użyj fsck aby to naprawić.

* Błędy w /etc/fstab: Nie znaleziono partycji lub nieprawidłowe opcje montowania mogą uniemożliwić uruchomienie systemu. Sprawdź identyfikatory UUID i ścieżki.

* Problemy ze sterownikiem graficznym: Jeśli system uruchamia się w trybie tekstowym, ale środowisko graficzne nie ładuje się, może to być problem ze sterownikami graficznymi lub menedżerem wyświetlania.

Podsumowanie

Napotkanie błędu podczas uruchamiania systemu Arch Linux może wydawać się przerażające, ale dzięki temu przewodnikowi masz jasny plan działania, który pozwoli zdiagnozować i rozwiązać większość problemów. Pamiętaj, że każdy błąd jest okazją do nauki i pogłębienia wiedzy na temat działania systemu. Kontynuuj praktykę, eksplorację i przeglądanie Arch Wiki. Wkrótce poczujesz się pewnie, aby poradzić sobie z każdą przeszkodą, jaką może przedstawić Arch Linux!