Skocz do zawartości

Problem Z Grubem


B-art

Rekomendowane odpowiedzi

Hej!

Chciałem przetestować Fedore 13. Ściągnąłem LiveCD i całą instalację przeszedłem bez problemu. Niestety coś stało się z grubem. Zamiast menu wyświetlił tylko znak zachęty gruba. Na komputerze wcześniej był już grub (jakaś nowa wersja dostarczona z ubuntu) który odsługiwał Ubuntu i Slackware'a. Po zalogowaniu się na ubuntu próbowałem stworzyć menu dla gruba - podaje plik grub.cfg:

 

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
 load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
 set saved_entry=${prev_saved_entry}
 save_env saved_entry
 set prev_saved_entry=
 save_env prev_saved_entry
 set boot_once=true
fi

function savedefault {
 if [ -z ${boot_once} ]; then
   saved_entry=${chosen}
   save_env saved_entry
 fi
}

function recordfail {
 set recordfail=1
 if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
if loadfont /usr/share/grub/unicode.pf2 ; then
 set gfxmode=640x480
 insmod gfxterm
 insmod vbe
 if terminal_output gfxterm ; then true ; else
   # For backward compatibility with versions of terminal.mod that don't
   # understand terminal_output
   terminal gfxterm
 fi
fi
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
set locale_dir=($root)/boot/grub/locale
set lang=pl
insmod gettext
if [ ${recordfail} = 1 ]; then
 set timeout=-1
else
 set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, za pomocą systemu Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
linux	/boot/vmlinuz-2.6.32-24-generic root=UUID=fb1c8ddc-6140-471e-b152-b5fa5874f150 ro   quiet splash
initrd	/boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, za pomocą systemu Linux 2.6.32-24-generic (tryb ratunkowy)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
echo	'Wczytywanie systemu Linux 2.6.32-24-generic...'
linux	/boot/vmlinuz-2.6.32-24-generic root=UUID=fb1c8ddc-6140-471e-b152-b5fa5874f150 ro single 
echo	'Wczytywanie początkowego dysku RAM...'
initrd	/boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, za pomocą systemu Linux 2.6.32-23-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
linux	/boot/vmlinuz-2.6.32-23-generic root=UUID=fb1c8ddc-6140-471e-b152-b5fa5874f150 ro   quiet splash
initrd	/boot/initrd.img-2.6.32-23-generic
}
menuentry 'Ubuntu, za pomocą systemu Linux 2.6.32-23-generic (tryb ratunkowy)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
echo	'Wczytywanie systemu Linux 2.6.32-23-generic...'
linux	/boot/vmlinuz-2.6.32-23-generic root=UUID=fb1c8ddc-6140-471e-b152-b5fa5874f150 ro single 
echo	'Wczytywanie początkowego dysku RAM...'
initrd	/boot/initrd.img-2.6.32-23-generic
}
menuentry 'Ubuntu, za pomocą systemu Linux 2.6.32-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
linux	/boot/vmlinuz-2.6.32-22-generic root=UUID=fb1c8ddc-6140-471e-b152-b5fa5874f150 ro   quiet splash
initrd	/boot/initrd.img-2.6.32-22-generic
}
menuentry 'Ubuntu, za pomocą systemu Linux 2.6.32-22-generic (tryb ratunkowy)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
echo	'Wczytywanie systemu Linux 2.6.32-22-generic...'
linux	/boot/vmlinuz-2.6.32-22-generic root=UUID=fb1c8ddc-6140-471e-b152-b5fa5874f150 ro single 
echo	'Wczytywanie początkowego dysku RAM...'
initrd	/boot/initrd.img-2.6.32-22-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set fb1c8ddc-6140-471e-b152-b5fa5874f150
linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Linux (on /dev/sda2)" {
insmod ext2
set root='(hd0,2)'
search --no-floppy --fs-uuid --set 7d2f4377-0bf5-4dae-bc10-5f301a92e1af
linux /boot/vmlinuz root=/dev/hda2 ro  vt.default_utf8=0 vga = normal
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
menuentry 'Fedora 13' --class fedora --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,7)'
search --no-floppy --fs-uuid --set 7731491d-63be-4c4a-87da-bccf2c73e8c5
linux	/boot/vmlinuz-2.6.33.3-85.fc13.i686 root=UUID=7731491d-63be-4c4a-87da-bccf2c73e8c5 ro   quiet splash
initrd	/boot/initramfs-2.6.33.3-85.fc13.i686.img
}

 

