在已挂载的文件系统上安装 grub

在已挂载的文件系统上安装 grub

我已经启动了救援 Linux(init ram fs),并安装/dev/sda1/mnt/sda1

/dev/sda1是一个Linux分区,但/dev/sda没有mbr。

如何在已挂载的文件系统上安装 grub /mnt/sda1

我试过:

mount /dev/sda1 sda1/
mount -t proc /proc proc/
mount -t sysfs sysfs sys
chroot .

但是,当我这样做时grub-install /dev/sda,我收到此错误:

Installing for i386-pc platform.
grub-install: error: failed to get canonical path of `/dev/sda1'.

答案1

也许您应该尝试其中一种选择。

选项1:如果您能够登录系统,请尝试安装并运行启动修复。

  • 打开终端并安装 Boot Repair:

sudo add-apt-repository ppa:yannubuntu/boot-repair

sudo apt-get 更新

sudo apt-get 安装启动修复

  • 您现在可以在 dash 上找到它。从那里运行它并按“推荐修复”按钮。
  • 重新启动系统并查看 Grub 是否恢复正常。

选项 2:尝试通过 Live CD 恢复 Grub

  • 使用带有 Ubuntu 映像(与您的操作系统相同的版本)的闪存驱动器创建可启动的 USB 设备。

  • 从它启动并选择“安装前试用 Ubuntu”。

  • 从您的实时 Ubuntu 桌面打开终端。

  • 安装 Ubuntu 安装的分区。如果您不确定
    ,请启动 GParted(包含在 Live CD 中)并找到它
    。它通常是 EXT4 分区。将XY带有驱动器
    号和分区号,例如:sudo mount /dev/sda1 /mnt

    现在,请按照以下说明操作:

sudo 挂载 /dev/sdXY/mnt

sudo mount --bind /dev /mnt/dev &&

sudo mount --bind /dev/pts /mnt/dev/pts &&

sudo mount --bind /proc /mnt/proc &&

sudo mount --bind /sys /mnt/sys

sudo chroot/mnt

  • 现在安装、检查并更新 grub。现在只需要添加
    驱动器号(通常是 a)来替换X, 例如:grub 安装 /dev/sda或者grub-install –重新检查/dev/sda

    请按照以下说明操作:

grub 安装 /dev/sdX

grub-install --recheck /dev/sdX

更新 grub

  • 现在,Grub 应该回来了。只需退出并卸载所有内容:

退出 && sudo umount /mnt/sys && sudo umount /mnt/proc && sudo umount /mnt/dev/pts && sudo umount /mnt/dev && sudo umount /mnt

现在,重新启动系统并查看是否有效。

我参考了这篇文章并得出了这个答案: https://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd

相关内容