LINUX.ORG.RU

grub и несколько систем linux

 , ,


0

2

На диске 4 раздела:

Устр-во    Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sda1  *                  63  83891429  83891367    40G             7 HPFS/N                                            T
/dev/sda2               83891491 454832127 370940637 176,9G             5 Расшир                                            е
/dev/sda3              454834176 488396675  33562500    16G            83 Linux
/dev/sda5               83891493 438054911 354163419 168,9G             7 HPFS/N                                            T
/dev/sda6              438056960 454832127  16775168     8G            83 Linux

на /dev/sda3 стоит Слакварь, на sda6 поставил Debian 10. Grub в дебиане не устанавливал. Добавил параметр с загрузкой дебиана в grub.cfg

menuentry "Debian GNU/Linux (10)" --class gnu-linux --class gnu --class os $men$
        insmod part_msdos
        linux /boot/vmlinuz-4.19.0-5-amd64 root=/dev/sda6 ro quiet
        initrd /boot/initrd.img-4.19.0-5-amd64
}

но при попытке загрузиться получаю Ошибка: файл «/boot/vmlinuz-4.19.0-5-amd64» не найден. Cначала Вам нужно загрузить ядро. На диске ядро и vmlinuz-4.19.0-5-amd64 естественно есть. Пробовал запускать update-grub:

Найден Windows 7 (loader) на /dev/sda1
Найден Slackware Linux (Slackware 14.2) на /dev/sda3
Найден Debian GNU/Linux (10) на /dev/sda6
/usr/sbin/grub-probe: ошибка: неизвестная файловая система.

файловая система естественно ext4. Что за ерунда такая, почему дебиан не запускается?

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

Я б изначально для таких дел сделал бы /boot отдельным разделом, общим для каждой из систем.

А сейчас, можно попробовать вручную скопировать ядро и инитрамфс туда, где груб установлен, ну или прописать в grub.cfg в секцию для дебиана (перед командой linux):

search --no-floppy --fs-uuid --set UUID_дебиановского_раздела

vvn_black ★★★★★ ()
Последнее исправление: vvn_black (всего исправлений: 2)
Ответ на: комментарий от sholmes

Ок.

menuentry "Debian GNU/Linux (10)" --class gnu-linux --class gnu --class os $men$
        insmod part_msdos
        linux /boot/vmlinuz-4.19.0-5-amd64 root=/dev/sda6 ro quiet
        initrd /boot/initrd.img-4.19.0-5-amd64
}


Здесь нет задания root для grub, от которого он будет считать пути... Что-то вроде

set root='(hd0,6)'

Ну или через поиск и UUID — более универсально.

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от vvn_black
menuentry "Debian GNU/Linux (10)" --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-/$
        insmod part_msdos
        search --no-floppy --fs-uuid --set=root 31ab4308-518e-4f97-b81b-bd0599898101
        linux /boot/vmlinuz-4.19.0-5-amd64 root=/dev/sda6 ro quiet
        initrd /boot/initrd.img-4.19.0-5-amd64
sholmes ()
Ответ на: комментарий от sholmes

А целиком?

Слака из этого же конфига грузится? В чем отличия в командах? Оба раздела - ext4? Попробуй insmod принудельно.

У меня сделано немного иначе, grub вытащен на отдельный раздел, который не монтируется из под операционных систем, и в нём такая самописная петрушка в конфиге:

insmod lvm

menuentry "Artix" {
	configfile (lvm/aq-aq_artix)/boot/grub/grub.cfg
}

menuentry "Archlinux" {
	configfile (lvm/aq-aq_archlinux)/boot/grub/grub.cfg
}

menuentry "Voidlinux" {
	multiboot (lvm/aq-aq_voidlinux)/boot/grub/i386-pc/core.img
}

menuentry "FreeBSD" {
	insmod part_msdos
	insmod ufs2
	set root=(hd0,5)
	kfreebsd /boot/kernel/kernel
	kfreebsd_loadenv /boot/device.hints
	set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s5
	set kFreeBSD.vfs.root.mountfrom.options=rw
	boot
}
Deleted ()
Ответ на: комментарий от Deleted

Конфиг Слаки:

menuentry "Slackware 14.2 GNU/Linux" --class slackware --class gnu-linux --class gnu --class os $menuentry_id_option 'gnuli$
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos3'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos$
        else
          search --no-floppy --fs-uuid --set=root 751e540c-bca1-410d-8f38-00caf96849d6
        fi
        echo    'Загружается Linux 4.4.190 …'
        linux   /boot/vmlinuz-huge-4.4.190 root=/dev/sda3 ro
sholmes ()