Niestety nie zadziałało. Próbowałem zapisać menu Fedory w sposób:

 

menuentry "Linux Fedora (on /dev/sda7)" {
insmod ext2
set root='(hd0,7)'
search --no-floppy --fs-uuid --set 7731491d-63be-4c4a-87da-bccf2c73e8c5
linux /boot/vmlinuz root=/dev/hda7 ro  vt.default_utf8=0 vga = normal
}

 

To również nie zadziałało.

Grub zawsze odpowiadał "no such partition" ale partycję /dev/dsa7 o takim uuid posiadam:

Wynik ls -al /dev/diks/by-uuid/

 

drwxr-xr-x 2 root root 140 2010-08-24 09:10 .
drwxr-xr-x 6 root root 120 2010-08-24 09:10 ..
lrwxrwxrwx 1 root root  10 2010-08-24 09:10 7731491d-63be-4c4a-87da-bccf2c73e8c5 -> ../../sda7
lrwxrwxrwx 1 root root  10 2010-08-24 09:10 7d2f4377-0bf5-4dae-bc10-5f301a92e1af -> ../../sda2
lrwxrwxrwx 1 root root  10 2010-08-24 09:10 8db6cfb4-1bdb-4cc8-bd12-dc6f3f99a910 -> ../../sda6
lrwxrwxrwx 1 root root  10 2010-08-24 09:10 c5870e90-4a4f-4c06-a00a-aa8a969daff1 -> ../../sda1
lrwxrwxrwx 1 root root  10 2010-08-24 09:10 fb1c8ddc-6140-471e-b152-b5fa5874f150 -> ../../sda5

 

Przejrzałem też katalog /boot na dysku Fedory initrd.img-XXX.img tylko initramfs-XXX.img. Poniżej listing katalogu /boot

 

-rw-r--r--. 1 root root   110933 2010-05-06 20:57 config-2.6.33.3-85.fc13.i686
drwxr-xr-x. 3 root root     4096 2010-05-13 03:23 efi
-rw-r--r--. 1 root root   161956 2009-12-25 18:40 elf-memtest86+-4.00
drwxr-xr-x. 2 root root     4096 2010-08-23 22:33 grub
-rw-r--r--. 1 root root 11544682 2010-08-23 22:33 initramfs-2.6.33.3-85.fc13.i686.img
-rw-r--r--. 1 root root   160280 2009-12-25 18:40 memtest86+-4.00
-rw-r--r--. 1 root root  1580395 2010-05-06 20:57 System.map-2.6.33.3-85.fc13.i686
-rwxr-xr-x. 1 root root  3434592 2010-05-06 20:57 vmlinuz-2.6.33.3-85.fc13.i686

 

Z tego co się zorientowałem z Fedorą załączony był grub 0.97 a z ubuntu jakaś nowa wersja o innym zasobie komend i nie posiadająca pliku menu.lst tylko grub.cfg

Kiedyś (okolice roku 2000) czytałem że na starszych komputerach systemy nie powinny być instalowane w dalszych częściach dysku - czy ta zasada nadal obowiązuje?

Może ktoś ma pomysł co tu nie gra i jak można to skutecznie naprawić?

 

Odnośnik do komentarza
Udostępnij na innych stronach

Zastanów się, czy korzystasz z GRUBa z Fedory czy z innej dystrybucji.

Jeśli z GRUBa Fedory, to przeczytaj co nieco na naszej wiki → http://wiki.fedora.pl/wiki/GRUB

Jeśli z GRUBA Ubuntu czy innej dystrybucji, to raczej nie to forum.

