出现这种情况有好几种原因:
1.安装双系统后,在win上删除了ubuntu分区;
2.在win上进行了磁盘分区或删除了逻辑分区(比如删除了D盘)。
如果是因为想重装ubuntu系统而删除了其分区后出现的这种情况,直接插U盘重启按F2键进行Ubuntu重装就好了,安装方法请看我的博客。
如果是其它情况,要保留系统里的重要文件,就需要进行启动引导项修复。方法如下:
1. 用 ls 命令查看所有盘符:
grub rescue> ls
这时你会看到返回的所有盘符,比如:
(hd0) (hd0,msdos2) (hd0,msdos5) …… (hd1) (hd1,msdos1) …
上面的 hd0, hd1表示你的电脑上有两个硬盘,0和1分别是硬盘编号。(hdn,msdosm)是指不同硬盘上的分区,其中n和m指确切的数字。
2. 找启动引导文件grub.cfg所在的分区:
我们在装ubuntu系统时,一般会给启动引导项划分一个名为 “boot/”的分区,在这个分区里存放系统启动引导项。如果没有划分这个分区或者不记得有没有划分了也不要紧,请接着看:
(1)如果有划分“boot/”分区,那么grub.cfg文件在某个磁盘分区的(hdn,msdosm)/grub目录下,反复执行命令:
ls (hd0,msdos1)/grub
ls (hd0,msdos2)/grub
……
也就是说把刚才用ls命令返回的所有分区都试一遍,直到返回grub.cfg文件时停下,记下这个分区名,比如我的ubuntu安装在第一个硬盘上,我只需要找hd0相关的分区,最终发现是在(hd0,msdos7)下有grub.cfg文件。
(2)如果没有划分“boot/”分区,那么grub.cfg文件在某个磁盘分区的(hdn,msdosm)/boot/grub目录下,反复执行命令:
ls (hd0,msdos1)/boot/grub
ls (hd0,msdos2)/boot/grub
……
也就是说把刚才用ls命令返回的所有分区都试一遍,直到返回grub.cfg文件时停下,记下这个分区名,假如最终发现是在(hd0,msdos7)下有grub.cfg文件。
3. 修复grub引导:
假如最终发现是在(hd0,msdos7)下有grub.cfg文件:
(1)如果 boot/ 单独分区,执行命令:
set root=(hd0,msdos7)
set prefix=(hd0,msdos7)/grub
insmod normal
normal
(2)如果 boot/ 没有单独分区,执行命令:
set root=(hd0,msdos7)
set prefix=(hd0,msdos7)/boot/grub
insmod normal
normal
正常情况下,执行完以上命令后,电脑就能开机进入启动引导选项了,可以选择进入windows或者ubuntu。这是选择进入Ubuntu,进行更新系统grub引导。
- 更新系统grub引导:
- 执行命令:
sudo update-grub
sudo update-grub2
更新系统grub引导。
- 执行命令:
sudo grub-install /dev/sda
重新安装grub.
网友评论