今天修复Linux Kernel 3.11.0.14-generic的时候不小心把grub2给干掉了!
折腾了一个晚上,终于成功解决,综合一下google结果和本次经验,希望能帮到你。
首先,要有一个可以成功引导的ubuntu,当然LiveCD最方便;
其次,要有一个可用的互联网连接,我用的是UbuntuKylin 13.10,对我的电信上网卡有非常好的支持,顺便说一句,联合ubuntu社区打造出了ubuntu的中文化原生同步版本ubuntu麒麟(Kylin),工信部这次真的砸了不少钱!
下面假定我们使用LiveCD方式引导,试用ubuntu,进入桌面,打开终端(命令行),然后:
1 | sudo add-apt-repository ppa:yannubuntu/boot-repair |
上面三条控制台命令的意思是:
添加个人源
更新软件源
安装boot-repair,参数-y的意思是全选yes
然后,如果你用的无线上网卡,可以拔下来了,因为有些上网卡(比如华为)会带有1到2个磁盘分区,也会被ubuntu自动挂载,boot-repair启动后会扫描磁盘分区,我的上网卡上的两个分区怎么也扫描不完,看来dead loop了。
1 | sudo boot-repair |
运行之后,会提示正在扫描分区,此过程可能会等个几十秒,然后就弹出了软件界面。
可以选择推荐修复模式,也可以选择高级选项,在推荐的基础上可以勾选一些额外的修复功能。
一切都开始于右下角的“应用”按钮,一切也都结束于此。
着重想说的是,网上那些个修复grub的文章,虽然看完会学会不少东西,但毕竟比较折腾,而且对于不是很熟悉linux/grub的朋友,成功率比较低,而这个boot-repair不光光是功能贴心,其设计也非常贴心,看出了软件作者的用心良苦,因为我用的ubuntukylin,系统语言从底层就是zh-CN,打开boot-repair后界面居然也全是中文,国际化做的非常不错(当然不排除作者应该也是中国人),更让人称赞的是,我的这个系统是装在移动硬盘上的,这种安装方式让我可以随时随地用任何不是特别古怪(主要指硬件)的电脑登入我自己的系统,而boot-repair在刚开始扫描的时候就询问我sdb是否是移动硬盘,并且在修复完毕之后又一次提醒我,“别忘了重启之后修改一下BIOS的启动顺序,好从移动硬盘引导进入系统”!看到这样的话,你是不是也和我一样,拯救系统引导大功告成之余,心里也暖暖的?
这个软件会扫描/识别每个分区里面的每个系统,并可以选择将grub重新安装在所有介质,或指定介质中,我的本机有硬盘,并不想干扰脆弱的Windows 7 Loader,所以选择了将grub直接重装在sdb中。如果你是多系统,则可以直接用推荐方式恢复就好,同时可以勾选“修复windows引导程序”选项,这样grub就不会覆盖windows自己的引导程序了。
最后,我想起一句话:
在Linux中,任何东西都是可以修复的。