A najlepiej udać się do źródeł :)http://www.gnu.org/software/grub/manual/grub.html

 

[EDIT]

Tak jeszcze patrzę

linux /boot/vmlinuz root=/dev/hda7
W Fedorze dyski nazywają się /dev/sd... co zresztą widać
lrwxrwxrwx 1 root root 10 2010-08-24 09:10 7731491d-63be-4c4a-87da-bccf2c73e8c5 -> ../../sda7
Może o to chodzi?
Odnośnik do komentarza
Udostępnij na innych stronach

Rozwiązanie

W wątku: http://debian.linux.pl

threads/17004-Grub-...widzi-Fedory-12 znalazłem informacje o problemach gruba Debianowego w czytaniu

partycji ext4 (trochę to dziwne bo mam Ubuntu na ext4 i je czyta).

 

Pierwsza informacja - w grub2 nie edytujemy pliku /boot/grub/grub.cfg. Możemy, po instalacji nowego systemu,

którego nie widać w grubie, wpisać "update-grub", co uruchomi skrypt lub samemu dodać system do pliku

/etc/grub.d/40_custom i pamiętać o wpisaniu update-grub po wszystkim.

Ja zastosowałem mieszankę powyższych metod. :rolleyes:

 

1. w pliku /etc/default/grub uwidoczniłem linie GRUB_DISABLE_LINUX_UUID=true

2. wpisałem update-grub i sprawdziłem jak wyglądał wygenerowany plik grub.cfg. Powstał wpis o treści:

menuentry "Fedora (2.6.33.3-85.fc13.i686) (on /dev/sda7)" {
    insmod ext2
    [b]set root='(hd0,7)'[/b]
    search --no-floppy --fs-uuid --set 7731491d-63be-4c4a-87da-bccf2c73e8c5
    linux /boot/vmlinuz-2.6.33.3-85.fc13.i686 ro root=[b]UUID=7731491d-63be-4c4a-87da-bccf2c73e8c5[/b] rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=pl2 rhgb quiet
    initrd /boot/initramfs-2.6.33.3-85.fc13.i686.img
}

7 partycja (hd0,7) - Fedory była dla gruba niewidoczna więc kernel i initramfs Fedory skopiowałem na 5 (ubuntu)

partycję ustawiając set root ='(hd0,5)' a następnie ustawiłem:

linux /boot/vmlinuz-2.6.33.3-85.fc13.i686 ro root=/dev/sda7

Ostatecznie do /etc/grub.d/40_custom wpisałem:

menuentry "Fedora (2.6.33.3-85.fc13.i686) (on /dev/sda7)" {
    insmod ext2
    [b]set root='(hd0,5)'[/b]
    search --no-floppy --fs-uuid --set 7731491d-63be-4c4a-87da-bccf2c73e8c5
    linux /boot/vmlinuz-2.6.33.3-85.fc13.i686 ro root=[b]/dev/sda7[/b] rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=pl2 rhgb quiet
    initrd /boot/initramfs-2.6.33.3-85.fc13.i686.img
}

i wpisałem update-grub.

Rozwiązanie działa jako tako, jednak raczej przeinstaluje Fedorę na ext3 i zainstaluję gruba 0.97. Wtedy pewnie

wszystko zadziała bez takiej partyzantki.

Mam nadzieję że informacje przydadzą się jeszcze komuś :D Jeśli jednak na forum podobna informacja podpada

pod spam proszę o wyrozumiałość - to dopiero mój 2 post!

Odnośnik do komentarza
Udostępnij na innych stronach

[...] raczej przeinstaluje Fedorę na ext3 i zainstaluję gruba 0.97.
Na Fedorze ext4 działa bez najmniejszych problemów, więc nie ma powodu instalować na starszym fs. A GRUB 0.97 jest domyślnie, więc może wystarczy uruchomić Fedorę i zinstalować GRUBasa z Fedory (grub-install /dev/sda) i dopisanie w nim sekwencji uruchamiania dla Ubuntu (albo wywołanie GRUBa Ubuntu kaskadowo z GRUBa Fedory).

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...