我已经启动了救援 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