Bociek PLD - Pisarz
I. Informacje podstawowe
II. Instalacja
III. Podręcznik użytkownika
IV. Podręcznik administratora
Administracja
Ratowanie systemu
V. Tworzenie PLD - Praktyczny poradnik
VI. O podręczniku
O tej książce
Spis treści
Inne wersje tego dokumentu
HTML (jeden plik)
Odnośniki
Tworzymy dokumentację PLD
Strona PLD
Listy dyskusyjne PLD

Ratowanie systemu

<- ->
 

Wstęp

W tym rozdziale pokażemy co można zrobić w wypadku, jeśli nastąpiła awaria systemu, uniemożliwiająca normalne uruchomienie. Musimy uzyskać dostęp do urządzeń lub plików na dysku twardym, możemy w tym celu spróbować uruchomić system na niskim poziomie pracy, a jeśli to się nie powiedzie, to użyć operacji chroota z innego systemu np. dystrybucji typu live.

Uruchomienie na niskim poziomie pracy

Możemy uruchomić system z pominięciem wielu czynności wykonywanych przez skrypty startowe. Operacja polega na przekazaniu do kernela odpowiednich parametrów, które wymuszą użycie przez proces init specjalnie przygotowanego zestawu rc-skryptów.

Interesuje nas poziom 1 lub single (tryb jednego użytkownika), tak też nazywają się parametry, które musimy przekazać do kernela. Parametry przekazujemy do jądra za pośrednictwem bootloadera, w trakcie uruchomienia systemu np.:

grub append> root=/dev/sda2 single

Szczegółowy opis bootloadera i przekazywanie parametrów kernela opisano w tym dokumencie. Poziomy pracy zostały szerzej omówione w tym dokumencie

Uruchomienie RescueCD

Jako dystrybucję Live najlepiej wybrać RescueCD lub PLD Live. Oba projekty są dobrze przygotowane do pracy z naszą dystrybucją, gdyż zawierają program rpm i poldek.

Na początek musimy zadbać o to, aby system mógł się uruchomić z płyty CD, uzyskamy to modyfikując odpowiednią opcję BIOS-u komputera. Teraz uruchamiamy komputer z RescueCD umieszczonym w napędzie CD-ROM i czekamy aż system się uruchomi.

Aby dokonać napraw musi zostać załadowany moduł kontrolera masowego. Większość współczesnych dystrybucji typu live sama wykrywa sprzęt, jeśli jednak to się nie powiedzie lub używamy starej wersji RescueCD to musimy sami załadować moduł. Jeśli potrzebujemy obsłużyć kontroler typu IDE musimy załadować moduł ide-disk

# modprobe ide-disk

Jeżeli naprawiany system jest oparty na macierzach programowych to musimy je najpierw złożyć np.:

# mdadm -A --auto=yes /dev/md0 /dev/hda /dev/hdb

Więcej szczegółów dotyczących programowych macierzy znajdziemy w tym dokumencie.

Teraz kiedy mamy załadowane odpowiednie moduły i dostęp do plików urządzeń (w katalogu /dev) możemy wykonać liczne operacje diagnostyczne i naprawcze (opisane dalej).

Naprawa systemu plików

Do naprawy systemu plików konieczny jest tylko dostęp do plików urządzeń z katalogu /dev. Aby sprawdzić i naprawić system plików XFS wydajemy polecenie:

# xfs_repair /dev/sda2

Naprawy systemów plików została szczegółowo omówiona w tym dokumencie.

Naprawa konfiguracji

W przypadku podniesienia systemu w trybie single mamy swobodny dostęp do plików konfiguracji, w przeciwnym wypadku musimy najpierw podmontować odpowiednią partycję aby uzyskać dostęp do plików. W tym celu tworzymy nowy katalog, a następnie montujemy do niego właściwe urządzenie np.:

# mkdir -p /mnt/rootfs
# mount /dev/hda3 /mnt/rootfs

Jeżeli masz więcej partycji, na których znajdują się pliki systemowe (np. /boot), także je podmontuj w odpowiednich katalogach np.:

# mount /dev/hda1 /mnt/rootfs/boot 

mamy teraz nieograniczony dostęp do plików uszkodzonego systemu.

Operacja chroota

Jeśli uruchomiliśmy system z RescueCD i mamy podmontowane systemy plików to wielu wypadkach wygodniejsze, a czasami nawet konieczne będzie wykonanie tzw. chroot-a.. Polega to na podmianie głównego systemu plików używanego przez dany program na główny system plików ratowanego systemu operacyjnego. Będzie to konieczne przy problemach z jądrem, bootloaderem czy initrd. Aby wykonać tą operację należy wykonać komendę:

# chroot /mnt/rootfs

To polecenie uruchomi powłokę /bin/sh w taki sposób, że wszystkie działania z jej poziomu będą odbywały się przeźroczyście na podmontowanym systemie plików. Zanim jednak zabierzemy się do pracy proszę o zapoznanie się z uwagami na końcu rozdziału. Jeśli używamy powłoki korzystającej z chroot-a, wystarczy że zakończymy jej pracę wydając polecenie exit lub skrótem klawiszowym ctrl+d. Na koniec odmontowujemy systemy plików jeśli takie są i restartujemy komputer.

Uwagi

  • Niektóre operacje w środowisku chroot wymagają (np. tworzenie initrd) podmontowania pseudo systemu plików /proc:

    # mount /proc /mnt/rootfs/proc -o bind

  • Użytkownicy udeva powinni pamiętać, że wiele operacji w podmontowanym środowisku wymagają istnienia kompletu plików urządzeń:

    # mount /dev /mnt/rootfs/dev -o bind

    Udev dokładniej opisano w tym dokumencie.

  • Może się zdarzyć, że poldek się nie uruchamia w chroocie. Sposobem na obejście tego jest uruchomienie go z flagą -r , np:

    # poldek -r /mnt/rootfs

  • Dużą zaletą RescueCD jest to, że automatycznie "podnosi" interfejs sieciowy z obsługą DHCP oraz serwer SSH. Pozwala to na zdalną naprawę, wystarczy, że ktoś umieści płytę z dystrybucją w napędzie i uruchomi komputer. My zalogujemy się na odpowiedni adres za pośrednictwem SSH; login: root, hasło: pld.

 
<- ->