ubuntu initrd.img 制作

今天开机,出现Unable to mount root fs on unknown-block(0,0),导致不能进入系统。在网上搜了一大把,全说是编译内核时,才可能出现这种情况。经分析,系统的内核本身就是好的,查看启动菜单项,发现是卡在了/initrd.img-2.6.28-12-generic这里,查找对应文件,发现内容居然为空。如果在启动时选择进入2.6.28-11-generic,则成功进入系统(看来在升级的时候还是把旧内核留下为上策啊。一旦出现类似情况,还可以进入老系统!)。

原因找到就好办多了,重新制作一个/initrd.img-2.6.28-12-generic文件即可。进入 /lib/modules下与内核对应该的文件夹,运行 mkinitramfs -o /boot/initrd.img-xxx然后重新启动系统。OK。又能进入Ubuntu 9.04的怀抱了。

总结:

  • 遇到问题一定要分析,不要盲目的跟随网上的解决方法,必须先分析出错原因。否则如果真是按照网上的说法去重新编译内核的话,不但麻烦,一旦失败,又会引来其它新的问题。
  • 本人同样也遇到了Unable to mount root fs on unknown_-_block_(_0_,_0_) 这个问题,但它仅是丢失initrd.img-XXX文件造成的,所以我们只要重新生成这个文件,一切就都OK了。

PS:Ubuntu 貌拟在非正常关机的情况下,对文件的保护是相当脆弱啊。居然能造成文件丢失。晕之