Nie można znaleźć katalogu EFI: problem z grub-install

14

Próbowałem uratować GRUB w Linuksie. Udało mi się zalogować w systemie operacyjnym, wykonując ten samouczek:

https://www.lisenet.com/2014/grub2-rescue-mode-error-unknown-filesystem/

Muszę zaktualizować GRUB, aby rozwiązać problem. Jednak po uruchomieniu pojawia grub-installsię błąd:

$ grub-install /dev/sda
grub-install: error: cannot find EFI directory.

Mój system plików zawiera sda4, sda5aw sda6przypadku systemu EFI odpowiednio Linux Swap i system plików Linux.

Nie mam dużego doświadczenia w używaniu polecenia mount ani innych poleceń.

krishnakant
źródło

Odpowiedzi:

11

Po uruchomieniu grub-install domyślnie zakłada się, że system EFI jest montowany jako / boot / efi

Zależy to od dystrybucji, w której zamontowany jest system EFI, a od niektórych dystrybucji nie jest on montowany po uruchomieniu.

Najpierw sprawdź, czy zamontowano / boot / efi

mount | grep /boot/efi

Jeśli to nie zadziała, najpierw wykonaj następujące czynności, aby sprawdzić, czy jest on zamontowany w innym miejscu.

mount | grep /dev/[efi device]

Jeśli żadna z tych czynności nie:

mount /dev/[efi device] /mnt

Teraz uruchom:

grub-install --efi-directory=[efi dir]
grub-mkconfig -o /boot/grub/grub.cfg

gdzie [katalog efi] to / boot / efi lub / mnt, a [urządzenie efi] to urządzenie z partycją systemową EFI. Jeśli nie wiesz, użyj polecenialsblk -o NAME,PARTTYPE,MOUNTPOINT | grep -i "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"

jdwolf
źródło
2
Dzięki, w grub-install --efi-directory=/boot/EFIjak chroot do /mnt.
krishnakant
Może głupie Q, ale nie mam EFI reż. Gdzie dostanę jeden? Mam na myśli, że powinien on zawierać pliki, które polecenie może go odtworzyć?
Lennart Rolland
@ LennartRolland Jeśli masz system zgodny z UEFI, wówczas dysk systemowy zostanie podzielony na partycje GPT i będzie zawierał „partycję systemową UEFI”. zwykle pierwsza partycja i będzie typu EF00. Wiele dystrybucji zainstaluje to domyślnie jako / boot / efi, aby między innymi umożliwić programowi ładującemu GRUB aktualizację swoich plików. Jeśli nie, musisz go zamontować i dodać do fstab. Możesz także mieć system UEFI, ale używa on trybu starszego typu, co oznacza, że ​​twoje partycje będą typu msdos i nie będziesz mieć / boot / efi. Istnieją konfiguracje Weirdera, ale obejmuje to większość z nich.
jdwolf
Twoje instrukcje, jeśli EFI nie jest zamontowany, są błędne. Zobacz moją edycję. mount | grep /dev/sda6nie działa Jeśli EFI nie jest zamontowany, musisz sprawdzić partycje pod kątem typu.
giusti
@giusti Prawdopodobnie lepiej, aby po prostu nie podawać określonych nazw urządzeń.
jdwolf,
1

Tryb ratowania gruba można traktować jako

set root=(hd0,gpt6)
set prefix=(hd0,gpt6)/boot/grub
insmod normal
normal

Po zalogowaniu się wprowadź sudo update-grub && sudo grub-install /dev/sda.

defaltować
źródło
Czy grub-installnie powinno się to zrobić przed update-grub?
niebezpieczeństwo89