|
||||
| Ubuntu Linux - Biblia |
|---|
|
|
|
|
| Linux - serwer |
|---|
|
|
| Gościmy |
|---|
| Odwiedza nas 2 gości |
| Linux-EduCD jako system ratunkowy |
|
Sprawdza się również doskonale jako płyta ratunkowa. Za pomocą Linux-EduCD możemy m.in: * zmieniać/usuwać hasła * naprawiać uszkodzony MBR * wykonywać kopie zapasowe danych * naprawiać tablicę partycji * odzyskiwać skasowane dane * tworzyć i montować dodatkowe partycje (np. swap) * przeprowadzać diagnostykę napędów Żeby po uruchomieniu płyty, dostać się do systemu, który wcześniej został zainstalowany na komputerze (np. w celu zmiany hasła dowolnego użytkownika, czy też naprawy systemu plików) możemy posłużyć się poleceniem 'chroot'. Pozwala ono na uruchomienie powłoki systemowej, w której podany przez nas katalog, traktowany jest jak główny katalog systemowy: # mount /dev/hda1 /mnt/hda1 # chroot /mnt/hda1 Przy założeniu że zamontowana partycja /dev/hda1 jest główną partycją ("/" - root) zainstalowanego na dysku systemu, chroot pozwala nam przenieść się w jego środowisko. Po takich przenosinach mamy uprawnienia roota i co za tym idzie, praktycznie nieograniczone możliwości pracy w w/w systemie. Jeśli chcemy zmienić np. hasło użytkownika root, wystarczy po za'chroot'owaniu się na partycję /dev/hda1 wykonać komendę: # passwd To w zasadzie o wiele prostsze niż przytrzymywanie klawisza shift w momencie uruchamiania lilo, wymuszanie wywołania powłoki systemowej jeszcze przed procesem 'init': boot: linux init=/bin/sh oraz wpisywanie serii poleceń: # mount -n -o remount,rw / # mount -at nonfs,noproc,nosmbfs # vi /etc/passwd # vi /etc/shadow Powyższy sposób oczywiście również jest skuteczny, ale tylko w przypadku kiedy lilo nie jest uszkodzony. Po wykonaniu chroot'a na główną partycję, oczywiście możemy w dowolny sposób modyfikować główny plik konfiguracyjny lilo -- /etc/lilo.conf. Możemy także wyczyścić zawartość MBR, poleceniem: # lilo -U W przypadku gdy w zainstalowanym systemie znajduje się bootloader grub, który uległ uszkodzeniu lub został nadpisany, możemy odzyskać go w następujący sposób: Najpierw uruchamiamy interaktywną powłokę programu grub: # grub Następnie wpisujemy kolejno (przy założeniu, że partycja główna zawierająca /boot to /dev/hda1) grub> root (hd0,0) grub> setup (hd0) grub> quit KOPIOWANIE I ODZYSKIWANIE MBR MBR - czyli 'Master Boot Record' jest pierwszym fizycznym sektorem twardego dysku o rozmiarze 512 bajtów. Składa się z dwóch części: kodu wykonywalnego i tablicy partycji. Kod ładowany jest do pamięci RAM i uruchamiany podczas startu komputera. Zawiera on program odpowiedzialny za odnalezienie i odczytanie tablicy partycji oraz określenie, która partycja jest aktywna - czyli z której powinien być uruchamiany system operacyjny. W środowisku chroot możemy za pomocą programu dd wykonywać kopię MBR: # dd if=/dev/hda of=mbr.backup bs=512 count=1 Gdybyśmy chcieli odzyskać zbackupowany w ten sposób Rekord, wystarczy: # dd of=/dev/hda if=mbr.backup bs=512 count=1 Of oznacza "output file", if oznacza "input file", bs to liczba bajtów składających się na jeden blok, count to liczba bloków. NAPRAWA USZKODZONEGO SYSTEMU PLIKÓW W celu naprawy uszkodzonego systemu plików, najwygodniej posłużyć się programem fsck. Służy on do testowania i naprawy dowolnych systemów plików, których obsługa wkompilowana jest w jądro. Wywoływany podczas uruchamiania Linuksa, dba o integralność danych, sprawdzając okresowo wszystkie montowane partycje. Powiedzmy że uszkodzenia znajdują się na partycji /dev/hda2. Po uruchomieniu komputera z płytki i wykonaniu chroot'a na główną partycję systemową wpisujemy: # fsck -r /dev/hda2 Jest to naprawa w tzw. trybie interaktywnym (czyli w takim, w którym odpowiadamy na pytania programu). Jeśli nie chcemy odpowiadać na żadne pytania (lub też mamy zaufanie do systemu operacyjnego), możemy wywołać program e2fsck, z parametrami wymuszającymi automatyczną naprawę. Program e2fsck obsługuje również system plików ext3: # e2fsck -p -y /dev/hda2 Po zakończonej pracy fsck zwraca tzw. 'kod zakończenia'. Kod ten jest sumą następujących wartości: 0 - Bez błędów 1 - Poprawiono błędy systemu plików 2 - System powinien zostać przeładowany (reboot) 4 - Pozostawiono nie naprawione błędy systemu plików 8 - Błąd działania 16 - Błąd użycia (składni) 128 - Błąd biblioteki współdzielonej TWORZENIE I MONTOWANIE DODATKOWEJ PARTYCJI Jeśli chcielibyśmy założyć i zamontować dodatkową partycję, np. przeznaczoną na zawartość /home i przenieść na nią dane znajdujące się w dotychczasowym katalogu /home zainstalowanego systemu, możemy również posłużyć się programem dd. W celu zmiany rozmiaru istniejących partycji możemy wykorzystać programy: resize2fs, resize_reiserfs, czy też qtparted. Po zamontowaniu głównej partycji i za'chroot'owaniu się na nią, wykonujemy kopię katalogu /home: # mkdir /opt/kopia_home # cp -Rp /home/* /opt/kopia_home # rm -fr /home/* Następnie zakładamy partycję o zadanym rozmiarze w programie fdisk lub qtparted i montujemy ją w systemie. Np. # mount -o rw /dev/hda3 /home Przenosimy na nią skopiowane dane: # mv /opt/kopia_home/* /home Robimy odpowiedni wpis w /etc/fstab, żeby system montował naszą partycję przy każdym uruchomieniu. W powyższym przypadku bedzie to więc: /dev/hda3 /home ext3 auto,exec 0 0 Wpis 'ext3' mówi o systmie plików, jaki znajduje się na partycji, 'auto' oznacza, że partycja będzie montowana automatycznie, 'exec' oznacza że w /home będą mogły być uruchamiane pliki wykonywalne. Dwie ostatnie pozycje - to kolejno: - pole, którym posługuje się program dump do wykrywania, który system plików powinien być odłączony. Wartość '0' oznacza oczywiście że żaden - pole używane przez program fsck, decydujące o kolejności sprawdzania systemów plików. Wartość '0' oznacza że /home nie będzie sprawdzany podczas uruchamiania systemu DIAGNOSTYKA TWARDEGO DYSKU Po uruchomieniu Linux-EduCD lub Knoppiksa z płyty, możemy sprawdzić stan twardego dysku lub dowolnie innego napędu za pomocą takich narzędzi jak fsck, hdparm, badblocks. Przykładowo polecenie: # badblocks -s -v -w /dev/hda ... wyszukuje uszkodzone bloki na podanym napędzie (w przykładzie na /dev/hda) . Parametr 's' oznacza że program będzie pokazywał postęp wyszukiwania, wypisując numery bloków, natomiast parametr 'w', wymusi równoczesny test zapisywania. Jeśli chcemy wykonać test szybkości dysku (najlepiej chyba poprzez pomiar czasu odczytu) wystarczy wykonać polecenie: # hdparm -t /dev/hda Gdybyśmy chcieli dodać do tego pomiar czasu odczytu z cache'u, należy zastosować także parametr '-T': # hdparm -t -T /dev/hda Należy pamiętać, że aby uzyskać miarodajne wyniki, taka operacja powinna być powtarzana kilka razy pod rząd na nieobciążonym systemie. Szczegółowe dane na temat ustawień twardego dysku uzyskamy za pomocą: # hdparm -I /dev/hda Jeśli stosujemy system plików ext2, możemy również posłużyć się programem 'debugfs'. Służy on do wyszukiwania błędów na dysku i pozwala na wykonywanie niestandardowych operacji. Np.program wywołany z opcją '-b' stosuje podany 'ręcznie' rozmiar bloku dla systemu plików, zamiast wykrywać go automatycznie. Debugfs pozwala także na odzyskiwanie usuniętych danych. ODZYSKIWANIE SKASOWANYCH DANYCH (system plików ext2) Przykładowo, gdybyśmy chcieli zrobić wykaz skasowanych ostatnio z partycji ext2 (np. /dev/hda2) plików, wpisujemy: # echo lsdel | /sbin/debugfs /dev/hda2 > wykaz W uzyskanym w powyższy sposób raporcie 'wykaz', znajdzie się spis usuniętych plików. Pierwsza wartość w każdej linii 'wykazu' reprezentującej jeden plik, to tzw. i-węzeł, czyli zapis numeru bloków, jaki był przeznaczony na dany plik. Kolejne wartości to UID właściciela pliku, uprawnienia, data skasowania. Taka linia może więc wyglądać następująco: 158879 500 100600 26453 7/ 7 Wed Nov 17 20:30:11 2004 Powiedzmy że chcielibyśmy odzyskać plik o i-węźle 158879. Uruchamiamy program debugfs: # debugfs /dev/hda2 Oraz w linii poleceń tego programu wywołujemy dump-a z parametrami: dump <158879> /mnt/hda2/plik_odzyskany W tym momencie nasz usunięty wcześniej plik zapisaliśmy pod nazwą 'plik_odzyskany' w katalogu /mnt/hda2, do którego zamontowana jest nasza partycja. KOPIE ZAPASOWE W środowisku chroot możemy wykonywać również kopie zapasowe danych. Co więcej -- o ile nie mamy fizycznych problemów np. z kartą sieciową możemy także skonfigurować połączenie z siecią i np. za pomocą programu 'scp' przesyłać te dane na inny komputer. Polecenie 'netcardconfig' wywołuje nam konfigurator sieci. Kiedy mamy już połączenie z inną maszyną (chociażby w sieci lokalnej), wykonujemy np. # tar zcvf /home/* | ssh 192.168.0.5 "cat > /root/kopia.tgz" Polecenie utworzy archiwum katalogów domowych i prześle do katalogu /root/ na komputer o numerze 192.168.0.5. Możemy wykonać także dokładną kopię całego dysku lub partycji: cat /dev/dysk | gzip -c > kopia.dysk Oczywiście żeby odzyskać taką kopię, musimy ją rozpakować na dysk (lub partycję) o identycznym rozmiarze: gunzip -c kopia.dysk >/dev/dysk Do wykonania kopii zapasowej możemy posłużyć się również programem cpio. Przykładowo po uruchomieniu płyty podmontowujemy sobie partycję, której kopię chcemy wykonać do katalogu /mnt/hda1, podmontowujemy także partycje na której ma się znaleźć archiwum (np. /mnt/hda2) i wykonujemy: # cd /mnt/hda1/ # find . -mount -print | cpio -o > /mnt/hda2/kopia.cpio Żeby odtworzyć powyższą kopię, należy wykonać: # cpio -i < /mnt/hda2/kopia.cpio Źródło: Linux EduCD - Rajmund Radziewicz |


