多系统进入Ubuntu时的Grub Rescue

本文发布时间: 2019-Mar-22
当windows和Ubuntu共存时,Ubuntu会自带一个Grub系统引导,你可以从里面选择开启哪一个系统但是,如果我们在windows里面进行了磁盘分区的话,就会重新整理磁盘信息,Grub获得的系统启动盘就会发生改变,如果windows在/dev/sda1启动、Ubuntu在/dev/sda8启动的话,分区所造成的磁盘启动可能会把Ubuntu的启动改到了随机的一个区,如/dev/sda2等,反正改后的区里不会包括Grub启动文件,这个时候,我们就需要手动将Grub启动文件设置一下,让Ubuntu能够找到它的启动区。下面直接进行一系列操作来解决Grub的丢失问题吧首先说明,在Grub Rescue下能用的命令很少,安装下面的方法一步步来即可:第一步:查找Grub启动磁盘。01.lsls执行这个命令后会出现你的磁盘里目前存在所有分区,像我的磁盘有如下的分区:(hd0,msdos1) (hd0,msdos5) (hd0,msdos6) (hd0,msdos7) (hd0,msdos8)...第二步:查找非NTFS文件系统的分区。01.ls (hd0,msdos1)/ls (hd0,msdos1)/执行它之后会出现一定的信息,如果是file not kown之类的话,就说明这个分区并不是我们想找的,一直不停的找剩下的分区,知道出现其他的信息,根据ubuntu的版本不同,可能会出现/和/boot都能识别,也可能只有/boot才能识别,反正出现两个都能识别的时候要都试试,拿我的磁盘来说,(hd0,msdos8)和(hd0,msdos9)都识别了第三步:查找Grub文件位置01.ls (hd0,msdos8)/boot/grubls (hd0,msdos8)/boot/grub这个命令可以找到grub,但是奇怪的是,我的(hd0,msdos9)里也有一个grub,于是我就先试了一下msdos8里的grub内容,执行第四步第四步:设置grub启动01.grub rescue>set root=(hd0,msdos8)02.grub rescue>set prefix=(hd0,msdos8)/boot/grub03.grub rescue>insmod /boot/grub/normal.modgrub rescue>set root=(hd0,msdos8)grub rescue>set prefix=(hd0,msdos8)/boot/grubgrub rescue>insmod /boot/grub/normal.mod按照正常的情况,执行insmod的时候就可以了,但是我的磁盘里貌似没有把mod文件放到msdos8下,执行结果提示文件未找到,于是我就试着设置为msdos9,可是我的grub是直接放到msdos9里面的根目录下的,所以我又进行了如下命令01.grub rescue>set root=(hd0,msdos9)02.grub rescue>set prefix=(hd0,msdos9)/grub03.grub rescue>insmod grub/normal.modgrub rescue>set root=(hd0,msdos9)grub rescue>set prefix=(hd0,msdos9)/grubgrub rescue>insmod grub/normal.mod结果没有任何提示,肯定是成功了第五步:显示丢失的Grub菜单01.grub rescue>normalgrub rescue>normal这样就可以直接显示出Grub菜单,然后可以进入ubuntu系统了第六步:修复Grub01.sudo update-grub02.sudo grub-install /dev/sdasudo update-grubsudo grub-install /dev/sdasda是一定不能加上1,5之类的号码的,那个是磁盘号,不是分区号到这里重启一下就可以恢复如初了。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:11pm
栏目列表