“이 시스템에서는 EFI 변수가 지원되지 않습니다” 15 노트북에 설치하려고합니다. 이것은 UEFI 기반

아치 리눅스를 새로운 HP Pavillion 15 노트북에 설치하려고합니다.

이것은 UEFI 기반 컴퓨터입니다. 그것에 몇 번의 그네 후, 나는 꽤 멀어졌다. 레거시 모드는 시스템 설정에서 비활성화되어 있으며 레코딩 한 Arch DVD로 EFI 부팅을했으며 Arch Beginner ‘s Guide 및 고급 설치 안내서 를 통해 grub을 설치하는 지점까지 진행했습니다.

chrooted 동안 나는 다음을 실행합니다.

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug

다음을 포함하여 많은 출력을 내 보냅니다.

이 시스템에서는 EFI 변수가 지원되지 않습니다

이 시점에 처음 도착했을 때 실제 문제인지 알지 못하고 설치를 계속했습니다. 머신을 재부팅했을 때 부팅 가능한 매체를 찾을 수없고 머신의 부팅을 거부 한 것으로 나타났습니다. 그 시점에서 UEFI 설정 메뉴로 이동하여 부팅 할 EFI 파일을 선택하면 Arch Linux가 부팅됩니다.

그러나 이제 돌아가서 다시 설치하여 위의 문제를 해결하려고합니다.

GRUB을 올바르게 설치하려면 어떻게해야합니까?



답변

문제는 단순히 efivars커널 모듈이로드되지 않았다는 것입니다.

이것은 다음과 같이 확인할 수 있습니다.

sh-4.2# efivar-tester
UEFI variables are not supported on this machine.

당신이 경우 chroot에 에드 새 설치, exit밖으로 다음 수 efivars:

exit
modprobe efivars

… 그리고 다시 들어 chroot옵니다. 제 경우에는 다음을 의미합니다.

chroot /mnt

그러나 chroot이전과 같은 방식으로 해야 합니다.

다시 들어 오면 다시 테스트하십시오.

efivar-tester

더 이상 오류가보고되지 않으며 이전과 같은 방식으로 GRUB을 설치할 수 있습니다.

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug

답변

UEFI 방법이 아닌 레거시를 사용하여 부팅 한 경우이 오류가 발생합니다. BIOS 메뉴에서 UEFI 부팅 항목을 선택하거나 기본 부팅 방법으로 UEFI를 선택해야합니다.


답변

나는 아주 오래된 실이지만 누군가에게 도움이 될 것입니다. 대부분의 가이드는 chroot 전에 가상 파일 시스템을 마운트하는 동일한 솔루션을 제안합니다.

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

그러나 지금 (efivars / efivarfs 변경과 관련이있을 수 있음)이 루프는 매우 특별한 하위 마운트 지점 하나를 건너 뛰고 /sys/firmware/efi/efivarsefibootmgr / grub이 실패합니다.

대신이 줄을 사용하십시오 :

for i in /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run; do sudo mount -B $i /mnt$i; done

실제 성공 사례 : 바인드 마운트 / sys로 4.14.9-1-ARCH (efivarfs)를 사용하여 Arch Linux 라이브 CD로 저장 한 4.9.0-5 (efivars)의 데비안 (상자에서 uefi를 부팅 할 수 있기 때문에 선택) / 펌웨어 / efi / efivars


답변

Fedora 27을 실행하면서을 마운트해야했습니다 efivarfs. 나는 chrootfs 내에서 이것을했지만 부팅 항목이 표시된 것처럼 여전히 작동하지 않았습니다. efibootmgr그러나 재부팅 후에는 더 이상 부팅되지 않았거나 라이브 OS에서 다시 표시되었습니다.

마지막으로 작동 한 것은 라이브 미디어에서 grub을 사용하여 셸로 떨어 뜨린 다음

linuxefi /vmlinuz-<version> root=/dev/mapper/luks-<uuid> ro
initrdefi /initramfs-<version>.img
boot

시작 했습니다. 부팅 된 정상적인 OS에서 나는 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 가능해야합니다. uefi 가능 하드웨어에서 Linux를 사용 / 설치하려면 gpt가 이미 존재해야합니다. 하드웨어가 오래된 바이오스를 사용하는 경우 uefi에서 gpt / mbr을 빌드 할 수 있지만 둘 다 가능하지는 않습니다.