Jag försökte rädda GRUB i Linux. Jag kunde logga in i operativsystemet efter den här självstudien:

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

Jag måste uppgradera GRUB för att lösa problemet. Men när jag kör grub-install får jag ett fel:

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

Mitt filsystem innehåller sda4, sda5 och sda6 för EFI-systemet, Linux-swap respektive Linux-filsystem.

Jag har inte särskilt erfarenhet av att använda mount eller andra kommandon.

Svar

När du kör grub-install antar som standard att EFI-systemet är monterat som / boot / efi

Det beror på din distribution där EFI-systemet är monterat och vid vissa distributioner är det inte monterat efter start.

Kontrollera först om / boot / efi är monterat med

mount | grep /boot/efi 

Om det inte fungerar först försök med följande för att se om det är monterat någon annanstans.

mount | grep /dev/[efi device] 

Om inget av dessa arbete gör:

mount /dev/[efi device] /mnt 

Kör nu:

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

där [efi dir] är antingen / boot / ef i eller / mnt och [efi-enhet] är enheten med EFI-systempartitionen. Om du inte vet, använd kommandot lsblk -o NAME,PARTTYPE,MOUNTPOINT | grep -i "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"

Kommentarer

  • Tack, i grub-install --efi-directory=/boot/EFI när jag snurrar till /mnt.
  • Kanske dum Q men jag don ' t har en EFI dir. Var får jag en? Jag menar att den ska innehålla filer, vilket kommando kan återskapa den?
  • @LennartRolland Om du har ett UEFI-kompatibelt system kommer din systemdisk att vara GPT-partitionerad och innehåller en " UEFI-systempartition. " vanligtvis den första partitionen och kommer att vara av typen EF00. Många distributioner kommer att monteras detta som standard som / boot / efi för bland annat att låta GRUB-startladdaren uppdatera sina filer. Om inte du ' måste du montera den själv och lägga till den i fstab. kan också ha ett UEFI-system men det använder det äldre läget vilket betyder att dina partitioner kommer att vara msdos-typ och du kommer att ha ' a / boot / efi. Weirder-konfigurationer finns men det täcker majoriteten av dem.
  • Dina instruktioner om EFI inte är monterade är felaktiga. Se min redigering. mount | grep /dev/sda6 fungerar inte '. Om EFI inte är monterat måste du kontrollera partitionerna för typ.
  • @giusti Förmodligen bättre att bara inte göra specifika enhetsnamnreferenser.

Svar

Grub-räddningsläge kan behandlas som

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

När du har loggat in anger du sudo update-grub && sudo grub-install /dev/sda.

Kommentarer

  • Skulle grub-install inte vara gjort före update-grub?
  • när jag skrev det första kommandot fick jag " bash: syntaxfel nära oväntad token `(' "
  • @ Another.Chemist: kommandona som ges bör gå till GRUB interaktiva konsol, tror jag. Det skulle vara innan kärnan startar. Ditt fel ser ut som om du har skrivit in kommandona i Bash.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *