文章

通过LiveCD修复GRUB2

昨天重新安装了Ubuntu,但是grub2出现问题,导致错误Error 15,压根进不了grub command line,没有办法,只好修复Grub2,无奈网上的内容多是修复Grub的,很少关于通过liveCD修复grub2的,在搜索google之后,发现了该文,特地翻译出来,给有需要的朋友们使用。

首先,需要Ubuntu LiveCD,并且从LIVECD引导系统。

打开一个终端窗口,输入下面的命令

1
$ sudo fdisk -l

查看你的硬盘设备的map,记住Ubuntu在哪个设备上安装,比如我的Ubuntu安装于/dev/sdb1,而/dev/sda是Windows,下面的所有命令都是以这个例子为准的。之后,挂载/dev/sdb1设备.

1
$ sudo mount /dev/sdb1 /mnt

假如你的/boot分区使用了单独的分区,则还需要挂载这个分区,比如/dev/sdb2。一定要仔细查看过fdisk的输出内容,千万别搞错了。

1
$ sudo mount /dev/sdb2 /mnt/boot

现在让我们来挂载其他的设备,

1
$ sudo mount –bind /dev/mnt/dev

现在chroot到你的系统。chroot进去的系统,可以执行很多命令,包括安装,删除软件,修改各种文件。它提供了与特殊的根文件系统交互的shell。

1
$ sudo chroot /mnt

应该是以root的权限chroot到你的根文件系统,之后就以root的权限执行命令,不需要sudo了。

现在应该编辑/etc/default/grub文件,使其适合你的系统。我只是打开看了一下,并没有做任何修改。

1
# vi /etc/default/grub

当完成编辑之后,需要运行update-grub命令创建配置文件.

1
# update-grub

将grub2安装到MBR,接下来需要运行 grub-install /dev/sdb

1
# grub-install /dev/sdb

如果发现了任何错误信息,尝试一下 grub-install –recheck /dev/sdb

1
# grub-install –recheck /dev/sdb

按Ctrl+D退出Chroot环境,退回至LIVECD的终端窗口,接下来卸载所有刚才挂载的卷。

1
2
$ sudo umount /mnt/dev
$ sudo umount /mnt

然后重启系统,grub2应该就恢复正常了。

本文由作者按照 CC BY 4.0 进行授权