LINUX.ORG.RU

grub2 + новая ос на логическом разделе


0

0

Пару месяцев назад из дебиана поставил на свободный раздел gentoo на побаловаться. Понравилось, решил оставить её с возможностью выбрать в меню grub2. /boot дженты находится на /dev/hda5. /boot дебиана - на hda1. Возможно ли в такой ситуации обучить девственный дебиановский grub2 (даже не знаю, в mbr он или ещё где) выбирать из этих двух бутов?


Ответ на: комментарий от linux4ever

Generating grub.cfg ... Found theme: /boot/grub/debian-theme/theme.txt Found linux image: /boot/vmlinuz-2.6.32-trunk-686 Found initrd image: /boot/initrd.img-2.6.32-trunk-686 Found Gentoo Base System release 1.12.13 on /dev/hda5 done

stormy
() автор топика
Ответ на: комментарий от stormy

Generating grub.cfg ...
Found theme: /boot/grub/debian-theme/theme.txt
Found linux image: /boot/vmlinuz-2.6.32-trunk-686
Found initrd image: /boot/initrd.img-2.6.32-trunk-686
Found Gentoo Base System release 1.12.13 on /dev/hda5
done

stormy
() автор топика
Ответ на: комментарий от linux4ever

Kernel panic - not syncing: VFS: Unable to mount fs on unknown-block (0,0)

Unable to mount - понятно, ext4 была собрана модулем, сейчас как раз пересобирается. Но откуда взялся блок (0,0)?..

stormy
() автор топика
Ответ на: комментарий от linux4ever

В генте нет граба.
Вот дебиановский конфиг

insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set 0c829d0c-bddf-4e55-a10e-c3241e2ac2ba
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
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set 0c829d0c-bddf-4e55-a10e-c3241e2ac2ba
insmod gfxmenu
set theme=($root)/boot/grub/debian-theme/theme.txt
set menuviewer=gfxmenu
fi
set locale_dir=/boot/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set gfxpayload=keep
insmod png
loadfont /boot/grub/dejavu_sans_10.pf2
loadfont /boot/grub/dejavu_sans_12.pf2
loadfont /boot/grub/dejavu_sans_bold_14.pf2
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry «Debian GNU/Linux, with Linux 2.6.32-trunk-686» --class debian --class gnu-linux --class gnu --class os {
   insmod ext2
   set root=(hd0,1)
   search --no-floppy --fs-uuid --set 0c829d0c-bddf-4e55-a10e-c3241e2ac2ba
   echo   Loading Linux 2.6.32-trunk-686 ...
   linux   /boot/vmlinuz-2.6.32-trunk-686 root=UUID=0c829d0c-bddf-4e55-a10e-c3241e2ac2ba ro quiet vga=791
   echo   Loading initial ramdisk ...
   initrd   /boot/initrd.img-2.6.32-trunk-686
}
menuentry «Debian GNU/Linux, with Linux 2.6.32-trunk-686 (recovery mode)» --class debian --class gnu-linux --class gnu --class os {
   insmod ext2
   set root=(hd0,1)
   search --no-floppy --fs-uuid --set 0c829d0c-bddf-4e55-a10e-c3241e2ac2ba
   echo   Loading Linux 2.6.32-trunk-686 ...
   linux   /boot/vmlinuz-2.6.32-trunk-686 root=UUID=0c829d0c-bddf-4e55-a10e-c3241e2ac2ba ro single
   echo   Loading initial ramdisk ...
   initrd   /boot/initrd.img-2.6.32-trunk-686
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry «Gentoo Base System release 1.12.13 (on /dev/hda5)» {
   insmod ext2
   set root=(hd0,5)
   search --no-floppy --fs-uuid --set 0d7458eb-5eec-4c5d-8390-92ec0c2d5999
   linux /boot/kernel-2.6.31-gentoo-r6 root=UUID=0d7458eb-5eec-4c5d-8390-92ec0c2d5999
   initrd /boot/initramfs-2.6.31-gentoo-r6
}

stormy
() автор топика
Ответ на: комментарий от stormy

menuentry «Gentoo Base System release 1.12.13 (on /dev/hda5)» {
insmod ext2
set root=(hd0,5)
search --no-floppy --fs-uuid --set 0d7458eb-5eec-4c5d-8390-92ec0c2d5999
linux (hd0,5)/boot/kernel-2.6.31-gentoo-r6 root=UUID=0d7458eb-5eec-4c5d-8390-92ec0c2d5999
initrd (hd0,5)/boot/initramfs-2.6.31-gentoo-r6
}

А не так должно быть?

linux4ever
()
Ответ на: комментарий от linux4ever

Не знаю, это же генерированный конфиг.
Я бы подумал, что set root=(hd0,5) достаточно, но попробую дополнить по-вашему.
root=UUID=... уже пытался, говорит то же самое (unable ... ), только вместо (0,5) пишет uuid

stormy
() автор топика
Ответ на: комментарий от stormy

В общем та же история Kernel panic - not syncing: VFS: Unable to mount fs on unknown-block (0,0).

PS (из танка): кстати, судя по «insmod ext2» grub2 умеет подгружать нужные модули фс, так что собраная модулем ext4 не была причиной.

stormy
() автор топика
Ответ на: комментарий от stormy

>Не знаю, это же генерированный конфиг.

Я бы подумал, что set root=(hd0,5) достаточно, но попробую дополнить по-вашему.

root=UUID=... уже пытался, говорит то же самое (unable ... ), только вместо (0,5) пишет uuid



Так ведь на /dev/hda5 находится только /boot, а сам корень где?
И (hd0,5) это /dev/hda6.

Lucky1 ★★★
()
Ответ на: комментарий от Lucky1

>Так ведь на /dev/hda5 находится только /boot, а сам корень где?

Не только boot, корень тоже

И (hd0,5) это /dev/hda6.


так было в старом грубе.

stormy
() автор топика
Ответ на: комментарий от stormy

1) в новом так же

