LINUX.ORG.RU

virt-manager, EFI - не инсталлируется grub (2)

 , ,


0

1

Читал вики
https://wiki.gentoo.org/wiki/GRUB
там написано, что есть три варианта установки (UEFI with GPT, BIOS with MBR, BIOS with GPT)
В интерфейсе virt-manager выбрал вариант Firmware: UEFI

Читал
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Disks#Creating_the_EFI_System_Partition_.28ESP.29

Вот мой диск:

# gdisk /dev/vda
GPT fdisk (gdisk) version 1.0.9

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/vda: 209715200 sectors, 100.0 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): FAF168F6-2AED-40C2-91A5-D06E0A8F207D
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 209715166
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         8390655   4.0 GiB     EF00  EFI system partition
   2         8390656       209713151   96.0 GiB    8300  Linux filesystem

Command (? for help): i
Partition number (1-2): 1
Partition GUID code: C12A7328-F81F-11D2-BA4B-00A0C93EC93B (EFI system partition)
Partition unique GUID: DB9AD88C-FD3E-4B61-8B22-CC910DAB5121
First sector: 2048 (at 1024.0 KiB)
Last sector: 8390655 (at 4.0 GiB)
Partition size: 8388608 sectors (4.0 GiB)
Attribute flags: 0000000000000000
Partition name: 'EFI system partition'

Command (? for help): i
Partition number (1-2): 2
Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem)
Partition unique GUID: FF6B0957-D60B-46BB-9406-B84AB12544E7
First sector: 8390656 (at 4.0 GiB)
Last sector: 209713151 (at 100.0 GiB)
Partition size: 201322496 sectors (96.0 GiB)
Attribute flags: 0000000000000000
Partition name: 'Linux filesystem'

Command (? for help): q

монтирую его
mount /dev/vda1 /efi

и тут оно мне пишет:

# grub-install --target=x86_64-efi --efi-directory=/efi 
Installing for x86_64-efi platform.
grub-install: error: cannot find a device for /boot/grub (is /dev mounted?).

В chroot я заходил командой arch-chroot /mnt/gentoo с Minimal CD.

Что надо сделать?

UPD:
mount /dev/vda2 /mnt/gentoo/
mount /dev/vda1 /mnt/gentoo/boot/

# time grub-install --efi-directory=/boot
Installing for x86_64-efi platform.
Installation finished. No error reported.

real	0m17,614s
user	0m0,052s
sys	0m0,616s

только сама установка 17.6 секунд. Это тоже долго.

★★★

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

А чем rEFind не устроил? Или даже вообще минималистично можно — EFI STUB.

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

А почему он должен быть mounted именно в /boot? Я же написал, в стартовом посте, что смонтировал его в /efi. И утилите grub-install я об этом сказал.

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

is /dev mounted?

Там ошибка по /dev. Может быть такое, что devfs не смонтирована? При чруте можно сделать это с помощью команды mount --rbind /dev /path/to/chroot/dev из хостовой системы(извне чрута)

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

Так и в исходной системе (загруженной с Minimal CD) /dev/vda1 не примонтирован в /boot. Что поменялось бы?

Но гипотеза неверная в принципе. Команда arch-chroot монтирует всё что надо, задокументирована она тут - https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation#Chrooting

«If using Gentoo’s install media, this step can be replaced with simply: arch-chroot /mnt/gentoo.»

Там в списке команда mount --rbind /dev /mnt/gentoo/dev есть, поэтому я считаю, что arch-chroot тоже делает так.

udev on /mnt/gentoo/dev type devtmpfs (rw,nosuid,noexec,relatime,size=10240k,nr_inodes=4111070,mode=755)

И о том, что я её использовал, я написал в стартовом посте.

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

Про использование arch-chroot я видел, но взглянув на текст ошибки, я предположил, что /dev в итоге не примонтировался внутрь чрута.

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

примонтировался, я вывод mount | grep приложил

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

ага, читай код, дебужь.

Есть же другой подход - опубликовать и подождать пока кто-то следующий в такую ситуацию попадёт и прийдёт на эту страницу через поисковик.

