LINUX.ORG.RU
ФорумAdmin

UEFI, Ubuntu. Как добавить Gentoo в загрузку?

 , ,


0

1

Есть ноут, на нём стоит Xubuntu 18.04 amd64. Загрузка с помощью UEFI и Grub2, всё настроено стандартно инсталлятором Xubuntu, там же было включено шифрование диска. Всё это крутится на основном SSD.

Захотелось ещё и Gentoo. На втором диске (не на основном SSD) разметил GPT, сделал отдельный раздел ext4 под корень и fat32 под /boot. Сгенерировал ядро с помощью genkernel all. В документации Gentoo написано про vmlinuz, но он почему-то не создался в /boot/. Прописал /etc/fstab.

Запустил в Ubuntu update-grub2, он увидел Gentoo, добавил строчку в Grub.

Gentoo по этой строчке не загружается, выдаёт

error: no such device: 6913-D1E4.
error: disk `hd0,gpt6' not found.
error: you need to load the kernel first.

Вопрос: как сделать так, чтобы я мог загрузить Gentoo? Желательно, чтобы не сломалась загрузка существующей Ubuntu, т.к. постоянно нужна в работе.

P.S.: т.к. в Ubuntu установлен VirtualBox, то ещё есть свой ключ, прописанный в UEFI, сгенерированный стандартным update-secureboot-policy --enroll-key. Может понадобится.

★★

ну покажи для начала свой /boot/grub/grub.conf. только не пости сюда он должен быть довольно длинный. залей на какой нибудь пейстбин

eternal_sorrow ★★★★★
()

Ты мог бы дублировать запись граба для убунты и указать другой / раздел (где у тебя Gentoo лежит). Только симлинк на /lib/modules/<версия ядра> сделать не забудь.

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

/boot/grub/grub.conf

Вот кусок про Gentoo, или всё таки весь файл нужен?

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Gentoo/Linux (on /dev/sda3)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-de50d510-d8c6-482c-8cc9-659866607414' {
	insmod part_gpt
	insmod fat
	set root='hd0,gpt6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6  6913-D1E4
	else
	  search --no-floppy --fs-uuid --set=root 6913-D1E4
	fi
	linux /kernel-genkernel-x86_64-4.19.44-gentoo root=/dev/sda3
	initrd /initramfs-genkernel-x86_64-4.19.44-gentoo
}
submenu 'Advanced options for Gentoo/Linux (on /dev/sda3)' $menuentry_id_option 'osprober-gnulinux-advanced-de50d510-d8c6-482c-8cc9-659866607414' {
	menuentry 'Gentoo/Linux (on /dev/sda3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/kernel-genkernel-x86_64-4.19.44-gentoo--de50d510-d8c6-482c-8cc9-659866607414' {
		insmod part_gpt
		insmod fat
		set root='hd0,gpt6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6  6913-D1E4
		else
		  search --no-floppy --fs-uuid --set=root 6913-D1E4
		fi
		linux /kernel-genkernel-x86_64-4.19.44-gentoo root=/dev/sda3
		initrd /initramfs-genkernel-x86_64-4.19.44-gentoo
	}
}

set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  set timeout=10
fi
### END /etc/grub.d/30_os-prober ###

Ещё, наверно, полезно оставить вывод blkid:

/dev/sda3: LABEL="Root3" UUID="de50d510-d8c6-482c-8cc9-659866607414" TYPE="ext4" PARTLABEL="Root3" PARTUUID="5b6aad3b-5ea9-4a74-9165-dfa42d8a09ed"
/dev/sda6: LABEL="BOOT500" UUID="6913-D1E4" TYPE="vfat" PARTLABEL="Boot500" PARTUUID="9bba9dff-2b7c-4dea-b23c-83ce1cca0a67"
LeNiN ★★
() автор топика

cat /boot/grub/custom.cfg

menuentry 'Gentoo GNU/Linux' {
	insmod gzio
	insmod part_gpt
	insmod fat
	search --no-floppy --fs-uuid --set=root 28B9-4C2C
	linux	/vmlinuz-4.19.44-gentoo root=PARTUUID=530691db-5573-41b2-81e8-d1383aa69981 ro
}
где 28B9-4C2C uuid фат раздела с ядром генту

где PARTUUID=530691db-5573-41b2-81e8-d1383aa69981 ф2фс раздел с гентуй

uuid неработал у меня тольк PARTUUID

vmlinuz-4.19.44-gentoo ядро генту вфате

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: /boot/grub/grub.conf от LeNiN

добавь в /boot/grub/custom.cfg

menuentry 'initramfs-genkernel-x86_64-4.19.44-gentoo' {
	insmod gzio
	insmod part_gpt
	insmod fat
	search --no-floppy --fs-uuid --set=root 6913-D1E4
	linux	/kernel-genkernel-x86_64-4.19.44-gentoo root=PARTUUID=5b6aad3b-5ea9-4a74-9165-dfa42d8a09ed ro
	initrd /initramfs-genkernel-x86_64-4.19.44-gentoo
}
и даже можно перезапустить, лично у меня команд запускать не потребовалось

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)

secureboot

моянеуметь

Deleted
()

может только с первого диска может, то попробуй скопируй туда ядро ядро

Deleted
()

вообще, я бы эту проблему решил просто открыв командную строку grub’а и попытавшись загрузить систему в ручном режиме. это в принципе несложно. у тебя почему-то grub не видит тот диск или раздел, на котором лежит ядро генты. тут несколько вариантов, почему так происходит, либо не хватает модуля какого то ему, либо этот раздел в grub’e называется как то иначе (не hd0,gpt6), либо seсureboot как то чудит - тут я тебе ничего не подскажу кроме как отключить его, либо ещё что то

eternal_sorrow ★★★★★
()
Последнее исправление: eternal_sorrow (всего исправлений: 1)
Ответ на: /boot/grub/grub.conf от LeNiN

Тут мы видим, что GRUB ищет ядро в разделе с номером 6913-D1E4.

fat32 под /boot

В документации Gentoo написано про vmlinuz, но он почему-то не создался в /boot

Там должен был быть симлинк, как я понимаю, а FAT32 этого не умеет. И вообще, зачем FAT32 под /boot? Зачем вообще /boot?

Судя по строке linux /kernel-genkernel-x86_64-4.19.44-gentoo root=/dev/sda3, GRUB обошёлся и без этого симлинка, но проблема в том, что он какого-то лешего не находит раздел.

Для начала попробуй в GRUB нажать c, чтобы зайти в консоль и напиши там ls.

Thetan ★★★
()

Извините, что пропал и не отвечал — был в отпуске.

Я думал что у кого нибудь найдётся готовый рецепт именно для UEFI+Ubuntu+Gentoo.

Постараюсь на днях отписаться тут.

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