moze pomoze
GRUB (GRand Unified Bootloader) jest bootloaderem instalowanym standardowo w Ubuntu, potrafiącym obsłużyć kilka systemów jednocześnie (Multiboot).
Czym zajmuje się GRUB? Odpowiedź jest prosta – ładuje system operacyjny do pamięci przekazuje mu kontrolę nad PeCetem. Został zaprojektowany przez Erich'a Stefan'a Boleyn'a. Obecna wersja GRUB'a to 2, a oficjalna strona projektu to http://www.gnu.org/software/grub/.
GRUB jest stosunkowo prosty w konfiguracji i nie powinien przysporzyć problemów nawet początkującym użytkownikom.
Plik konfiguracyjny GRUB'a znajduję się domyślnie w katalogu /boot/grub, a jego nazwa to
menu.lst (nazwa ta występuje w Ubuntu, jednak w innych dystrybucjach może to być np. grub.conf).
Teraz spróbujmy go otworzyć:
Najpierw wykonajmy kopie zapasową pliku konfiguracyjnego:
- Kod: Zaznacz wszystko
$ cp /boot/grub/menu.lst /boot/grub/menu.lst_backup
Teraz otwórzmy plik:
- Kod: Zaznacz wszystko
$ sudo gedit /boot/grub/menu.lst
Naszym oczą powinno się pojawić okno Gedit'a z mniej więcej taką zawartością:
- Kod: Zaznacz wszystko
(...)
default 0
(...)
timeout 10
(...)
hiddenmenu
(...)
title Ubuntu, kernel 2.6.10-5-386
root (hd0,0)
kernel /boot/vmlinuz-2.6.10-5-386 root=/dev/hdb1 ro quiet splash
initrd /boot/initrd.img-2.6.10-5-386
savedefault
boot
title Ubuntu, kernel 2.6.10-5-386 (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.10-5-386 root=/dev/hdb1 ro single
initrd /boot/initrd.img-2.6.10-5-386
savedefault
boot
title Ubuntu, kernel memtest86+
root (hd0,0)
kernel /boot/memtest86+.bin
savedefault
boot
Zacznijmy od początku:
default - w menu GRUB'a oznacza system, który zaznaczony jest jako standardowy do loadu. Cyfra oznacza numer systemu w menu. Liczenie zaczyna się od 0, a nie od 1.
timeout - czas, jaki mamy na dokonanie wyboru który system chcemy uruchomić. Po tym czasie loadowany jest standardowy (default) system. Odliczanie mozna zastopować przesuwając zaznaczenie wyboru, lub kiedy jest aktywna opcja hiddenmenu poprzez naciśnięcie ESC.
hiddenmenu – jeżeli ta opcja jest widoczna to znaczy, że menu GRUB'a wyświetli się dopiero po naciśnięciu klawisza ESC.
W następnych linijkach znajdują się pozycje, które możemy uruchomić poprzez nasz bootloader. Przeanalizujmy jedną z nich.
title Ubuntu, kernel 2.6.10-5-386 – Nazwa systemu jaka jest widoczna w menu wyboru ( w tym przypadku Ubuntu, kernel 2.6.20-5-386)
root (hd0,0) – wksazuje na jakiej partycji znajduje się katalog /boot/
kernel /boot/vmlinuz-2.6.10-5-386 (...) – wskazuje jądro do załadowania.
initrd /boot/initrd.img-2.6.10-5-386 – ładuje RAM-dysk. nie musi być wykożystany (zależy od konfiguracji jądra)
Dobrze. Wszystko pięknie i ładnie, ale co jeżeli postanowimy dodać do GRUB'a nowy system?
Opiszę tutaj dodanie Windowsa oraz FreeBSD.
Windows – na oddzielnym dysku. Dysk z Ubuntu musi być ustawiony na primary i boot. (tnx xxxadam_resurection)
Pamiętajmy, że GRUB inaczej nazywa partycje, dla przykładu:
(hd0,0) = /dev/hda1
(hd1,0) = /dev/hdb1
(hd2,2) = /dev/hdc3
- Kod: Zaznacz wszystko
title Windows XP Pro SP2
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1
Opis:
title Windows XP Pro SP2 – drugi system
map (hd0) (hd1) – podmienienie kolejności dysków kożystając z LBA
map (hd1) (hd0) – mały trick

Windows myśli, że jest na Primary
rootnoverify (hd1,0) – podobnie jak root, jednak nie montuje
chainloader +1 – przekazuje kontrolę do następnego bootloadera, konieczne do inicjacji Windowsa
<----linijka wolna ( to jest konieczne!!! ) ---->
Autor postu otrzymał pochwałę