Poniżej przedstawię poradnik dotyczący naprawy uszkodzonej instalacji Gruba w wersji 0.97 oraz Gruba 2 (1.99). Do naprawy bootloadera możemy użyć dowolnej dystrybucji linuksa typu live cd, np. SystemRescueCD, dostępnej tutaj:
http://www.sysresccd.org/Main_Page .
Operacje wykonujemy w domyślnym dla tej dystrybucji trybie tekstowym (w razie potrzeby środowisko graficzne może zostać uruchomione komendą startx).
I Środowisko "chroot".
Pierwszym krokiem po uruchomieniu systemu live cd jest zalogowanie się do uszkodzonego systemu zainstalowanego na dysku twardym komputera przy wykorzystaniu jądra systemu uruchomionego w trybie live cd (środowisko chroot). W tym celu wykonujemy następujące operacje:
Kod: Zaznacz cały
mount /dev/sdaX /media
Kod: Zaznacz cały
mount -o bind /proc /media/proc
Kod: Zaznacz cały
mount -o bind /sys /media/sys
Kod: Zaznacz cały
mount -o bind /dev /media/dev
Kod: Zaznacz cały
mount -o bind /dev/pts /media/dev/pts
Kod: Zaznacz cały
mount /dev/sdaY /media/boot
Kod: Zaznacz cały
chroot /media /bin/bash
1. Naprawa Grub 0.97.
Poniżej przedstawię sposób naprawy Grub za pomocą wbudowanej powłoki programu. Rodzaje błędów wraz z ich opisem, z jakimi możemy się spotkać wskutek nieudanego startu systemu dla Grub 0.97 można znaleźć np. tutaj:
http://www.gnu.org/software/grub/manual ... ge2-errors .
Uruchamiamy program grub poleceniem:
Kod: Zaznacz cały
grub
Program powinien zgłosić się ze swoim znakiem zachęty:
Kod: Zaznacz cały
grub>
Następnie ustalamy położenie pliku stage1 wydając komendę:
Kod: Zaznacz cały
find /boot/grub/stage1
Kod: Zaznacz cały
root (hd0,4)
Kod: Zaznacz cały
setup (hd0)
Kod: Zaznacz cały
quit
Powyższa metoda będzie skuteczna, jeśli pliki w katalogu /boot/grub istnieją i nie są uszkodzone, a uszkodzeniu uległ tylko MBR (np. po nadpisaniu MBR przez program rozruchowy innego systemu operacyjnego). W przypadku niepowodzenia tej metody wykonujemy pełną instalację Grub poleceniem:
Kod: Zaznacz cały
grub-install /dev/sda
Kod: Zaznacz cały
update-grub
Kod: Zaznacz cały
umount /media/dev/
umount /media/sys
umount /media/proc
umount /media
2. Naprawa Grub 2 (1.99-*).
Po zalogowaniu się do niestartującego systemu na dysku twardym przy wykorzystaniu środowiska chroot (punkt I) wykonujemy następującą komendę:
Kod: Zaznacz cały
grub-install /dev/sda
Kod: Zaznacz cały
Installation finished. No error reported.
Kod: Zaznacz cały
grub-install –-recheck /dev/sda
Kod: Zaznacz cały
update-grub
Kod: Zaznacz cały
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-3.0.0-1-486
Found initrd image: /boot/initrd.img-3.0.0-1-486
done
Kod: Zaznacz cały
dpkg-reconfigure grub-pc
III Ręczne uruchomienie zadanego systemu operacyjnego przy pomocy wbudowanej powłoki programu Grub.
W celu uruchomienia powłoki programu Grub, w momencie gdy wyświetlany jest ekran startowy programu należy wcisnąć klawisz Shift lub Esc (zatrzymanie odliczania), a następnie klawisz c. Program powinien zgłosić się z następującym znakiem zachęty:
Kod: Zaznacz cały
grub >
1. Grub 0.97.
Ustalamy położenie pliku stage1 przy użyciu komendy:
Kod: Zaznacz cały
find /boot/grub/stage1
Kod: Zaznacz cały
root (hd0,8)
Kod: Zaznacz cały
kernel /boot/vmlinuz-3.0.0-1-486 root=/dev/sda9 ro [Enter]
Kod: Zaznacz cały
kernel /boot/vmlinuz[TAB]
Kod: Zaznacz cały
kernel /boot/[TAB]
Kolejnym krokiem jest wskazanie programowi, który obraz initrd.img ma zostać użyty:
Kod: Zaznacz cały
initrd /boot/initrd.img-3.0.0-1-486[Enter]
Kod: Zaznacz cały
initrd /boot/initrd[TAB]
Kod: Zaznacz cały
initrd /boot/[TAB]
Na koniec uruchamiamy wybrany system poleceniem:
Kod: Zaznacz cały
boot
Jeśli nie znamy numeru partycji „root” w prosty sposób określimy go lokalizując np. plik /boot/grub/grub.cfg lub inny znajdujący się w głównym systemie plików np.plik /etc/fstab:
Kod: Zaznacz cały
search.file /boot/grub/grub.cfg
Kod: Zaznacz cały
search.file /etc/fstab
Kod: Zaznacz cały
set root=(hd0,msdos9)
Kod: Zaznacz cały
linux /boot/vmlinuz-3.0.0-1-486 root=/dev/sda9 ro
Kod: Zaznacz cały
initrd /boot/initrd.img-3.0.0-1-486
Kod: Zaznacz cały
boot
1. Podręcznik porogramu Grub 0.97:
http://www.gnu.org/software/grub/manual/legacy/
2. Podręcznik programu Grub 2:
http://www.gnu.org/software/grub/manual/html_node/ .