Arch Linux는 부팅 시 /boot/efi를 찾습니다.

Arch Linux는 부팅 시 /boot/efi를 찾습니다.

저는 이중 부팅 Arch Linux와 Windows를 가지고 있습니다.

Windows 업데이트 후 GRUB가 손실되었고 시스템이 grub recovery. 그러나 완전히 시작되지 않고 다음 메시지가 표시됩니다.

filed to listen on Load/Save RF Kill Switch Status /dev/rfkill Match
...    
failed to mount /boot/efi
# Enter recovery mode
...

복구 모드에서 GRUB를 복원하려고 했습니다(wiki는여기):

mount /dev/sda5 /mnt # my Linux system
mount /dev/sda3 /efi # my EFI System partition
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
grub-config -o /boot/grub/grub.cfg

이로 인해 GRUB가 다시 돌아왔고 이제 Arch Linux 또는 Windows를 동일한 방식으로 선택할 수 있게 되었습니다.

그런데 Arch Linux를 선택했는데도 같은 오류 메시지가 나타났습니다 failed to mount /boot/efi. Windows가 정상적으로 시작됩니다.

내용을 확인해 /boot/efi보니 실제로는 비어 있었습니다. 내 initramfs-linux.img, initramfs-linux-fallback.img및 파일 intel-ucode.imgvmlinux-linux.img에 있습니다 /boot/.

하지만 내에서는 /boot/grub/grub.cfg찾아 initrd보고 intel-ucode.img정확히 initramfs-linux-lts.img찾아 보세요 /boot/.

그러다가 Arch 포럼에서 나와 비슷한 질문을 많이 발견했습니다(예:이것). 그러나 문제가 발생하기 전에는 Linux 커널을 업데이트하지 않았으며 Linux 설치에서 어떤 것도 건드리지 않았습니다. 그리고 언급된 글과 다르게 저는 vmlinuz-arch.efi비슷한 내용도 없는 것 같습니다 /boot/.

나는 또한 Arch Wiki를 탐색하는 데 시간을 보냈습니다. 내가 이해한 바로는 GRUB 복구를 다루는 위키 페이지는 일반적으로 내가 이미 시도한 것과 동일한 프로세스를 제안 하지만 arch-iso에서 .arch-chroot/dev/sda5

그래서 몇 가지 질문이 있습니다. 그 중 가장 중요한 질문은: Arch Linux 부팅 프로세스를 어떻게 복원합니까?

또 다른 좀 더 구체적인 것은GRUB 단계가 지났는데 왜 systemd다시 찾으려고 합니까?/boot/efi? GRUB은 시작 항목을 찾지 않습니까? GRUB이 내 Arch Linux initram을 획득한 것 같습니다(적어도 GRUB는 올바른 GRUB 항목을 실행했으며 에 에코 메시지를 추가하여 확인했습니다 /boot/grub/grub.cfg).

더 이상한 점은 나와 /boot/efi이후 로/dev/sda2Windows recovery environment아니요 /dev/sda3이것은 EFI System:

$systemctl status boot-efi.mount
boot-efi.mount --- /boot/efi
Loaded: loaded (/etc/fstab; generated)
Active: Failed (Result: exit-code) ...
Where: /boot/efi
What: /dev/sda2
Docs: man:fstab(5)
      man:systemd-fstab-generator(8)

답변1

Windows 업데이트가 EFI 파티션에 매우 나쁜 짓을 한 것 같습니다.

귀하의 질문에서 볼 수 있는 주요 문제는 systemd가 /boot/efi를 찾을 수 없다는 것입니다.

이는 구성 파일을 사용하여 설치됩니다 /etc/fstab.

어떤 이유로든 /etc/fstab의 /boot/efi 항목은 더 이상 존재하지 않는 파일 시스템을 찾고 있습니다. 이는 EFI 파티션을 다시 포맷하는 것과 일치하며 grub을 다시 설치해야 하는 이유를 설명합니다.

이 명령을 사용하여 blkid(루트로 실행) EFI 파티션의 UUID를 찾을 수 있습니다. 그런 다음 /etc/fstab에서 편집할 수 있습니다. 이렇게 하면 문제가 해결될 것입니다.


EFI는 유틸리티가 런타임에 EFI를 읽고 업데이트할 수 있도록 설치됩니다.

관련 정보