双系统恢复linux的grub2系统引导(附带windos、linux双系统安装简要攻略)

回眸只為那壹抹淺笑 提交于 2019-12-03 19:25:18

00x0

   适用情况(亲测有效):

    1.双系统,windows重新安装后无法进入grub引导启动linux

    2.删除或者重装linux后进入了grub rescue>模式启动不了系统(此情况网上有在此模式下set修改位置修复的方法,但是我都失败了。下面方法有效

    

00x1

        找一张linux的安装盘,从安装盘启动(安装系统大家肯定会的)。选择live CD方式启动(不是真的安装系统)。

    我们要知道本机linux的分区挂载情况,如果只有/分区那么可以跳过此步骤,转入00x2

    首先需要知道自己linux的分区挂载情况,如果还能进入本机的linux系统那么执行下面两个命令查看:

fdisk -l
df

        输出入下图:

        如果进不去系统可以在live cd中挂载各个分区,然后打开看下目录文件确定原来linux系统的挂载情况。

        此处列出我的linux挂载情况:

磁盘分区    挂载点

sda6        /home

sda9        /

sda10        /usr


00x2

        开始进入正式工作,通俗来说(我小白一个不追究根本了,能理解就行),利用chroot可以切换根目录,以此来运行本机的linux系统,然后重建grub。(一下命令都要root用户执行)

        挂载需要的目录:

#下面吧chroot需要用到的目录挂载到/mnt下作为根目录
#把本机系统的/目录sda9挂载到live cd的/mnt
mount /dev/sda9 /mnt

#bind选项可以挂载目录到一个目录,不需要挂载整个设备块
#将一些必要的设备挂载到/mnt下
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

#如果本机linux只有一个/分区那么下面命令可以跳过
#如果/usr挂载点独立分区那么也需要挂载一些,否则chroot后是找不到/bin/sh运行命令的(如下图)
mount /mnt/dev/sda10 /mnt/usr



#chroot切换根目录到/mnt,然后就可以运行本机linux系统
chroot /mnt
#运行此命令后注意提示符已经从~#变为/#(如下图)

注意:如果没有挂载/usr将会出现如下图错误,那么直接输入命令

#此时已经执行chroot变为/#后
mount /dev/sda10 /usr

        如果没有出现上图错误,那么此时已经进入本机的linux系统开始恢复grub:

#我的linux在硬盘sda,要讲grub写入此硬盘
grub-install /dev/sda
grub-install --recheck /dev/sda
update-grub
exit
#此时输出可以看到已经找到两个系统的位置信息,重建成功,如上图:

        接下来按挂载时候的倒序卸载设备和目录

如果出现target is busy可以忽略
umount /mnt/usr
umount /mnt/sys
umount /mnt/proc
umount /mnt/dev
umount /mnt
所有已经完毕,可以重启了
reboot

        现在看到grub了吧!!!


 原版参考资料

00x3

    附上:windos、linux双系统安装简要攻略

    1、如果是先安装windows 7在安装linux的话,安装完linux都会提示写入grub引导,选择yes就行。启动能进windows和linux。

    2、如果先安装的linux在安装windows的话,启动项是没有linux的。解决办法是在windows中安装easyBCD然后添加linux的启动项。

    easybcd使用方法:

        1、进入“添加新条目”:选择相应的类型,和linux系统的/或者/boot所在分区(可以选择自动)

         2、进入“编辑引导菜单”:调整启动顺序和等待时间


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!