« 用扑克牌来玩 Condottiere | 返回首页 | 《程序员修炼之道》书评 »

Ubuntu 升级内核后不能正常引导的问题

这不是个新问题了。前两月开始,自从我的一台 Ubuntu 机器某次更新内核到 2.6.28-13 后,就无法正确引导。而只能引导旧的 2.6.28-11 。

这两天内核又升级到 2.6.28-14 问题依旧。

启动时显示:

Error 13 : Invalid or unsupported executable format

我觉得不能将就了,就花了点时间研究解决了一下。

我的这台出问题的机器上装有 freeBSD Ubuntu 和 Windows 三个系统。最早装的 freeBSD ,然后分出一个区装的 Windows ,再然后从 Windows 分区上又划出了一部分装 Ubuntu 。

出问题前,我尝试过升级文件系统。从 Ext3 到 Ext4 。感觉问题可能来源于这里。

无论如何,跟 grub 有关系。

根据一些搜索来的信息,重新 grub-install 了一下就好了。

sudo grub-install /dev/sda

做这个步骤时,我曾经不小心弄错了。用的 sudo grub-install /dev/sda4 (因为我的 Linux 分区在那里)

导致悲剧了。系统不能启动。只好刻了张 Ubuntu 的 LiveCD 修复 grub 。

sudo grub

root (hd0,4)

setup (hd0)

quit


关于问题的原因,我的揣测是因为 grub 特殊的工作方式引起的。硬件引导的时候,可以加载的代码有限。所以并不能完整处理复杂的文件系统。

这也是为什么,早期的 dos 必须把引导文件放在磁盘的最开头的缘故。

由于我把 ext3 过渡到 ext4 的缘故,导致了 grub 工作失常,不能正确的引导后来复制到文件系统中的内核文件。新的 grub 当然对 ext4 有支持,只是可能是对这种过渡情况支持的不好吧。重新安装 grub 后也就正常了。

ps. 其实当初就应该把 /boot 保留为 ext3 的,害的我原来刻的 Ubuntu 8.10 的盘不能用,又重新下了个 9.04 的 ISO 刻盘。感觉又污染了环境,每次刻盘都有罪恶感。

Comments

看来我落伍了。
/boot在ext4 GRUB legacy是不支持的,GRUB2支持,这个大家现在应该都知道了^^ 风云兄竟然还刻盘装Linux。其实可以用一个很方便的傻瓜式工具UNetBootin来快速制作Live USB。我还专门写过一篇文章,让大伙儿不要申请免费的Ubuntu CD,基本没用,拿来垫桌脚都嫌麻烦。还是把资源留给需要的人;-)
grub能认出ext3 已经很不错了. Knoppix等liveCD 丢到USB里,ext2 都找不到镜像
其实现在基本是在Windows用一键还原自带的那个grub for dos来安装所有的iso,免去了刻碟,觉得这个方式安装系统很不错,并且两个grub不会发生冲突……
ubuntu就是apt-get安装程序时,现的显示排列不爽,非常不爽,其它还好;
用了ubuntu好一段时间,现在又改用fedora了,因为更喜欢yum。
我也来凑个热闹。
刻系统盘还是买个可擦写的dvd+rw盘好 京东上有卖 sony的也就8块左右
看来我落伍了,还在使用FreeBSD 7.0
不需要再刻盘,把livecd装在U盘上启动。或者用grub-install把grub安装在U盘上。即可修复。 一般的发行版都提供支持U盘启动的kernel,更别说Ubuntu。
我也使用ubuntu server,但一直是使用7.04版本,之前有升级过8.04,升级后造成系统很慢,没来得及查原因就换回来了。。 能不能share一下你的系统参数配置经验?就是net.ipv4.tcp_syncookies那些,在应付门户web网站的情况下应该何配置? 谢谢 :)
云风也用Ubuntu啊,呵呵

Post a comment

非这个主题相关的留言请到:留言本