之前手动调整swap分区大小之后,将原有的swap分区给删除了,手贱啊,结果重启后系统进不去了,提示:"no such partition",本来想重装系统,奈何之前没备份。于是乎网上各种查资料,折腾了一下午,终于搞定了,具体方法如下:
输入“ls”命令可以查看所有的磁盘分区信息:
(hd0),(hd0,msdos7),(hd0,msdos6),(hd0,msdos5),(hd0,msdos4),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1)
输入set命令,可以查看root和prefix的路径设置信息如下:
root=(hd0,msdos8)
prefix=(hd0,msdos8)/boot/grub
而ls命令列出的磁盘分区中并没有(hd0,msdos8),我想这就是提示“no such partition”的原因,原本(hd0,msdos7)分区是swap分区,被我删除了,少了一个分区,之前Linux的boot安装在(hd0,msdos8)中,删除swap分区后,分区重新分配设备id,结果原来的(hd0,msdos8)变成了(hd0,msdos7),所以提示“no such partition”。需要找到boot的安装目录,进行重新引导。可通过“ls (hd0,msdosn)/boot/grub”找到boot的所在分区(其中n为编号),如果不是boot所在分区会提示“unknown filesystem”,假如最后找到boot所在分区为(hd0,msdos7),输入以下命令:
set root=(hd0,msdos7)
set prefix=(hd0,msdos7)/boot/grub
insmod normal
normal
则可以进入系统选择界面,登陆系统后,打开终端输入以下命令:
sudo update-grub
sudo grub-install /dev/sda
sudo reboot
至此问题得以解决。本文针对的是boot没有单独分区的情况,如果boot目录单独一个分区,请参考http://forum.ubuntu.org.cn/viewtopic.PHP?f=139&t=348503。