GRUB (z ang. GRand Unified Bootloader – dop. tłum.) powstał w roku 1995, kiedy to Erich Boleyn rozpoczął próby rozruchu GNU Hurda z mikrojądrem Mach4 Uniwersytetu Utah (obecnie znanym jako GNU Mach). Erich i Brian Ford zaprojektowali wówczas Multiboot Specification, ponieważ zdecydowali się nie dodawać wielu wzajemnie niekompatybilnych metod inicjowania peceta.
Tekst jest tłumaczeniem doskonałego poradnika GNU GRUB (0.97) Simplified for Newbies.
Erich rozpoczął od prób modyfikacji boot loadera pochodzącego z Free BSD, aby dostosować go do specyfikacji Multiboot. Jednak wkrótce uświadomił sobie, że o wiele łatwiej będzie napisać od zera własny program uruchomieniowy niż nadal pracować nad boot loaderem Free BSD. W ten oto sposób narodził się GRUB.
Wprawdzie Erich zaimplementował wiele możliwości w GRUB-ie, lecz inne priorytety nie pozwalały mu nadążać za wymaganiami szybko rozwijającej się bazy użytkowników. W roku 1999 Gordon Matzigkeit i Yoshinori K. Okuji zaadoptowali GRUB-a jako oficjalny pakiet GNU i rozpoczęli pracę nad jego rozwojem udostępniając źródła via anonimowy CVS.
Czym jest GNU GRUB ?
GNU GRUB (w skrócie „GRUB”) jest programem uruchomieniowym komputera PC pochodzącym z Projektu GNU. GNU GRUB jest potężnym programem, który może zainicjować szeroką gamę wolnych systemów, a z wykorzystaniem chain-loading’u również komercyjnych systemów operacyjnych. Może być stosowany do wyboru spośród dostępnych obrazów jąder na poszczególnych partycjach systemów operacyjnych, a także do ustawienia parametrów czasu uruchomienia tych jąder.
GNU GRUB jest rozwijany z poprzedniego pakietu zwanego GRand Unified Bootloader. Systemy operacyjne GNU stosują GNU GRUB jako program uruchomieniowy podobnie jak większość dystrybucji Linuksa ogólnego przeznaczenia.
W tym tutorialu każdorazowe użycie nazwy GRUB oznacza po prostu GNU GRUB.
MBR, Boot-loader i Boot-sector
Pierwszy sektor (512 bajtów) komputerowego dysku twardego zwany jest Głównym Sektorem Rozruchowym, MBR-em lub Master Boot Recordem. BIOS komputerowy generalnie jest zaprogramowany do odczytu podczas rozruchu kodu z MBR-u, który wskazuje czego ma szukać dalej. MBR jest podzielony na trzy sekcje jak poniżej

Pierwszy sektor partycji znany jest pod nazwą sektora rozruchowego (bootsector). Może też zawierać – lub nie – kod jakiegoś programu rozruchowego (bootloader’a lub jak kto woli – bootstrap’u).
GRUB stage1, stage1.5 i stage2
stage1
Obszar sektora rozruchowego o wielkości 446 bajtów jest naprawdę zbyt mały, aby zmieścił się w nim przyzwoity program rozruchowy. To jest powodem, dla którego GRUB instaluje tam tylko małą część kodu zwaną ‘IPL’ lub Initial Program Loader. ‘First stage’ (Pierwsza faza) programu rozruchowego (bootloadera) lub faza stage1 jest nazwą tego samego kodu. IPL lub pierwsza faza bootloadera wskazuje BIOS-owi gdzie ma szukać na twardym dysku pozostałej części bootloadera.
stage1.5 (opcjonalna)
Pliki e2fs_stage1_5, fat_stage1_5, ffs_stage1_5, jfs_stage1_5, minix_stage1_5, reiserfs_stage1_5, vstafs_stage1_5, xfs_stage1_5 mają w nazwie stage1.5, ponieważ służą one jako pomost pomiędzy fazami stage1 i stage2. Faza stage1.5 jest ładowana poprzez stage1 a stage1.5 ładuje stage2. Różnica pomiędzy fazami stage1 i stage1.5 polega na tym, że ta pierwsza (stage1) nie rozpoznaje jeszcze systemu plików, podczas gdy druga (stage1.5) już tak (np. e2fs_stage1_5 rozpoznaje ext2fs). A zatem może bezpiecznie przenieść obraz stage2 do innej lokalizacji nawet po instalacji GRUB-a.
stage2
stage2 zawiera większość logiki GRUB-a. Ładuje ona plik menu.lst i wykonuje dyrektywy. Jeśli plik menu.lst nie istnieje, wtedy GRUB startuje z interfejsem interpretera poleceń.
Proces inicjowania GRUB-a
Po włączeniu komputera BIOS odczytuje (po zakończeniu procedury POST) główny sektor rozruchowy (master boot record, MBR) z dysku twardego.
MBR zawiera fazę stage1 GRUB-a. Funkcją stage1 jest odnalezienie fazy stage1.5 lub stage2 i przekazanie kontroli do niej. Faza stage1 odnajduje stage1.5 lub stage2 przy pomocy adresów fizycznych segmentów, które były zapisane w stage1 podczas instalacji GRUB-a.
Faza stage1.5 nie jest niezbędna. Jeśli jest używana, to stage1.5 przejmuje sterowanie z fazy stage1, a następnie przekazuje kontrolę do stage2. Faza stage1.5 rozpoznaje system plików w związku z czym jest w stanie umieścić stage2 jako plik wśród systemu plików ściślej niż fizyczne adresy segmentów których używa stage1. Jeśli fizyczna lokalizacja stage2 ulegnie zmianie, stage1.5 wciąż może ją odnaleźć poprzez system plików, czego faza stage1 nie potrafi. GRUB ma kilka dostępnych obrazów fazy stage 1.5. Każdy z nich rozpoznaje jeden system plików i są one odpowiednio do danego systemu nazywane. Decyzję o instalacji (lub nie) stage 1.5 podejmuje kod instalacyjny GRUB-a – jeśli istnieje wystarczająca ilość wolnego miejsca. Stage1.5 jest zbyt duża, aby zmieścić się w pojedynczym 512-bajtowym sektorze, więc nie zawsze jest miejsce na jej zainstalowanie. Stage1.5 może być też zainstalowana w obszarze zaraz po MBR (w pierwszych 30 kB twardego dysku następujących tuż po MBR) lub na partycji ReiserFS.
stage2 jest jądrem GRUB-a i zawiera jego powłokę. Jest tym komponentem, który wyświetla menu startowe z pliku menu.lst (zwykle zlokalizowanym w /boot/grub/menu.lst). W momencie gdy tylko został wybrany w menu GRUB-a system operacyjny także odpowiednie jądro ładowane jest do pamięci i przekazuje sterowanie do jądra lub wywołuje inny loader ładujący kolejne wywołania, jeśli system operacyjny tak nakazał. W przypadku braku pliku menu.lst stage2 przechodzi do linii poleceń powłoki GRUB-a.
Kopia zapasowa i przywracanie Boot-loadera lub IPL-a (Stage 1)
Poniższe polece tworzy kopię zapasową boot-loadera (446 bajtów) w moim katalogu home (będąc zalogowanym jako root – dop. tłum.)
dd if=/dev/hda of=/home/joy/17Oct2007_Backup_MBR bs=446 count=1
1+0 records in
1+0 records out
446 bytes transferred in 0.023787 seconds (18750 bytes/sec)
Zachowaj ten plik na CD, dyskietce lub pendrivie. Jeśli z jakiejś przyczyny MBR ulegnie modyfikacji przez jakąś aplikację, zostanie zmodyfikowany również boot-loader. Naprawa boot-loadera przywróci system, jeśli partycje pozostały niezmienione. Uruchom Linuksa z płyty CD Live i zamontuj nośnik na którym przechowujesz kopię zapasową. Następnie odtwórz boot-loader poleceniem:
dd if=/
<path>/17Oct2007_Backup_MBR of=/dev/hda bs=446 count=1
Uwaga: Zamień <path> na twoją ścieżkę do pliku kopii zapasowej. Nigdy nie wykonuj kopii zapasowej całego MBR-u!
Oczywiście, wykonanie kopii zapasowej całego MBR-u, 512 bajtów też jest możliwe. W ten sposób zostanie zachowana również tablica partycji. Jeśli jednak kiedyś później zrepartycjonujesz dysk a następnie przywrócisz poprzednią kopię zapasową MBR-u spowodujesz sytuację, w której bieżąca tablica partycji jak i system plików nie będą pasować, a odczyt dysku stanie się niemożliwy. W tej sytuacji musisz na nowo zrepartycjonować i sformatować dysk. A więc nigdy nie wykonuj kopii zapasowej całego MBR-u lecz tylko boot-loadera.

