[ 已解决 ]opensuse13.1 grub2 修复问题

在一次 WIN 出问题,选了一个“win 自动修复“功能后发现我的 grub2 不见了,开机直接 WIN。所以想恢复一下 GRUB2,按照这个网站的方式
进行修复,但是我进行到 fdisk -l 后,分不清哪个是 SWAP ,/ 还有 /home 分区,而且也没有网站里面提到的 /boot 分区,请问我应该怎么做?

2014 年 03 月 24 日
新问题,三楼恋衣之曲为我解答的我满心欢喜觉得特别对这次,但是我错了,我发现计算机的博大精深是我永远不能搞懂的…现在上图



过程中没有挂载 /boot,到 chroot /mnt 这一步后光标前变成 Rescue:/>, 而不是 Rescue:~
然后下一下就出错了,我就各种不会了…… :question: 好无语啊,我是那么喜欢和努力去用 LINUX, 难道就用不了吗?我现在还担心这过程中出了什么错,我开机都出问题了肿么办?

可以有一个叫做 grub for dos 的软件,可以实现重装 win 之后的系统引导

Sent from my RM-913_apac_prc_213 using Tapatalk

输入 fdisk -l 后,看最右边的 System 那一列,Linux swap / Solaris 那一行代表 swap ,而 Linux 代表其它 Linux 分区,如 / 分区、/home 分区、/boot 分区等等。

假定你的系统上有 / 、/home 和 /boot 三个分区,通过上面的命令我们可以大致知道这三个分区的设备号,假定为 /dev/sda5 、/dev/sda6 、/dev/sda7 ,但我们不知道其具体的对应关系。接下来,我们把 sda5 挂载到 /mnt 下,输入 mount /dev/sda5 /mnt ,然后输入 ls /mnt 就能查看 sda5 上的内容,通过 sda5 上的内容我们可以判断出 sda5 是属于哪个分区,然后输入 umount /mnt 将 sda5 卸载。sda6 和 sda7 同样按照前面的方法可以判断出它对应的分区。

假定我们得出的结果是 / 对应 /dev/sda5 ,/home 对应 /dev/sda6 ,/boot 对应 /dev/sda7 ,那么就可以按照这个 zh.opensuse.org/index.php?title=%E4%BF%AE%E5%A4%8DGRUB2&variant=zh-cn 教程来了。

swap 分区不用挂载,可以不用管它。
首先,我们必需先挂载 / 分区,

mount /dev/sda5 /mnt

然后再挂载 /boot 、/home 等其它分区,

mount /dev/sda6 /mnt/home
mount /dev/sda7 /mnt/boot

如果你没有 /boot 分区,那就不挂载它就行了,余下的分区照旧挂载,接着,

mount --bind /dev /mnt/dev
chroot /mnt
mount /proc
mount /sys
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sda
exit
reboot
1赞

非常感谢,超级详细的答案,醍醐灌顶啊!昨天我用 fdisk -l 查看的结果中我能看到 sda4-7, 其中 sda4 的磁盘范围是 5-7 的总合,我把它误以为是 /boot 分区,结果返回什么 superblock,这么看来我是没有 /boot 单独分区了,那么就不用挂载它了,谢谢你~

谢谢,如果实在不行,我就用 grub for dos

还应加一个 mount --bind /sys /mnt/sys

就是将当前系统资源给它,不然无法正常生成 grub.cfg

1赞