Но авторы LOR препятствуют обмену знаниями, блокируя старые треды (помещая их в архив).

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от Shushundr
livecd / # grub-install --efi-directory=/efi
Installing for x86_64-efi platform.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
grub-install: error: efibootmgr failed to register the boot entry: No such file or directory.
livecd / # l^C
livecd / # mount | grep efi
/dev/sda1 on /efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
livecd / # mount -t efivarfs none /sys/firmware/efi/efivars
livecd / # mount | grep efi
/dev/sda1 on /efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
none on /sys/firmware/efi/efivars type efivarfs (rw,relatime)
livecd / # grub-install --efi-directory=/efi
Installing for x86_64-efi platform.
Installation finished. No error reported.
livecd / # cat /etc/fstab
# /etc/fstab: static file system information.
#
# See the manpage fstab(5) for more information.
#
# NOTE: The root filesystem should have a pass number of either 0 or 1.
#       All other filesystems should have a pass number of 0 or greater than 1.
#
# NOTE: Even though we list ext4 as the type here, it will work with ext2/ext3
#       filesystems.  This just tells the kernel to use the ext4 driver.
#
# NOTE: You can use full paths to devices like /dev/sda3, but it is often
#       more reliable to use filesystem labels or UUIDs. See your filesystem
#       documentation for details on setting a label. To obtain the UUID, use
#       the blkid(8) command.

# <fs>                  <mountpoint>    <type>          <opts>          <dump> <pass>

#LABEL=boot             /boot           ext4            defaults        1 2
#UUID=58e72203-57d1-4497-81ad-97655bd56494              /               xfs             defaults                0 1
#LABEL=swap             none            swap            sw              0 0
#/dev/cdrom             /mnt/cdrom      auto            noauto,ro       0 0
PARTUUID=d27188eb-7dfd-424b-8390-46f5435e42d7       /efi      vfat    noauto,noatime  1 2
UUID=d6410b04-0190-4e45-a0df-b9e4d083fbcf       /       xfs     defaults        0       0
livecd / # grep PLAT /etc/portage/make.conf
GRUB_PLATFORMS="efi-64"

На разбирайся, ни пояснений, ничего дальше не будет.

Запустил в виртуалке VirtualBox в EFI режиме VM.

Скачал minimal, разметил, создал ФС, mount и chroot руками, поставил grub с нужными платформами, настроил /etc/fstab.

Выполнил grub-install …

В начале не смонтировал efivars, я особо не смотрел handbook, только как теперь portage настраивается.

Временную зону, локаль ничего не настраивал, заняло всё это, ну минут 15-20 и то скачивалось пока всё.

На одном из скринов я mount делаю перед chroot, так, как считаю нужным.

У меня всё поставилось. Давай твои скрины.

Вот тебе 2 скрина. В minimal-cd поднял сеть и запустил sshd, всё в openrc. Единственно, что руками dhcpd нужно было запустить и поставить пароль root.

https://ibb.co/1KSbRcK https://ibb.co/YWrCsJH

Ставить ядро, Initramfs я уже не стал, сделаешь - присылай скрины.

EFI раздел по стандарту монтируется в /boot/efi.

Предложение по его монтированию в /efi очень кривое.

Вот я даже в консоли когда писал vim /e и хочу нажать TAB, чтобы допечаталось /etc, но нет там же есть /efi.

Поэтому ESP раздел должен монтироваться в /boot/efi. Сам же grub его там ищет, но я как в Handbook сделал, для теста проверить, что почему же у тебя косяк.

Но анализ проводить не буду - это твоя роль.

Ты же даже verbose не показал.

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

Давай твои скрины.

Зачем тебе мои скрины? Я не понял, что именно ты хочешь узнать.

ни пояснений, ничего дальше не будет.

Ну и отлично. Мне неприятно с тобой общаться.

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

Тебя просят показать –verbose при выполнении grub-install.

Ты отвечаешь:

Есть же другой подход - опубликовать и подождать пока кто-то следующий в такую ситуацию попадёт и прийдёт на эту страницу через поисковик.

Я считаю, что это не нормально.

Я тебе привёл те команды, что я выполнял и те критичные конфиги, что я считаю важны - проверяй как у тебя настроено.

И эта установка тебе ответ в сторону моей компетентности.

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

тебе ответ

Я не спрашивал ничего. Я высказал мнение, основываясь на фактах на тот момент. Да теперь ты узнал новое для тебя и знаешь больше.

Тебя просят показать –verbose при выполнении grub-install.

Мне не просят. Предлагают. Будет время, поковыряю, может быть.

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

Да теперь ты узнал новое для тебя и знаешь больше.

Я бы не сказал, скорее просто заново выполнил. Ничего кардинально нового, кроме копирования из /usr конфигурации portage нет.

Но я узнал, что есть такие как ты, ничего никому не должные и требующие. А в случае чего бегущие в кусты.

Тебе предлагают:

Попробуй запустить с –verbose. Смотри логи, журналы, маны.

А ты бежишь в кусты:

ага, читай код, дебужь.

Есть же другой подход - опубликовать и подождать пока кто-то следую

Ладно что-то слишком много слов. Пора и меру знать.

Удачи.

kostik87 ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.