Я пытаюсь установить Arch Linux на новый (и очень дрянной) ноутбук HP Pavillion 15.
Это машина на основе UEFI. После нескольких попыток мне удалось продвинуться довольно далеко. Устаревший режим отключен в настройках системы, и я загрузил EFI на Arch DVD, который я записал, и прошел через Руководство для начинающих Arch и более расширенное Руководство по установке до того момента, когда я устанавливаю grub.
В то время как chroot
Эд, я выполняю:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug
Это излучает тонну продукции, в том числе:
Переменные EFI не поддерживаются в этой системе
В первый раз, когда я добрался до этой точки, я продолжил установку, не зная, действительно ли это было проблемой. Оказалось, что когда я перезагрузил машину, загрузочный носитель не был найден, и машина отказалась загружаться. В тот момент я смог зайти в меню настроек UEFI и выбрать файл EFI для загрузки, и Arch Linux загрузится.
Но сейчас я возвращаюсь и переустанавливаю снова, пытаясь решить проблему выше.
Как я могу заставить GRUB правильно установить?
modprobe efivarfs
работает, проблема, описанная ОП, сохраняется. может быть, этот ответ нуждается в обновлении? У меня полностью заканчиваются идеи.modprobe efivars
даетmodprobe: FATAL: Module efivars not found in directory /lib/modules/4.16.3-301.fc28.x86_64
(недавно установленный живой USB)Вы получите эту ошибку, если вы загрузились, используя устаревший, а не метод UEFI. Необходимо убедиться, что вы выбрали либо пункт загрузки UEFI в меню BIOS, либо выберите UEFI в качестве метода загрузки по умолчанию.
источник
Я знаю, что это очень старая тема, но, возможно, поможет кому-то. Большинство руководств предлагают такое же решение для монтирования виртуальных файловых систем перед chroot:
Но теперь (возможно, из-за изменений в efivars / efivarfs) этот цикл пропускает одну очень особую под-
/sys/firmware/efi/efivars
точку монтирования - и efibootmgr / grub завершается ошибкой.Так что используйте эту строку вместо:
Фактическая история успеха: Debian с 4.9.0-5 (efivars), сохраненный Arch Linux live cd (выбран только потому, что может загружать uefi из коробки) с 4.14.9-1-ARCH (efivarfs) просто с помощью bind-mount / sys / прошивки / EFI / efivars
источник
Запустив Fedora 27, мне нужно было смонтировать
efivarfs
. Я сделал это внутри chrootfs, однако это все еще не работало, так как загрузочная запись была показана сefibootmgr
- но после перезагрузки она не загружалась ни разу, и не была показана снова в живой ОС.То, что в итоге сработало, использовало grub из live-среды, переместилось в оболочку и вошло.
linuxefi /vmlinuz-<version> root=/dev/mapper/luks-<uuid> ro initrdefi /initramfs-<version>.img boot
Из обычной загруженной ОС я мог работатьgrub2-install
безchroot
, и это сработало.Я не уверен, была ли это просто проблема с моим BIOS, или все же есть что-то более общее неправильное, но именно это заставило
grub2-install
работать без сообщения об ошибке.# Open encrypted root partion cryptsetup luksOpen /dev/sda4 a4 mount /dev/mapper/a4 /mnt mount /dev/sda2 /mnt/boot mount -t proc proc /mnt/proc mount -t sysfs sys /mnt/sys mount -o bind /dev /mnt/dev mount -t devpts pts /mnt/dev/pts/ mount -o bind /etc/resolv.conf /mnt/etc/resolv.conf chroot /mnt # run inside the chroot: mount /dev/sda1 /boot/efi mount -t efivarfs efivarfs /sys/firmware/efi/efivars grub2-install
источник
Ты не можешь! Сборка и установка - это две разные вещи, машина, на которой вы строите, должна поддерживать UEFI. Если вы хотите использовать / установить linux на оборудовании с поддержкой uefi, gpt должен уже существовать. Вы можете собрать gpt / mbr на uefi, но не на обоих, если ваше оборудование использует старый BIOS.
источник