Linux에서 GRUB를 구출하려고 합니다. 이 튜토리얼을 따라 OS에 로그인할 수 있었습니다.
https://www.liisenet.com/2014/grub2-rescue-mode-error-unknown-filesystem/
이 문제를 해결하려면 GRUB을 업그레이드해야 했습니다. 그러나 실행하면 grub-install
오류가 발생합니다.
$ grub-install /dev/sda
grub-install: error: cannot find EFI directory.
내 파일 시스템에는 각각 EFI 시스템, Linux 스왑 영역 및 Linux 파일 시스템을 나타내는 sda4
, sda5
및 가 포함되어 있습니다.sda6
저는 mount나 다른 명령을 사용해 본 경험이 없습니다.
답변1
당신이 달릴 때그럽 설치기본적으로 EFI 시스템이 /boot/efi로 마운트되어 있다고 가정합니다.
이는 EFI 시스템을 설치하는 배포판에 따라 다르며 일부 배포판에서는 부팅 후 EFI 시스템이 설치되지 않습니다.
먼저 /boot/efi가 마운트되었는지 확인하세요.
mount | grep /boot/efi
그래도 문제가 해결되지 않으면 먼저 다음을 시도하여 다른 곳에 설치되어 있는지 확인하세요.
mount | grep /dev/[efi device]
이들 중 아무것도 작동하지 않는 경우:
mount /dev/[efi device] /mnt
이제 다음을 실행하세요.
grub-install --efi-directory=[efi dir]
grub-mkconfig -o /boot/grub/grub.cfg
여기서 [efi dir]은 /boot/efi 또는 /mnt이고 [efi device]는 EFI 시스템 파티션이 있는 장치입니다. 사용할 명령어를 모르는 경우lsblk -o NAME,PARTTYPE,MOUNTPOINT | grep -i "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"
답변2
efi 디렉터리는 다음 위치에 있어야 합니다./시작/efi/
어떤 파티션 efi가 있는지 알려면 파티션 테이블을 확인해야 합니다. 따라서 메인 디스크가 /dev/sda라면 다음과 같습니다.
fdisk -l /dev/sda
Device Start End Sectors Size Type
/dev/sda1 2048 309247 307200 150M EFI System
/dev/sda2 309248 964843519 964534272 459.9G Linux filesystem
/dev/sda3 964843520 1000214527 35371008 16.9G Linux filesystem
유사한 콘텐츠에 대한 검색결과EFI 시스템또는EFI(FAT-12/16/32)
파티션 번호(이 경우 sda1)를 알고 나면 이를 마운트해야 합니다./시작/efi.
어떤 이유로 /boot/efi/ 디렉터리가 존재하지 않으면 디렉터리를 생성하십시오:
mkdir /boot/efi
그리고 efi를 이 디렉터리에 마운트합니다.
mount /dev/sda1 /boot/efi/
그게 전부라고 생각합니다. 디스크에 grub을 설치할 수 있어야 합니다.
답변3
방금이 문제가 발생했습니다. 복구 USB 스틱을 부팅했습니다. 나에게 도움이 된 수정 사항을 설명하겠습니다.
검색해 보면 gdisk -l /dev/sda
원래 루트 파티션이 이라는 것을 알 수 있습니다 /dev/sda2
. 이에 액세스하려면 다음을 입력합니다.sudo mount /dev/sda2 /mnt
여태까지는 그런대로 잘됐다. 무엇인지 먼저 설명하자면아니요작업한 다음 솔루션을 선택하세요. 일부 페이지에서는 chroot /mnt
then 을 제안 grub-install
하지만 오류가 발생합니다 grub-install: error: cannot find EFI directory.
.
다른 제안에 따라 EFI 파티션이 이와 같은 것을 보고 다시 chroot를 /dev/sda1
시도했습니다 sudo mount /dev/sda1 /mnt/boot/efi
. 이제 grub은 /dev
나 때문에 실종되었다고 불평합니다 mount --bind /dev/ /mnt/dev
. ...하지만 그럽은 다른 것에 대해 불평했습니다. 상황이 걷잡을 수 없이 눈덩이처럼 불어났습니다. chroot
대답이 아닙니다.
작동하는 것은 다음과 같습니다.grub-install -d /mnt/usr/lib/grub/x86_64-efi --boot-directory=/mnt/boot /dev/sda
이 플래그는 필수입니다. 그렇지 않으면 grub은 올바른 콘텐츠가 포함되지 않은 복구 이미지를 -d
사용하려고 시도합니다 ./usr/lib/grub/i386-pc
응, 응! 이제 시스템이 다시 부팅됩니다!
답변4
sudo apt-get --purge autoremove grub-efi-amd64-signed