2) проверь, вкомпилил ли ты подержку своего sata/pata/блаблабла на чем там контроллер диска держится.

и да, юзай genkernel, он полезен..

DoctorSinus ★★★★★
()
Ответ на: комментарий от DoctorSinus

2) проверь, вкомпилил ли ты подержку своего

sata/pata/блаблабла на чем там контроллер диска держится.


+1. Проще всего собирать initramfs при помощи genkernel
если с uuid, то надо добавлять ключ --disklabel
ключ --symlink скопирует собранное в /boot и сделает симлинки kernel и initramfs.
в итоге команда для сборки kernel и initramfs примерно такая:
genkernel --no-clean --disklabel --mdadm --lvm --symlink all

Версия genkernel должна быть не ниже sys-kernel/genkernel-3.4.10.907
(на более младших у меня были ошибки при сборке initramfs).

Раньше я пробовал собрать то же самое путем вкомпилирования всего в ядро, но нормально у меня не получилось, поэтому пользуюсь genkernel.

ArsenShnurkov
()
Ответ на: комментарий от stormy

судя по «insmod ext2» grub2 умеет подгружать нужные модули фс,

так что собраная модулем ext4 не была причиной


есть мнение, что grub2 подгружает свои модули,
а ядро с initramfs - свои.

и это - совсем разные модули.

ArsenShnurkov
()
Ответ на: комментарий от linux4ever

А передать управление гентушному загрузчику?


не нужно, grub2 должен передавать управление в загруженное ядро

ArsenShnurkov
()
Ответ на: комментарий от Lucky1

а сам корень где?


На диске, передаваемом в ядро в параметре
root=UUID=0d7458eb-5eec-4c5d-8390-92ec0c2d5999

К.О.

Кстати, странно, что загрузка идет сразу с диска, а не с initramfs.

я бы поставил
root=/dev/ram0 init=/linuxrc real_root=UUID=0d7458eb-5eec-4c5d-8390-92ec0c2d5999

ArsenShnurkov
()
Ответ на: комментарий от stormy

мне не ясно, зачем нужна эта команда (при наличии команды root выше)
search --no-floppy --fs-uuid --set 0d7458eb-5eec-4c5d-8390-92ec0c2d5999

ArsenShnurkov
()
Ответ на: комментарий от stormy

> PS (из танка): кстати, судя по «insmod ext2» grub2 умеет подгружать нужные модули фс, так что собраная модулем ext4 не была причиной.

к ядру Linux и его модулям это не имеет отношения. Это модуль ext2 для grub2. У него свой список поддерживаемых FS и свои модули (например, в отличие от Linux он поддерживает ZFS. Поддержка ext4 появилась только недавно, и если у тебя grub2 из lenny — то её нет). Но писать строку «insmod ext2» в grub.cfg бесполезно — этот модуль нужен для чтения раздела /boot, на котором все модули grub2 и живут :). Модуль для чтения /boot должен быть «вкомпилён в ядро grub2», т.е. жить в stage2.

pupok ★★
()
Ответ на: комментарий от linux4ever

ваше масляное масло сильно маслянистое :)

set root=(hd0,5)
search --no-floppy --fs-uuid --set 0d7458eb-5eec-4c5d-8390-92ec0c2d5999
linux (hd0,5)/...
-- это попытка в трёх разных местах сказать одно и тоже. Любые две из них можно смело удалять.

pupok ★★
()
Ответ на: комментарий от ArsenShnurkov

> Версия genkernel должна быть не ниже sys-kernel/genkernel-3.4.10.907
(на более младших у меня были ошибки при сборке initramfs).

ох не знаааал..спасибо))

кстати, на 10 мною собранных ядер при _одинаковом_ конфиге запускалось одно

поэтому я и сижу на арче (yaourt -S kernel26)

DoctorSinus ★★★★★
()
Ответ на: комментарий от DoctorSinus

на более младших у меня были ошибки при сборке initramfs


Пруфлинки:
http://bugs.gentoo.org/show_bug.cgi?id=293945
http://bugs.gentoo.org/show_bug.cgi?id=293941

кстати, на 10 мною собранных ядер при

_одинаковом_ конфиге запускалось одно


Пруфлинк или 4.2

ArsenShnurkov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.