Ich habe versucht, GRUB unter Linux zu retten. Nach diesem Tutorial konnte ich mich beim Betriebssystem anmelden:
https://www.lisenet.com/2014/grub2-rescue-mode-error-unknown-filesystem/
Ich muss GRUB aktualisieren, um das Problem zu beheben. Wenn ich jedoch grub-install
ausführe, wird folgende Fehlermeldung angezeigt:
$ grub-install /dev/sda grub-install: error: cannot find EFI directory.
Mein Dateisystem enthält sda4
, sda5
und sda6
für das EFI-System, den Linux-Swap bzw. das Linux-Dateisystem.
Ich bin nicht sehr erfahren mit Mount- oder anderen Befehlen.
Antwort
Wenn Sie grub-install Standardmäßig wird davon ausgegangen, dass das EFI-System als / boot / efi
bereitgestellt wird. Dies hängt von Ihrer Distribution ab Wenn das EFI-System gemountet ist und auf einigen Distributionen nach dem Booten nicht gemountet wird.
Überprüfen Sie zunächst, ob / boot / efi mit
mount | grep /boot/efi
gemountet ist
Wenn dies nicht funktioniert, versuchen Sie zunächst Folgendes, um festzustellen, ob es an einer anderen Stelle bereitgestellt ist.
mount | grep /dev/[efi device]
Wenn keine dieser Funktionen funktioniert:
mount /dev/[efi device] /mnt
Führen Sie nun Folgendes aus:
grub-install --efi-directory=[efi dir] grub-mkconfig -o /boot/grub/grub.cfg
wobei [efi dir] entweder / boot / ef ist i oder / mnt und [efi device] ist das Gerät mit der EFI-Systempartition. Wenn Sie es nicht wissen, verwenden Sie den Befehl lsblk -o NAME,PARTTYPE,MOUNTPOINT | grep -i "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"
Kommentare
- Danke, im
grub-install --efi-directory=/boot/EFI
, während ich in/mnt
chroot. - Vielleicht dummes Q, aber ich ' Ich habe ein EFI-Verzeichnis. Woher bekomme ich eines? Ich meine, es soll Dateien enthalten, welcher Befehl kann es neu erstellen?
- @LennartRolland Wenn Sie ein UEFI-kompatibles System haben, wird Ihr Systemlaufwerk GPT-partitioniert sein und eine " UEFI-Systempartition enthalten. " normalerweise die erste Partition und vom Typ EF00. Viele Distributionen werden gemountet Dies ist standardmäßig als / boot / efi möglich, damit der GRUB-Bootloader unter anderem seine Dateien aktualisieren kann. Wenn nicht, müssen Sie es ' selbst mounten und zu fstab hinzufügen Möglicherweise gibt es auch ein UEFI-System, das jedoch den Legacy-Modus verwendet. Dies bedeutet, dass Ihre Partitionen vom Typ msdos sind und Sie ' nicht haben a / boot / efi. Es gibt seltsamere Konfigurationen, die jedoch die meisten davon abdecken.
- Ihre Anweisungen, wenn EFI nicht bereitgestellt ist, sind falsch. Siehe meine Bearbeitung.
mount | grep /dev/sda6
funktioniert nicht '. Wenn EFI nicht bereitgestellt ist, müssen Sie die Partitionen auf Typ überprüfen. - @giusti Wahrscheinlich ist es besser, nur keine spezifischen Gerätenamenreferenzen zu erstellen.
Antwort
Der Grub-Rettungsmodus kann wie folgt behandelt werden:
set root=(hd0,gpt6) set prefix=(hd0,gpt6)/boot/grub insmod normal normal
Geben Sie nach der Anmeldung sudo update-grub && sudo grub-install /dev/sda
.
Kommentare
- Sollte die
grub-install
nicht erledigt sein vor demupdate-grub
? - , als ich den ersten Befehl eingab, bekam ich " bash: Syntaxfehler Nahezu unerwartetes Token `(' "
- @ Another.Chemist: Die angegebenen Befehle sollten gehen Ich denke, auf die interaktive GRUB-Konsole. Das wäre, bevor der Kernel startet. Ihr Fehler sieht so aus, als hätten Sie die Befehle in Bash eingegeben.