问题:
之前系统是Windows7 64bit(C盘) + D盘(都是NTFS) + Ubuntu。
今天,在Windows7中删除Ubuntu(格式化Ubuntu所在分区磁盘), 重启Windows7之后发现Ubuntu的grub菜单不能启动。屏幕显示Unkown FileSystem。
分析:
由于在Windows下面更改了分区状态,删掉了Ubuntu之前的分区,造成Ubuntu的分区丢失,而安装双系统时,磁盘引导记录写在Ubuntu中,这样找不到grub了,开机显示
grub rescue>
解决办法:
1. 先使用ls命令,找到Ubuntu的安装在哪个分区:
grub rescue>ls
会罗列所有的磁盘分区信息,比方说:
(hd0,msdos7), (hd0,msdos6), (hd0,msdos5), (hd0,msdos1)
2. 然后依次调用如下命令: X表示各个分区号码
grub rescue>ls (hd0,msdosX)/boot/grub
如果都找不到的话,需要查一下是否因为Linux版本差异,造成grub的路径不对,例如直接ls (hd0,msdosX)/grub等等。
3. 假设找到(hd0,msdos5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。
如果所有走下来都显示unkown filesystem,则表明所有分区都已损坏或不存在,此时有两个解决办法:
1)通过U盘启动进入PE系统修复硬盘主引导记录;
2)如果无法进入U盘启动界面的话(我就是这种情况),那么需要把Ubuntu系统装到U盘中(注:不是制作U盘启动盘,而是在另一台电脑上通过U盘启动盘将Ubuntu系统装到另一个U盘中,详情可参考这篇文章:把Ubuntu安装进U盘的方法步骤),然后将装有Ubuntu系统的U盘插到问题PC上,然后ls,可以看到多出几个分区信息,如(hd1,msdosX),然后依次执行:
grub rescue>ls (hd1,msdosX)/boot/grub
4. 调用如下命令:
grub rescue>set root=(hd0,msdos5) grub rescue>set prefix=(hd0,msdos5)/boot/grub grub rescue>insmod normal
5. 然后调用如下命令,就可以显示出丢失的grub菜单了。
grub rescue>normal
6. 不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。
进入Linux之后,在命令行执行:
sudo update-grub sudo grub-install /dev/sda
(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对),执行结果界面如下:
7. 重启测试是否已经恢复了grub的启动菜单? 恭喜你恢复成功!
- 本文固定链接: https://zxbcw.cn/post/1334/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)