저는 이중 부팅 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.img
은 vmlinux-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/sda2
Windows 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를 읽고 업데이트할 수 있도록 설치됩니다.