Akcesoria

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

 

Click to rate this post!
[Total: 1 Average: 5]

5 komentarzy do “Przywrócenie bootloadera GRUB 2

  • 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.

    Odpowiedz
  • @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” ? :-))

    Odpowiedz
  • 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.

    Odpowiedz
  • 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.

    Odpowiedz

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.