2014年02月的文章

Ubuntu 内核引导错误和误删 /etc/grub.d/ 的解决办法

pader 系统与硬件 发表于 2014年02月21日 17:36

前段时间从 Ubuntu 13.04 升级到 13.10 后,发现 /boot 下多了个 3.11 的内核,但当前内核仍然使用的 3.5 的内核,于是想修改内核到使用 3.11 内核,但由于没注意到当前的 grub 已经是版本 2 了,使用 update-grub 却只更新了 menu.lst,而且我还过河拆桥的把 3.5 内核的相关文件都删了,重启后杯具了,无法引导内核,启动不了了。

然后各种搜索,发现当前系统居然是使用 grub.cfg 这个配置文件,menu.lst 实际上是老版本 grub1 的残留,而且 update-grub 也是老版本的 grub 工具。再经搜索在一篇 IBM 的文章中发现可以在 grub 界面按 E 进入引导配置文件临时修改,然后进入了系统。

进入系统后我一通折腾,把所有的 grub (1 和 2 版) 都卸载了,然后阴差阳错的胡闹把 /etc/grub.d/ 也删除了,重新安装后,发现怎么也无法生成正确的 grub.cfg 配置,生成的 grub.cfg 总是空的,原因就是因为没有了 /etc/grub.d/,寻思未果,各种重装也是无法解决,最后找到的办法是从 grub-common.deb 包中提取出来 grub.d 目录,然后复制到 /etc 中,再执行 update-grub 后 grub.cfg 终于正常了。