Przywrócenie bootloadera GRUB 2
Ostatnia aktualizacja: 18 września 2023, 17:32
Program rozruchowy GRUB (ang. GRand Unified Bootloader) służy do uruchamiania różnych systemów operacyjnych, np. Linux, FreeBSD, Windows, DOS i potrafi odczytać wiele rodzajów systemów plików, np. ext2, ext3, ext4, MINIX, FAT, NTFS, FFS, ReiserFS, XFS i JFS. GRUB może uruchomić system z dysku twardego, pamięci Flash, dysku zewnętrznego USB, płyty CD/DVD i innych urządzeń.
Potrzeba przywrócenia GRUB zachodzi najczęściej po reinstalacji systemu Windows, który zainstalowany jest na osobnej partycji tego samego dysku co Linux.
Jeśli instalacja bootloadera GRUB pozwala na uruchomienie każdego systemu to ponowna instalacja systemu Windows powoduje zainstalowanie bootloadera windowsowego, który nie uruchamia żadnego innego systemu niż Windows.
W takim przypadku aby nie stracić danych i ustawień zapisanych w systemie Linux trzeba ponownie zainstalować bootloadera GRUB.
Cały system na jednej partycji
1. Uruchom komputer z dowolnej dystrybucji Linuksa działającej w trybie Live, np. Ubuntu, Aptosid, Knoppix, Mint (ja użyję aptosid).
2. Po załadowaniu się systemu Live otwórz terminal i sprawdź gdzie masz zamontowaną partycję systemową wydając polecenie jako administrator :
su lub sudo
fdisk -l
Disk /dev/sda: 23.5 GB, 23546822656 bytes
255 heads, 63 sectors/track, 2862 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008f447
Device Boot Start End Blocks Id System
/dev/sda1 1 2614 20995072 83 Linux
/dev/sda3 2615 2863 1997825 5 Extended
/dev/sda5 2615 2863 1997824 82 Linux swap/Solaris
– /dev/sda1 to partycja root „/” na której zainstalowany jest system
– /dev/sda3 to partycja rozszerzona
– /dev/sda5 to partycja wymiany
3. Teraz zamontuj partycję systemową (tutaj: /dev/sda1) w systemie Live :
mount /dev/sda1 /mnt
4. Zamontuj katalogi „dev” i „proc” :
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
5. Poleceniem chroot (ang. change root) ustaw partycję „/mnt” jako katalog główny :
chroot /mnt
6. Teraz możesz zainstalować GRUB-a :
grub-install /dev/sda
Installation finished. No error reported.
7. Odśwież również listę zainstalowanych systemów :
update-grub
Generating grub.cfg ...
Found background image: moreblue-orbit-grub.png
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
done
8. Możesz teraz zrestartować system uruchamiając go z dysku twardego :
reboot
System na kilku partycjach
1. Jeśli masz zainstalowany system Linux na kilku partycjach to w pierwszej kolejności sprawdź układ partycji poleceniem :
su lub sudo
fdisk -l
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x106dad92
Device Boot Start End Blocks Id System
/dev/sda1 1 7326 58846063 7 HPFS/NTFS
/dev/sda2 7327 30401 185349907 5 Extended
/dev/sda5 7327 7339 104391 83 Linux
/dev/sda6 7340 8614 10241406 83 Linux
/dev/sda7 8615 8678 514048+ 82 Linux swap/Solaris
/dev/sda8 8679 30401 174489966 83 Linux
– /dev/sda1 to partycja na której zainstalowany jest system Windows
– /dev/sda2 to partycja rozszerzona
– /dev/sda5 to partycja „/boot”
– /dev/sda6 to partycja root „/” na której zainstalowany jest system Linux
– /dev/sda7 to partycja wymiany „swap”
– /dev/sda8 to partycja domowa „/home”
2. Zamontuj partycję systemową (tutaj: /dev/sda6) w systemie Live :
mount /dev/sda6 /mnt
3. Zamontuj partycję „/boot” (tutaj: /dev/sda5) :
mount /dev/sda5 /mnt/boot
4. Zamontuj katalogi „dev” i „proc” :
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
5. Poleceniem chroot (ang. change root) ustaw partycję „/mnt” jako katalog główny :
chroot /mnt
6. Teraz możesz zainstalować GRUB-a :
grub-install /dev/sda
Installation finished. No error reported.
7. Odśwież również listę zainstalowanych systemów :
update-grub
Generating grub.cfg ...
Found background image: moreblue-orbit-grub.png
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
Found Windows XP (loader) on /dev/sda1
done
8. Możesz teraz zrestartować system uruchamiając go z dysku twardego :
reboot
Dodatkowo aby ręcznie zmienić ustawienia programu GRUB 2 wyedytuj plik :
/etc/default/grub
W Sparkylinux jest polecenie-funkcja
Boot repair i po problemie.
ostatnio odzyskiwałem i dało się to zrobić dwoma poleceniami. z dystrybucji live (osobiście użyłem pointa, ale to chyba nie ma znaczenia) podmontowałem partycję linuksową sudo mount /dev/sdXX /mnt
a potem odpaliłem sudo grub-install /dev/sda –root-directory=/mnt
żeby sprawdzić, gdzie jest system, pomocne są albo fdisk, albo blkid. koniec.
w tym przypadku system był na jednej partycji. nie próbowałem jeszcze innych przypadków.
@McCzayaPL
Dzieki za link, pobrałem, wypaliłem, super narzędzie!
Ale… Czy takie proste? Mnogość opcji, możliwości, parametrów…
Może jednak „Lilo” ? :-))
Jak już ratus napisał
„Wszystko OK, ale: to jest procedura dla „advanced users”
nie sztuka wszystko wyklikać jak się wie o co kaman. Problem jest kiedy jest się początkującym linuxiarzeam.
Więc i ja zaproponuje jeszcze łatwiejsze rozwiązanie dla typowych nobków(ludzi bez kompletnego doświadzenia) jakim i ja byłem parę miesięcy temy kiedy rozpoczynałem pracę z linuxem.
A więc:
1) Musicie pobrać obraz płyty „”boot-repair-disk.iso””
sourceforge.net/projects/boot-repair-cd/
2) wypalacie obraz na płytę
3) odpalacie system z płyty
System na płytce jest w 100% zautomatyzowany. Za pomocą kilku kliknięć odzyskacie boot loadera i będziecie dalej mogli cieszyć się waszymi zainstalowanymi systemami bez względu czy są na 1 dysku 2 dyskach czy 10 partycjach.
Wszystko OK, ale: to jest procedura dla „advanced users” a tacy pewnie sami sobie by poradzili. Dla początkujących, którzy znaleźli się w kłopocie radzę:
1. Uruchamiamy liveCD PuppyLinux (w mojejopinii najlepsza płyta ratunkowa oraz całkiem przydatny system użytkowy, szczególnie dla netbook’ów)
2. Menu –> System –> GrubLegacy (albo Grub4Dos)
3. Klikamy 4 razy, podając podstawowe dane
4. Grub jest zainstalowany!
Niestety! Nie ma róży bez kolców! Okazuje sie bowiem, że często jest potrzebna edycja pliku /boot/grub/menu.lst na partycji podanej jako siedziba GRUB’a, bowiem zwykle brakuje tam linijki opisującej ramdysk, często niepotrzebnej dla Slackware i pochodnych, ale niezbędnej w nowszych dystrybucjach:
initrd /boot/initrd.img lub podobnie, ale to łatwo sprawdzić podglądając z poziomu Puppy’ego nazwy w /boot na odpowiednich partycjach.
Wpis dla Windows jest z reguły prawidłowy, dla BSD bywa różnie.
Po skorygowaniu menu.lst restartujemy kompa i wybieramy system do pacy.