Grub 2 安装错误:grub-install:错误:/usr/lib/grub/i386-pc/modinfo.sh 不存在。

Abd*_*kil 8 boot grub2 dual-boot uefi

我正在尝试从 lubuntu 16.04 的 live CD 安装 grub2 ,在使用此命令将 grub2安装到 mnt 文件夹后,我正在学习本教程/dev/sda1

sudo mount /dev/sda1 /mnt
sudo mount /dev/sda1 /mnt/boot
sudo mount --bind /dev /mnt/dev
Run Code Online (Sandbox Code Playgroud)

然后更改根目录:

    sudo chroot /mnt
Run Code Online (Sandbox Code Playgroud)

但是当尝试使用安装 grub 时,sudo grub-install /dev/sda我收到此错误:

sudo: unable to resolve host ubuntu
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist.   Please specify --target or --directory.
Run Code Online (Sandbox Code Playgroud)

我尝试从 bios 关闭 uefi 模式,但我认为我的 bios 版本甚至不支持它,因为它是 2005 年的

小智 5

不知道你是否解决了你的问题,所以这是 1 年前。

我最近在 Ubuntu 18.04 中遇到了同样的情况,chroot 到另一个目录并运行 grub-install:

$ chroot /media/cdrom0 grub-install
Run Code Online (Sandbox Code Playgroud)

抛出错误:

grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
Run Code Online (Sandbox Code Playgroud)

最后通过安装 grub-pc 解决了这个错误:

$ sudo apt-get install grub-pc
Run Code Online (Sandbox Code Playgroud)

在此之后,/usr/lib/grub 下的项目从:

grub-mkconfig_lib  x86_64-efi  x86_64-efi_signed
Run Code Online (Sandbox Code Playgroud)

到:

grub-mkconfig_lib  i386-pc  x86_64-efi
Run Code Online (Sandbox Code Playgroud)


Tho*_*ner 5

安装grub-pc-bin

grub-pc似乎是一个元包,它将删除(!)grub-efi-amd64,我猜这会砖化电脑,也许不会立即。

安装apt install grub-pc-bin为我从 efi 系统安装 PC 引导加载程序添加了必要的礼仪。