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
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:
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ę:
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:
-
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.
|