灵感来自于百度知道: ubuntu系统进入GRUB后怎么修改为进入当命令行模式?
一、我的问题
在win7下安装了Ubuntu,这下就是双系统了。某天装其他系统手抖把C盘给覆盖了。这下直接换了win8.1. 这下找不到Ubuntu了
第一次,网上找了许多方法,都是用原来的安装盘,进入试用模式,然而可能是自己笨,没把他们的方法弄明白,最后只弄出了个grub命令行
幸好,在万念俱灰、准备重装Ubuntu的时候,找到了上面百度知道的方法,试了几次,历经几次生死诀别之后,终于让Ubuntu重见天日了!
二、解决一 —— 找出grub命令行
大概也是用了哪些看不懂的方法, 先找出来grub命令行。类似这样的:http://915269970.blog.51cto.com/4907983/1238617
(这步差不多,但地址的方法我没验证,可以自己网上去找找 找回grub的方法)
三、解决二 —— 找回分区引导
这回就来到grub界面了,开机选择Ubuntu所在的硬盘作为启动盘(一个硬盘就不用啦)
先说明下,我的分区是这样的 swap 、 /boot、根分区 / ,所以请参考百度知道的答案:grub引导修复
接下来就是执行命令了
1. 找到Linux所在分区: ls (hd0,X)/grub [如果/boot没有单独分区,用以下命令:ls (hd0,X)/boot/grub]
X代表分区号, 改变X(从0开始), 我的就在2号,所以输入命令:
grub> ls (hd0,2)/grub
* 可惜这里我只看到了grub.cfg这个文件, 并没有找到normal.mod这个文件
2. 这下又想放弃了, 所以我开了win8, 用Linux reader把Linux下载的软件包备份, 准备重装Ubuntu
没想到这里queue发现了奇迹: 在grub下的i386-pc文件夹下居然有normal.mod
3. 这回可以回到grub命令行操作一波了
以下是/boot 单独分区的命令:
grub>set root=(hd0,5)
grub>set prefix=(hd0,5)/grub
grub>insmod /grub/i386-pc/normal.mod
然后
grub> normal
4. 重启后进入Ubuntu系统了, 最后更新下就好了
sudo update-grub
sudo grub-install /dev/sda (这里的sda是安装了Ubuntu的硬盘-不是分区号, 不知道的可以sudo fdisk -l, 我这儿有sda和sdb两个盘)