„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.
- 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.
- 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.
- Połącz się z Internetem: W środowisku Live konieczne jest połączenie z Internetem, aby pobrać pakiety lub skorzystać z Arch Wiki. Użyj
iwctlaby skonfigurować sieć Wi-Fi lubdhcpcddla sieci przewodowych.
- Zamontuj partycje systemu Arch: Zidentyfikuj partycje Arch Linux za pomocą
lsblklubfdisk -l. Zamontuj partycję root w/mnti inne partycje (takie jak/bootlub/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
- Użyj
arch-chrootaby wejść do zainstalowanego systemu: To polecenie ułatwia proceschrooti automatycznie montuje niezbędne katalogi.
bash
arch-chroot /mnt
Teraz działasz w ramach zainstalowanego systemu Arch Linux.
- Sprawdź logi systemd: Użyj polecenia
journalctlaby 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
- 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.
- 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
- 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ć.
- Sprawdź fstab: Plik
/etc/fstabzawiera 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.
- 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
- 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).
- Wyjdź z
arch-chrooti uruchom ponownie: Po wprowadzeniu poprawek wpiszexitaby wyjść ze środowiskachrootodmontuj 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 /mntmount /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. | exitumount -R /mntreboot |
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!