Tidak dapat menemukan direktori EFI: masalah dengan grub-install

14

Saya mencoba menyelamatkan GRUB di Linux. Saya bisa masuk di OS setelah tutorial ini:

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

Saya harus memutakhirkan GRUB untuk memperbaiki masalah. Namun, ketika saya menjalankan grub-install, saya mendapatkan kesalahan:

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

Sistem file saya masing-masing berisi sda4,, sda5dan sda6untuk sistem EFI, Linux swap, dan sistem file Linux.

Saya tidak terlalu berpengalaman menggunakan mount atau perintah lain.

krishnakant
sumber

Jawaban:

11

Ketika Anda menjalankan grub-install secara default, ini mengasumsikan sistem EFI di-mount sebagai / boot / efi

Tergantung pada distribusi Anda di mana sistem EFI dipasang dan pada beberapa distribusi itu tidak dipasang setelah boot.

Pertama periksa apakah / boot / efi sudah terpasang

mount | grep /boot/efi

Jika itu tidak berhasil, cobalah yang berikut untuk melihat apakah sudah terpasang di tempat lain.

mount | grep /dev/[efi device]

Jika tidak satu pun dari pekerjaan itu yang berfungsi:

mount /dev/[efi device] /mnt

Sekarang jalankan:

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

di mana [efi dir] adalah / boot / efi atau / mnt dan [efi device] adalah perangkat dengan partisi sistem EFI. Jika Anda tidak tahu, gunakan perintahlsblk -o NAME,PARTTYPE,MOUNTPOINT | grep -i "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"

jwwolf
sumber
2
Terima kasih, pada grub-install --efi-directory=/boot/EFIsaat saya chroot ke /mnt.
Krishnakant
Mungkin bodoh Q tapi saya tidak punya dir EFI. Di mana saya bisa mendapatkannya? Maksud saya itu seharusnya berisi file, perintah mana yang bisa membuatnya kembali?
Lennart Rolland
@LennartRolland Jika Anda memiliki sistem yang kompatibel UEFI maka drive sistem Anda akan dipartisi GPT dan berisi "Partisi Sistem UEFI." biasanya partisi pertama dan tipe EF00. Banyak distribusi akan me-mount ini secara default sebagai / boot / efi ke antara lain memungkinkan boot loader GRUB untuk memperbarui file-nya. Jika tidak, Anda harus memasangnya sendiri dan menambahkannya ke fstab. Anda mungkin juga memiliki sistem UEFI tetapi menggunakan mode legacy yang berarti partisi Anda adalah tipe msdos dan Anda tidak akan memiliki / boot / efi. Konfigurasi yang lebih aneh ada tetapi yang mencakup sebagian besar dari mereka.
jdwolf
Instruksi Anda jika EFI tidak dipasang salah. Lihat hasil edit saya. mount | grep /dev/sda6tidak bekerja Jika EFI tidak dipasang, Anda harus memeriksa jenis partisi.
giusti
@giusti Mungkin lebih baik untuk tidak membuat referensi nama perangkat tertentu.
jdwolf
1

Mode penyelamatan Grub dapat diperlakukan sebagai

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

Setelah Anda masuk, masukkan sudo update-grub && sudo grub-install /dev/sda.

defalt
sumber
Haruskah grub-installtidak dilakukan sebelum update-grub?
hazard89