Sposób numeracji dysków
GRUB stosuje inny system numeracji niż linuksowe nody urządzeń
Pierwszy napęd dyskietek = (fd0)
Pierwszy dysk twardy = (hd0)
Drugi dysk twardy = (hd1)
… i tak dalej
Pierwsza partycja = 0
druga partycja = 1
…. i tak dalej
1-sza partycja na pierwszym dysku twardym = (hd0,0)
10-ta partycja na pierwszym dysku twardym = (hd0,9)
3-cia partycja na drugim dysku twardym = (hd1,2)
W związku z tym możemy powiedzieć, że:
1-sza partycja na pierwszym dysku twardym = (hd0,0) w GRUB-ie = /dev/hda1 w nodach urządzeń Linuksa
2-ga partycja na drugim dysku twardym = (hd1,1) w GRUB-ie = /dev/hdb2 w nodach urządzeń Linuksa
itd………..
Badanie dysku w interpreterze poleceń GRUB-a
Interfejs powłoki GRUB-a wspiera uzupełnianie poleceń klawiszem Tab. Możemy skorzystać z tej cechy do zbadania dysku twardego dołączonego do komputera.
po wpisaniu grub> null (
naciśnięcie klawisza Tab ujawni napędy komputera
grub> null (
Possible disks are: fd0 hd0 hd1 cd
Możliwym jest także rozpoznanie partycji na np. hd0. Wystarczy wpisać (hd0, (przecinek) i nacisnąć Tab. Rezultat poniżej:
grub> null (hd0,
Possible partitions are:
Partition num: 0, Filesystem type unknown, partition type 0x7
Partition num: 1, Filesystem type unknown, partition type 0x82
Partition num: 2, Filesystem type is reiserfs, partition type 0x83
Partition num: 3, Filesystem type is xfs, partition type 0x83
Odczyt geometrii dysku w interpreterze poleceń GRUB-a:
grub> geometry (hd0)
drive 0x80: C/H/S = 16383/255/63, The number of sectors = 78242976,
/dev/hda
Partition num: 0, Filesystem type unknown, partition type 0x7
Partition num: 1, Filesystem type unknown, partition type 0x82
Partition num: 2, Filesystem type is reiserfs, partition type 0x83
Partition num: 3, Filesystem type is xfs, partition type 0x83
Ważne pliki
| Nazwa pliku | Możliwa lokalizacja | Przeznaczenie |
| device.map | /boot/grub/device.map | opisuje relację pomiędzy Linuksowymi a GRUB-owymi określeniami napędów. Tworzony poprzez ‘grub-install’, jeśli aktualnie nie istnieje w /boot/grub |
| menu.lst | /boot/grub/menu.lst | wyświetla menu startowe GRUB-a |
| grub | /sbin/grub | Interpreter poleceń GRUB-a uruchamiany wewnątrz Linuksa. Stąd GRUB może być instalowany bądź reinstalowany |
| grub-install | /sbin/grub-install | Skrypt wywołujący /sbin/grub i instalujący GRUB-a w wyszczególnionej lokalizacji.Oprócz tego generuje plik device.map i tworzy w katalogu /boot/grub pliki obrazów GRUB-a przy pierwszej instalacji |
| update-grub | /sbin/update-grubSpecyficzny dla Debiana i systemów opartych na Debianie | Skrypt który automatycznie generuje i uaktualnia menu.lst |
| stage1 | /boot/grub/stage1 | plik obrazu boot sektora zawierający początkowy kod inicjujący. Jest instalowany w MBR, boot sektorze partycji lub boot sektorze dyskietki |
| stage2 | /boot/grub/stage2 | plik obrazu jądra dla GRUB-a. Odpowiedzialny za powłokę i interfejs menu. |
| *_stage1_5 | /boot/grub/*_stage1_5 | określa pośrednie pliki obrazu stage1.5, każdy z nich tylko do odpowiedniego systemu plików. Umieszcza stage2 via rozpoznany system plików. Jest osadzony poza jakimkolwiek systemem plików. |
Odszukiwanie partycji z jądrem Linuksa
grub> find /vmlinuz
(hd0,2)
Naciśnij Enter. Zobaczysz więcej partycji, jeśli masz więcej niż jednego linuksa w twej skrzynce. Jeśli jądro ma inną nazwę niż vmlinuz, partycja nie będzie widoczna.
Odszukiwanie partycji root
grub> find /sbin/init
(hd0,2)
Naciśnij Enter. Zobaczysz więcej partycji, jeśli masz więcej niż jednego linuksa w twej skrzynce.
Sprawdzanie zawartości partycji
Z linii poleceń powłoki GRUB-a istnieje możliwość podglądu zawartości partycji. Powiedzmy, że chcemy oglądnąć partycję root (hd0,2) w moim komputerze. Wpisanie „null (hd0,2)/” i naciśnięcie klawisza Tab pozwoli nam obejrzeć potrzebne informacje
grub> null (hd0,2)/
Possible files are: bin dev etc lib mnt opt srv tmp sys var usr
boot home proc sbin root cdrom .reiserfs_priv initrd vmlinuz
Możemy nawet pójść dalej i sprawdzić zawartość np. katalogu /opt wpisując „null (hd0,2)/opt/” a następnie naciskając Tab
grub> null (hd0,2)/opt/
Possible files are: vim71 vim-7.1.tar.bz2 cdrtools-beta.tar.gz
modding hackl7 advanced_software schily kmobiletools-0.5_beta1
GRUB wspiera również polecenie „cat”. Możemy odczytać treść pliku menu.lst w sposób jak poniżej:
grub> cat (hd0,2)/boot/grub/menu.lst
Tworzenie startowego CD-ROM-u z GRUB-em
GRUB wspiera tryb no emulation specyfikacji El Torito. Odtąd możemy odczytać cały CD-ROM startując z GRUB-a.
http://orgs.man.ac.uk/documentation/grub/grub_fot.html#FOOT5
Aby wystartować z CD-ROM-u GRUB używa specjalnej fazy stage2 zwanej stage2_eltorito. Potrzebujemy właściwie tylko tego pliku, aby utworzyć CD-ROM startowy. Plik ‘menu.lst’ jest tu tylko opcjonalny. Nie potrzebujemy faz ‘stage1′ lub ‘stage2′, ponieważ El Torito działa zupełnie inaczej od standardowego procesu startowego.
- Utwórz nowy katalog pod obraz uruchomieniowy i nazwij go np. ‘CD_GRUB’
- Utwórz katalog dla GRUB-a
- Skopiuj tam plik ‘stage2_eltorito’ . W Debianie jest on położony w /lib/grub/i386-pc/
- Jeśli sobie życzysz utwórz plik ‘menu.lst’ w ‘CD_GRUB/boot/grub’ lub skopiuj już istniejący, jak poniżej:
- Teraz utwórz plik obrazu ISO9660 jak poniżej
- mkisofs właśnie przygotował dysk do uruchomienia z pliku boot/grub/stage2_eltorito. Wypal utworzony obraz .iso.
mkdir /CD_GRUB
mkdir -p /CD_GRUB/boot/grub
cp /lib/grub/i386-pc/stage2_eltorito /CD_GRUB/boot/grub
cp /boot/grub/menu.lst /CD_GRUB/boot/grub
Polecenie ‘savedefault’ dla każdego wystąpienia zapisów uruchamiających poszczególne systemy operacyjne nie zadziała z płyty CD. ‘savedefault’ zapisuje na dysku twardym do pliku w /boot/grub nazwę ‘default’ dla systemu, który był uruchomiony ostatnio. Nie możemy go użyć, gdy uruchamiamy GRUB-a z płyty CD, ponieważ nie możemy zapisać zmian na płycie z GRUB-em. Stąd musimy usunąć wszystkie wystąpienia polecenia savedefault.
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \
-boot-load-size 4 -boot-info-table -o cd_grub.iso /CD_GRUB
-boot-load-size 4 bity są wymagane dla zgodności z BIOSem na wielu starszych komputerach.
Tworzenie dyskietki startowej z GRUB-em
Musimy zapisać na dyskietce obie fazy: stage1 i stage2. W Debianie pliki GRUBa rezydują w
/lib/grub/i386-pc/
Metoda – 1
- cd /lib/grub/i386-pc/
- instalacja stage1
- instalacja stage2
if=stage1 of=/dev/fd0 bs=512 count=1
1+0 records in
1+0 records out
512 bytes transferred in 1.152603 seconds (444 bytes/sec)
dd if=stage2 of=/dev/fd0 bs=512 seek=1
211+1 records in
211+1 records out
108168 bytes transferred in 6.406743 seconds (16883 bytes/sec)
Ostrzeżenie: Wykonanie tej procedury usunie wszystkie dane na dyskietce.
Metoda – 2 (z użyciem polecenia grub-floppy)
grub-floppy jest programem do tworzenia ogólnych dyskietek startowych. Takie dyskietki po starcie dostarczają interfejs linii komend GRUBa. grub-floppy może tworzyć inne ogólne dyskietki ograniczone tylko architekturą.
grub-floppy /dev/fd0
Uwaga: grup-floppy ma status ‘deprecated’. Przy próbie uruchomienia prawdopodobnie napotkasz komunikat: ‘This program is broken, unsupported upstream, and has been deprecated in favour
of grub-mkrescue (grub-pc package).’ – dop.tłum.
Metoda – 3 (dyskietka startowa z /boot/grub)
Możemy też stworzyć dyskietkę startową GRUBa z systemem plików i plikiem menu.lst jak poniżej (z konta roota)
- mke2fs /dev/fd0 (utworzenie systemu plików ext2 na dyskietce)
- mount -t ext2 /dev/fd0 /mnt/floppy (zamontowanie dyskietki na /mnt/floppy)
- grub-install –root-directory=/mnt/floppy fd0 (instalacja GRUBa i utworzenia katalogu /boot/grub na dyskietce)
- cp /boot/grub/menu.lst /mnt/floppy/boot/grub/ (skopiowanie menu.lst)
- umount /mnt/floppy (dyskietka jest gotowa, zdemontowanie ją)
Metoda – 4 (z linii komend GRUBa, w trybie nieinteraktywnym, tworzy także /boot/grub)
Zaloguj się jako root
- mke2fs /dev/fd0
- mount -t ext2 /dev/fd0 /mnt/floppy
- mkdir /mnt/floppy/boot
- cp -R /boot/grub /mnt/floppy/boot
- /sbin/grub –batch –device-map=/dev/null < < eof
- umount /mnt/floppy
device (fd0) /dev/fd0
root (fd0)
setup (fd0)
quit
EOF
Krok 5 jest właściwie wykonywany w trybie wsadowym interfejsu linii komend GRUBa. Poniżej jest rezultat wyjściowy kroku 5
debian:# /sbin/grub --batch --device-map=/dev/null < < EOF
> device (fd0) /dev/fd0
> root (fd0)
> setup (fd0)
> quit
> EOF
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> device (fd0) /dev/fd0
grub> root (fd0)
Filesystem type is ext2fs, using whole disk
grub> setup (fd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (fd0)"...
failed (this is not fatal)
Running "embed /boot/grub/e2fs_stage1_5 (fd0)"...
failed (this is not fatal)
Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2
p /boot/grub/menu.lst"... succeeded
Done.
grub> quit
Możesz modyfikować/usunąć menu.lst z /mnt/floppy/boot/ lub zachować dla menu konkretnego komputera
Metoda – 5 (z linii komend GRUBa, w trybie interaktywnym, mając /boot/grub)
Zaloguj się jako root
- mke2fs /dev/fd0
- mount -t ext2 /dev/fd0 /mnt/floppy
- mkdir /mnt/floppy/boot
- cp -R /boot/grub /mnt/floppy/boot
- umount /mnt/floppy
- odpal interfejs linii komend GRUBa i wykonaj: root (fd0)
grub> root (fd0)
Filesystem type is ext2fs, using whole disk
7) Zainstaluj GRUBa poprzez setup (fd0)
grub> setup (fd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/fat_stage1_5" exists... yes
Running "embed /boot/grub/fat_stage1_5
(fd0)"... failed (this is not fatal)
Running "embed /boot/grub/fat_stage1_5
(fd0)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2 p
/boot/grub/menu.lst
"... succeeded
Done.
8 ) Wyjdź z GRUBa
Możesz modyfikować/usunąć menu.lst z /mnt/floppy/boot/ lub zachować dla menu konkretnego komputera.
Tworzenie startowego pendrive’u USB
Zaloguj się jako root
Zidentyfikuj nod urządzenia, który twój system przypisał do pendrive’u USB. Wykonaj tail -f /var/log/messages i włóż napęd do gniazda USB. Tak to wygląda u mnie:
debian:# tail -f /var/log/messages
SCSI device sda: 248321 512-byte hdwr sectors (127 MB)
sda: Write Protect is off
SCSI device sda: 248321 512-byte hdwr sectors (127 MB)
sda: Write Protect is off
sda: sda1
Attached scsi removable disk sda
A więc /dev/sda jest nodem urządzenia dla pendriv’u USB a /dev/sda1 wskazuje partycję na tym napędzie.
Teraz stwórzmy katalog i zamontujmy tam napęd USB.
mkdir /mnt/USB_drive
mount -t vfat /dev/sda1 /mnt/USB_drive
System plików na moim napędzie USB to FAT i z tej przyczyny użyłem opcji -t vfat. Zmień system plików na odpowiedni dla twego napędu.
Zidentyfikujmy oznaczenie napędu, które GRUB przypisał do napędu USB. Tu jest mój:
grub> null (
Possible disks are: fd0 hd0 hd1 cd
GRUB rozpoznał mój napęd USB jako hd1.
Metoda – 1 (z /boot/grub)
- Zainstaluj GRUBa na napedzie USB poprzez wykonanie polecenia:
- (Opcjonalnie) Skopiuj menu.lst aby otrzymać menu startowe komputera
- Upewnij się, czy w napędzie USB istnieje /boot/grub
- Zdemontuj napęd
grub-install –root-directory=/mnt/USB_drive hd1
debian:# grub-install --root-directory=/mnt/USB_drive hd1
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map
/mnt/USB_drive//boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/sda
cp /boot/grub/menu.lst /mnt/USB_drive/boot/grub/
grub> find /boot/grub/stage1
(hd0,2)
(hd1,0)
unmount /mnt/USB_drive
Metoda – 2 (używając interpretera poleceń powłoki GRUBa w trybie interaktywnym, mając /boot/grub)
- mkdir /mnt/USB_drive/boot
- cp /boot/grub /mnt/USB_drive/boot
- umount /mnt/USB_drive
- Odpal powłokę GRUBa i wykonaj root (hd1,0)
- Zainstaluj GRUBa poleceniem setup (hd1)
- Wyjdź z GRUBa
grub> root (hd1,0)
Filesystem type is fat, partition type 0x6
grub> setup (hd1)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/fat_stage1_5" exists... yes
Running "embed /boot/grub/fat_stage1_5 (hd1)"...
15 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd1) (hd1)1+15 p
(hd1,0)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.
Możesz modyfikować/usunąć menu.lst z /mnt/USB_drive/boot/ lub zachować dla menu konkretnego komputera.
Metoda – 3 (w interpeterze poleceń powłoki GRUBa)
- mkdir /mnt/USB_drive/boot
- cp /boot/grub /mnt/USB_drive/boot
- umount /mnt/USB_drive
- Poniżej mamy polecenia wsadowe dla napędu USB
/sbin/grub –batch –device-map=/dev/null < < EOF
device (hd1) /dev/sda
root (hd1,0)
setup (hd1)
quit
EOF
debian:# /sbin/grub --batch --device-map=/dev/null < < EOF
> device (hd1) /dev/sda
> root (hd1,0)
> setup (hd1)
> quit
> EOF
GNU GRUB version 0.95 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> device (hd1) /dev/sda
grub> root (hd1,0)
Filesystem type is fat, partition type 0x6
grub> setup (hd1)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/fat_stage1_5" exists... yes
Running "embed /boot/grub/fat_stage1_5 (hd1)"... 15 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd1) (hd1)1+15 p
(hd1,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> quit
Możesz modyfikować/usunąć menu.lst z /mnt/USB_drive/boot/ lub zachować dla menu konkretnego komputera.
stage1 i stage2 na różnych nośnikach
Dyskietka startowa/napęd USB komputera PC z stage1
Faza stage1 będzie umieszczone na dyskietce startowej lub napędzie USB. Będzie mogła wywołać fazę stage2 położoną na dysku twardym.
Metoda – 1 (posługując się poleceniem grub-install)
Możemy to zrobić poleceniem grub-install jak poniżej:
grub-install /dev/fd0 dla dyskietki
Metoda – 2 (używając powłoki GRUBa)
W interpreterze poleceń GRUBa musimy najpierw odszukać partycję dysku twardego na której położony jest /boot/grub by ustalić położenie urz. root a następnie wykonujemy:
root (hd0,2)
setup (fd0)
Metoda – 3 (z użyciem trybu wsadowego powłoki GRUBa)
W trybie wsadowym GRUBa
/sbin/grub –batch < < EOF
root (hd0,2)
setup (fd0)
quit
EOF
Odzyskiwanie GRUBa w 3 krokach
Po zrepartycjonowaniu dysku twardego programem gparted lub powtórnie instalując windows po uprzedniej modyfikacji przez linuks windowsowego MBRu, stage1 może nie być w stanie odszukać stage2. Niezależnie od przyczyn zaistniałej sytuacji GRUB może być przywrócony w trzech łatwych krokach.
Zrestartujmy system używając dysku Live Linux i wykonajmy polecenie „grub” aby przejść do powłoki GRUBa.
Krok-1
Odszukaj urządzenie na którym znajduje się stage1. Generalnie stage1 rezyduje w /boot/grub/stage1 (także w debianie). Jeśli twoja dystrybucja używa innej lokalizacji odszukajmy ją
grub> find /boot/grub/stage1
(hd0,2)
Krok-2
Partycję zawierającą katalog root ustaw jako urządzenie root. (patrz polecenie w kroku-1 )
grub> root (hd0,2)
Filesystem type is reiserfs, partition type 0x83
Krok-3
Zainstaluj program rozruchowy GRUB (stage1) w Głównym Sektorze Rozruchowym (MBR) pierwszego dysku twardego
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/reiserfs_stage1_5" exists... yes
Running "embed /boot/grub/reiserfs_stage1_5
(hd0)"... 18 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+18 p
(hd0,2)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.
Zrestartuj komputer nie używając już dysku Linuks Live.
Co to jest SUPER GRUB DISK ?
Super GRUB Disk cechuje możliwość wykonywania poleceń GRUBa korzystając z interfejsu menu, bez posiadania wiedzy o jego poleceniach, którą dysponują jedynie zaawansowani użytkownicy znający i wykorzystywujący je już uprzednio w praktyce. Można sobie wybrać co chce się zrobić z prostego menu. Super GRUB Disk wspomaga także naukę poleceń, jakie mogą tu zostać zastosowane.
Super GRUB Disk jest stosowany do rozwiązywania wielu problemów z programami rozruchowymi. Użytkownicy nie posiadający znajomości poleceń GRUBa mogą spokojnie zdać się na Super GRUB Disk by usunąć problemy z programem rozruchowym.
Super GRUB jest dostępny jako obraz CD, dyskietki i pendrive’a http://geocities.com/supergrubdisk/
Znaczenie pliku device.map
GRUB odczytuje urządzenia z BIOSu i rezultat przechowuje w pliku device.map tworzonym podczas instalacji GRUBa.
W momencie, gdy GRUB działa jako program rozruchowy, plik device.map jest zbędny. hd0 jest pierwszym dyskiem twardym określonym przez bios, hd1 jest drugim… itd. Dopiero w środowisku linuksa GRUB musi wiedzieć, które urządzenie linuksa odpowiada urządzeniu GRUBa.
Po dodaniu lub usunięciu któregoś z dysków twardych z systemu możemy wyedytować plik device.map aby dodać lub usunąć odpowiadające sobie określenia napędów podobnie, jak możemy skorygować każdy zapis w tym pliku jeśli GRUB nie może wygenerować prawidłowej kombinacji.
grub-install pozwala na regenerację pliku device.map z opcją –recheck
Poniżej jest zapis w moim /boot/grub/device.map:
(hd0) /dev/hda
Po dodaniu dyskietki i pendrive’a wykonuję polecenie (jako root)
grub-install –recheck /dev/hda
debian:# grub-install --recheck /dev/hda
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/sda
a poniżej mamy zmodyfikowany device.map z zapisami
(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/sda
Ręczny start z interfejsem linii komend GRUBa
Jeśli MBR (stage1) został zmodyfikowany poprzez nadpisanie MBRem windows lub uszkodzony; wciąż masz możliwość startu z istniejącego kernela linuksa. Zrestartuj komputer z dyskietki, CD lub pendrive’a a następnie w linii poleceń GRUBa wykonaj poniższe kroki:
Krok -1 >>>>>> Odszukaj urządzenie i partycję, na której znajduje się plik vmlinuz < <<<<<
grub>find /vmlinuz
(hd0,2)
Krok-2 >>>>>> Wyznacz urządzenie root GRUBa < <<<<<
grub> root (hd0,2)
Filesystem type is reiserfs, partition type 0x83
Krok-3 >>>>>> Wskaż jądro < <<<<<
grub> kernel /vmlinuz
[Linux-bzImage, setup=0x1e00, size=0x17c244]
Możemy także wykonać
kernel /vmlinuz root=/dev/hda3
aby ręcznie ustawić ‘/’ (root partition); która zawiera plik /sbin/init
Pamietaj, że /dev/hda3 w linuksie jest (hd0,2) w GRUBie
Krok-4 >>>>>> Wskaż initrd < <<<<<
Pomiń ten krok, jeśli nie ma intird; jak w przypadku niektórych jąder
grub> initrd /initrd.img
[Linux-initrd @ 0x1f96a000, 0x675773e bytes]
Krok-5 >>>>>> Uruchom kernel < <<<<<
grub> boot_
uncompressing linux... OK, booting the kernel
Rezygnacja z ręcznego startu – zastosowanie menu.lst z interfejsem GUI
Dlaczego uruchamiać ręcznie? Skoro jest menu.lst wystarczy wywołać configfile by otrzymać interfejs GUI.
grub> configfile (hd0,2)/boot/grub/menu.lst
Powyższe polecenie utworzy interfejs GUI :-)
Konfiguracja GUI GRUBa z plikiem menu.lst
Konfiguracja podstawowa
# foreground/background text_color highlighted_color
color green/black white/black
# Set a timeout, in seconds, before automatically booting the default entry
timeout 20
# Default entry; Count from 0
default 1
# Fallback entry.
#if, for any reason, the default entry doesn't work
# fall back to the "fallback"
fallback 2
#Entry 0
title Ram tester
root (hd0,2)
kernel /boot/memtest86+-1.70.bin
boot
# Entry 1
title Debian GNU/Linux, kernel 2.6.17
root (hd0,2)
kernel /boot/vmlinuz-2.6.17 root=/dev/hda3 ro
boot
# Entry 2
title Debian GNU/Linux, kernel 2.6.17 (recovery mode)
root (hd0,2)
kernel /boot/vmlinuz-2.6.17 root=/dev/hda3 ro single
boot
# Shutdown
title Shutdown PC
halt
Ochrona zaszyfrowanym hasłem
Generowanie hasła md5 w powłoce GRUBa. md5crypt jest poleceniem, które to wykonuje
grub> md5crypt
Password: ************
Encrypted: $1$j4fjD$pegn7h0etNea5vN18/J1w/
Zobacz teraz, jak można chronić interfejs powłoki GRUBa, tryb edycji a także jak chronić zapisy GRUBa różnymi hasłami.
# foreground/background text_color highlighted_color
color green/black white/black
# Set a timeout, in seconds, before automatically booting the default entry
timeout 20
########################
# This password protects the GRUB shell interface
# and edit mode
password --md5 $/ee33x434d$dsqasd/wc
########################
# Default entry; Count from 0
default 1
# Fallback entry.
#if, for any reason, the default entry doesn't work
# fall back to the "fallback"
fallback 2
#Entry 0
title Ram tester
root (hd0,2)
kernel /boot/memtest86+-1.70.bin
boot
# Entry 1
title Debian GNU/Linux, kernel 2.6.17
root (hd0,2)
kernel /boot/vmlinuz-2.6.17 root=/dev/hda3 ro
boot
#############################
# Password protected entry
title Debian GNU/Linux, kernel 2.6.17 (recovery mode)
# This password is required to boot this kernel
password --md5 $1$j4fjD$pegn7h0etNea5vN18/J1w/
root (hd0,2)
kernel /boot/vmlinuz-2.6.17 root=/dev/hda3 ro single
boot
##############################
# Shutdown
title Shutdown PC
halt
Możesz utworzyć wielokrotne hasła dla wielokrotnych zapisów tak, że odpowiadające sobie zapisy będą posiadały unikalne hasła. Gdy uruchomisz chronioną hasłem pozycję w menu zostaniesz poproszony o hasło.
Naciskając <p> w menu startowym także spowodujesz wyświetlenie pytania o hasło. Hasło to umożliwi wejście do powłoki GRUBa i trybu edycji.
Obraz Splash
GRUB-0.97 nie wspiera obrazów splash. Aby uzyskać taką fukcjonalność musisz wstawić poprawkę do kodu źródłowego. Debian dostarczany jest z taką poprawką w GRUB-0.97.
„splashimage” wyświetla ładny obrazek podczas startu dopóki użytkownik nie wybierze obrazu jądra OS-u do załadowania.
splashimage musi być:
- w formacie xpm.gz
- o rozdzielczości 640×480
- limit kolorów 14
Podczas wyświetlania splasha nie działają sterowniki karty grafiki. Dlatego GRUB ograniczony jest do zdolności wyświetlania jaką osiąga BIOS. Większość BIOSów komputerowych nie obsługuje obrazków w lepszej jakości, więc obrazek splash jest ograniczony do rozmiaru 640×480 pixeli i może wyświetlić tylko 14 kolorów
# Display splash image
splashimage=(hd0,2)/boot/grub/splashimage/skull.xpm.gz
foreground ffff00
background 000000
# splashimage doesn't work with color syntax
# Disable color syntax if there is any
# color green/black white/black
Poniżej mamy mały skrypt powłoki, który zaprojektowałem aby sprawdzić wsparcie splashimage w GRUBie.
SPLASHSUPPORT=0
IMAGE="splashimage"
SETTING=0
# Check if stage2 has splashimage support
if [ -f /boot/grub/stage2 ]; then
grep -ia $IMAGE /boot/grub/stage2 > /dev/null 2>&1
if [ "$?" -eq 0 ]; then
SPLASHSUPPORT=1
echo "stage2 supports splashimage"
fi
fi
# Check menu.1st file for splashimage setting
if [ -f /boot/grub/menu.1st ]; then
grep $IMAGE /boot/grub/menu.1st > /dev/null 2>&1
if [ "$?" -eq 0 ]; then
SETTING=1
fi
fi
# Display the result
if [ "$SPLASHSUPPORT" -eq 0 ]; then
echo "Splashimage support...NO"
else
echo "Splashimage support...OK"
# also check menu.lst
if [ $SETTING -eq 1 ]; then
echo "/boot/grub/menu.1st file has the splashimage setting"
fi
fi
Wywołanie innego programu uruchomieniowego stosując „chainloader”
Polecenie chainloader przekazuje kontrolę do innego programu uruchomieniowego. OS-y, które używają własnych programów uruchomieniowych i nie współpracują z GRUBem mogą być uruchomione za pomocą chainloadera.
Poniżej jest konfiguracja, której używam aby uruchomić WinXP
title Windows XP
root (hd0,0)
makeactive
chainloader +1
‘+1′ jest zapisem wskazującym na pierwszy sektor bieżącej partycji..
makeactive ustawia partycję root dysku jako aktywną dla urządzenia root GRUBa. Polecenie to ograniczone jest do partycji podstawowych na twardym dysku.
Wirtualna podmiana twardego dysku
Windows jest szczęśliwy widząc się na pierwszej partycji pierwszego dysku twardego. Chainloader nie mógłby działać, gdyby windows nie był na pierwszej partycji twardego dysku. Problem ten może być rozwiązany poprzez wykorzystanie polecenia podmieniającego dyski – map. map podmienia dyski BIOS wirtualnie. Metoda ta umożliwia oszukanie windows, który w ten sposób zobaczy się na pierwszym sektorze pierwszego dysku twardego.
title Windows 95
root (hd1,0)
makeactive
# Here windows has been installed on hd1
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1
Tworzenie Submenu !!! Tak, to jest możliwe :-)
Załóżmy, że plik submenu nazywa się submenu.lst i ulokowany jest w /boot/grub
Możemy wywołać to submenu poprzez umieszczenie konfiguracji poniżej w menu.lst
# calling submenu
title Sub-menu
configfile (hd0,2)/boot/grub/submenu.lst
W pliku submenu.lst musi być zawarta konfiguracja powrotu do menu głównego. Poniżej mamy taki przykład
# submenu.lst file
# Go to main menu
title Main-menu
configfile (hd0,2)/boot/grub/menu.lst
Ukrywanie GUI
Polecenie „hiddenmenu” ukrywa GUI i uruchamia system po upływie domyślnego czasu oczekiwania. Użytkownik może wywołać GUI naciśnięciem
# Hide GUI
hiddenmenu
Dyskietka startowa z GRUBem
# Boot from Floppy
title Boot from Floppy
rootnoverify (fd0)
chainloader +1
boot
Szybkie tworzenie dyskietki startowej z stage1 dla konkretnego komputera.
# Create Boot Floppy
title Install stage1 into floppy disk
pause Insert a formatted floppy disk and press enter.
root (hd0,2)
setup (fd0)
pause Press enter to continue
Autokreacja menu.lst poleceniem „update-grub”
Polecenie update-grub w Debianie tworzy menu.lst automatycznie. Wyszukuje plik vmlinuz w /boot i tworzy wymagane wpisy dla każdego odnalezionego jądra. Po pierwszym uruchomieniu polecenia update-grub wymagana jest edycja wygenerowanego pliku dla ostatecznego dostrojenia konfiguracji.
Licencja i Prawa autorskie
Oryginalny tekst: GNU GRUB (0.97) Simplified for Newbies. Copyright©2007 by Joydeep Bakshi. Tekst ten może być rozprowadzany tylko na warunkach określonych w licencji Open Content License, v1.0 lub późniejszej (aktualna wersja jest dostępna na opencontent.org).
Źródła
- GNU GRUB
- GNU GRUB FAQ
- GNU GRUB Manual 0.97
- The list of command line and menu entry commands
- GNU GRUB on Wikipedia
Tłumaczenie: arekb. Skład: oZz

JakiLinux


Piękny art. Właśnie coś takiego było mi potrzebne bo klopoty z grubem naprawdę nie raz mi doskwierały…
Doskonale!! Teraz to przynajmniej wiem jak sie GRUB-em poslugiwac w miare dobrze – zawsze mialem z tym problemy…
Wow, strasznie długi ten artykuł, za pewne będzie dla mnie źródłem ogromnej ilości wiedzy, którą chętnie przyswoję, tylko znajdę trochę więcej czasu:) Pozdrawiam autora i proszę o więcej artykułów o tak ważnych sprawach, które dla osób poznających Linuksa są niezbędne.
Miło, że nawet taki "linuksowy laik" jak ja może pozyskać trochę wiedzy na tym portalu. Swietny artyktuł. Dzięki za tłumaczenie.
uu coś GRUBszego ;)
Warto też zauważyć że partycje podstawowe mają numerację od 1 do 4 (dyski logiczne powyżej) i tylko z nich, o ile ustawione są jako aktywne, możemy bootować.
Poza tym: ctrl+f: vbr – nic. Ale w miarę dobry art.
Nie zgodzę się z Tobą. Ja bootuje z partycji rozszerzonej bez problemów.
Jasne. Pokaż mi fdisk -l (interesuje mnie gwiazdka i numer partycji)
Proszę:
kangur@kangur-ubuntu:~$ sudo fdisk -l
[sudo] password for kangur:
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1ac51ac4
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1275 10241406 7 HPFS/NTFS
/dev/sda2 1276 9728 67898722+ f W95 Ext'd (LBA)
/dev/sda5 1276 2958 13518666 7 HPFS/NTFS
/dev/sda6 4642 4706 522081 82 Linux swap / Solaris
/dev/sda7 * 4707 6126 11406118+ 83 Linux
/dev/sda8 6127 9728 28933033+ 83 Linux
/dev/sda9 2959 4641 13518666 83 Linux
Partition table entries are not in disk order
Zapomniałem że był jeszcze taki wynalazek jak EMBR i nawet niespecjalnie pamiętam jak wyglądała w nim kolejność bootowania. Zresztą przez gruba nawet się jej nie da ustawić (chyba :) ). Zgaduję że pewnie i tak musi przejść przez sda1.
Fajny tekst, jednak plik menu.lst nie "wyswietla menu startowe GRUB-a" a zawiera konfiguracje dla menu startowego GRUB-a. Takie drobne uscislenie :)
W oryginale: "displays the GRUB boot menu".
> Jeśli jednak kiedyś później zrepartycjonujesz dysk a następnie przywrócisz poprzednią kopię zapasową MBR-u spowodujesz sytuację, w której bieżąca tablica partycji jak i system plików nie będą pasować, a odczyt dysku stanie się niemożliwy. W tej sytuacji musisz na nowo zrepartycjonować i sformatować dysk. A więc nigdy nie wykonuj kopii zapasowej całego MBR-u lecz tylko boot-loadera.
Od naprawy tego typu rzeczy jest gpart (! nie gparted !)
Nikt nikomu nie zabrania zapisać 512 bajtów, (o czym autor zresztą wspomina już w następnym akapicie) wtedy stosowanie gparta okaże się (w razie czego) niepotrzebne. O gparted autor wspomina w zupełnie innym miejscu i kontekście. No więc o jakich "rzeczach" mowa.
Fajnie by było coś napisać o fallback, skoro juz w conf-ach jest :)
I opcji panic=num, jeśli ktoś np. stawia kernel-a zdalnie ;-> czasami się przydaje ;]
Artykuł fajny, szczególnie biorąc pod uwagę jak kiepska jest oficjalna dokumentacja. Jedno drobne zastrzeżenie dyskietki to przestarzała technologia (w chwili obecnej w nowych komuterach raczej nie istnieją) i chyba nie warto o niej pisać. Bootable cd byłoby lepszym pomysłem.
przecież jest rozdział o "Bootable cd". Autor napisał całościowo o CD, dyskietkach i penach. Niektórzy mają jeszcze stacje dyskietek, a poza tym nadmiar informacji jeszcze nikomu nie zaszkodził – przeanalizuj i czegoś się nauczysz, nawet jak tego nie wykorzystujesz. To tak jak z KDE i GNOME (ten drugi ukrywa jego zdaniem nieużywane opcje :-) )
Nie wiem dlaczego przegapiłem sekcję o Bootable CD. Mea culpa. Co do dyskietek, to podtrzymuję swoje zdanie, nie należy zawracać ludziom głowy technologiami, które wychodzą z użycia. Nadmiar informacji wcale nie jest znowu taki korzystny. Chociażby sprawia, że artykuł jest przez to dłuższy, a są ludzie, którzy w zależności od długości artykułu czytają go bądź nie. Sam całości nie czytałem, ale to raczej dlatego, że miałem już z GRUBem dość przejść, by go poznać (lubiłem kiedyś zabawę z partycjami). Z drugiej strony dowiedziałem się, że mogę zrobić w grubie submenu, więc artykuł i mnie na coś mi się przydał.
Odnośnie Gnoma, to raczej wina jeszcze niedoskonałych narzędzi konfiguracyjnych. Bo myślę, że się zgadzamy co do faktu, że ukryte opcje Gnoma w większości ukryte być nie powinny.
Mam takie pytanko. Da się w grubie ustawić botowanie z obrazu iso? W internecie nie znalazłem zbyt wiele informacji na ten temat.
Koledzy dawno mi mówili, że GRUB to potęga, ale jakoś nigdy nie umieli mi tego udowodnić. Teraz już wiem :-)
Dzięki!
Parę nieścisłości: autor wspomina w artykule o położeniu plików w Debianie : /lib/grub/i386-pc/
ls -a /lib/grub
ls: nie ma dostępu do /lib/grub: Nie ma takiego pliku ani katalogu
…i lipa ;]
Jeśli chodzi o "ścisłość", to:
Masz rację i jej nie masz – u mnie np. też nie ma takiego itd.
Być może autor tak miał? Dlatego mimo wszystko nie poprawiałem.
Lipa?? Nie trochę pochopnie?
zamiast programowac pliki konfiguracyjne niedorobionych programow nielepiej zajac sie czyms pozytecznym np napisaniem programu konfiguracyjnego albo porzadny bootloader? ;)
Brakuje informacji, ze gdy mamy 3 dyski np.: 2x sata i 1x ide to grub
widzi to tak :
/dev/hdb – (hd0)
/dev/sda – (hd1)
/dev/sdb – (hd2)
Dzieje sie tak dlatego ze grub zaczyna zliczac dyski od interfejsu IDE.
Ktos moze sie na tym zlapac.
takie artykuły podobają mi się najbardziej same konkrety
Świetny artykuł. Oby takich więcej :]
Ciekawe czy można z menu uruchomić boot z cd
Można. Większość instalatorów / dystrybucji Live ma opcję Boot from harddrive, która służy właśnie do tego.
Przeczytałem wiele artykułów, czesto przeglądałem fora, wielokrotnie maiałem kłopoty poinstalacyjne z GRUB-em, ale tak dobrze, konkretnie i prosto wyjaśnionej zasady działania i opisu jeszcze nie spotkałem.
Wielkie brawa dla Autora i Tłumacza za doskonały art.
Pozdrowienia
Pozwole sobie skopiowac tego arta na dysk..tak na wszelki wypadek ;]
Bardzo ladnie napisany art, kto wie moze gdyby sie pojawil pol roku temu, uratowalbym swoj dysk, zamiast go dobic ;]
Czy ktoś wie jak skopiować GRUB na drugi dysk twardy, by móc na nim zainstalować Linuxa i na końcu odłączyć i pracować na nim samodzielnie na drugim komputerze? Korzystam obecnie z Ubuntu. Z góry dziękuję za pomoc.
Witam
No dość ciekawy artykuł, z pewnością wymagał wiele czasu nim został napisany.
Ale wszystko na nic jeśli mam system prawie że nowo zainstalowany a nic do gruba nie mogę dodać gdyż: wpisuje grub:
następnie:
find /boot/grub/stage1 i wyskakuje mi error 15 file not found (mimo że tam jest, sprawdzałem). Mógłby mi ktoś poradzić ??
Pozdrawiam
Ten artykuł to kawałek dobrej roboty. Tak dopracowane howto nie spotyka się tak często. Wszystkie informacje w jednym miejscu. Już nie będzie dla mnie problemem doinstalowanie Windy do już istniejących dwóch dystrybucji linuxa na moim dysku twardym.
Jeszcze raz Dziękuję
szacunek dla Autora
Konkretnie i na temat.
Dodam od siebie, że pomógł mi on przenieść działający serwer produkcyjny z dysku 200GB na 1TB … (maił 11 partycji)
opis przydał się … alby były małe modyfikacje ….
ponieważ miałem osobną partycję boot na 3 partycji dysku 0 ….
grub – pomimo podmontowania jej i także innych nie widział ich … – pomogło dopiero – przeniesienie wszysktiego na główną partycję … (tak jakby scalenie ale po plikach) … i dalej już z górki …
Mógłbyś mi wytłumaczyć jak skonfigurować GRUB'a na USB ? Potrzebuję też dowiedzieć się jak skonfigurować KON BOOT pod USB.