opensuse12.3 修复grub



GRUB2 引导丢失

从11.4开始,openSUSE 使用 GRUB2 作为默认的引导程序,修复 GRUB 的方法(SDB:修复 GRUB)不再适用。本页面介绍使用于 GRUB2 的新方法。通常,GRUB2 引导丢失是因为您重装了 Windows 或者其他系统,导致 MBR 被覆盖。简单的修复方法就是要重新安装 GRUB2。

进入救援模式

准备好一张 openSUSE 对应的 DVD 光盘,或者 live USB,最好选择与当前系统相同的版本。开机启动 openSUSE DVD 或者 Live USB,,进入救援模式。等待各种输出结束,看到"login"后,输入用户名"root",直接回车即可进入救援模式,不需要输入密码。

挂载原系统的各分区

首先查看各分区的情况,使用命令:

fdisk -l

列出分区情况。然后将各个分区挂载。例如,假设 sda6 为 /boot 分区,sda7 为 swap 分区,sda8 为 / 分区,sda9 为 /home 分区,我们就可以这样挂载:

mount /dev/sda8 /mnt
mount /dev/sda6 /mnt/boot
mount /dev/sda9 /mnt/home

注意,swap 分区不需要挂载。要先挂在根分区,然后把其他的分区相应的挂在到根分区下。接着,

mount -t proc proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /dev /mnt/dev

这样,所需的挂载就结束了。 再然后

chroot /mnt /bin/bash

chroot到需要修复的系统

重装 GRUB2

首先生成 /boot/grub2/grub.cfg:

grub2-mkconfig -o /boot/grub2/grub.cfg

然后将 GRUB2 安装到 sda:

grub2-install /dev/sda

这里,使用的命令是 grub2-install 而不是 grub-install,其他的发行版比如 Ubuntu 会有所不同,不过明显 openSUSE 这样给出的命令就很明显地指明是 GRUB2 而不是 GRUB。

重装GRUB2需要注意的问题:

我在重新安装的时候出现了如下的错误:

/usr/sbin/grub2-bios-setup: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
/usr/sbin/grub2-bios-setup: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
/usr/sbin/grub2-bios-setup: error: will not proceed with blocklists

最后再论坛上搜索资料,要在安装grub2的时候加上--force选项

具体为:grub2-install --force /dev/sda

退出,重启

这样就已经安装完毕了,接着退出

exit

重启

reboot

进入原来的 openSUSE 系统即可。

你可能感兴趣的:(linux操作系统)