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 /mediaKod: Zaznacz cały
mount -o bind /proc /media/procKod: Zaznacz cały
mount -o bind /sys /media/sysKod: Zaznacz cały
mount -o bind /dev /media/devKod: Zaznacz cały
mount -o bind /dev/pts /media/dev/ptsKod: Zaznacz cały
mount /dev/sdaY /media/bootKod: Zaznacz cały
chroot /media /bin/bash1. 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
grubProgram 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/stage1Kod: Zaznacz cały
root (hd0,4)Kod: Zaznacz cały
setup (hd0)Kod: Zaznacz cały
quitPowyż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/sdaKod: Zaznacz cały
update-grubKod: Zaznacz cały
umount /media/dev/
umount /media/sys
umount /media/proc
umount /media2. 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/sdaKod: Zaznacz cały
Installation finished. No error reported.Kod: Zaznacz cały
grub-install –-recheck /dev/sdaKod: Zaznacz cały
update-grubKod: 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
doneKod: Zaznacz cały
dpkg-reconfigure grub-pcIII 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/stage1Kod: 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
bootJeś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.cfgKod: Zaznacz cały
search.file /etc/fstabKod: Zaznacz cały
set root=(hd0,msdos9)Kod: Zaznacz cały
linux /boot/vmlinuz-3.0.0-1-486 root=/dev/sda9 roKod: Zaznacz cały
initrd /boot/initrd.img-3.0.0-1-486Kod: Zaznacz cały
boot1. 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/ .