|
发表于 2005-10-12 12:13:43
|
显示全部楼层
正好前段时间为了让我的IBM240Z笔记本上安装好的SARGE支持BOOT SPLASH IMAGE,重新编译内核,就碰到过这种问题,最后解决了,现在记录下我的经验:
1. 首先建议不要直接配置一个新内核,这点非常重要(当然你自认为很熟悉那些内核参数,那没问题),你可以用你安装好/boot目录下的 config-2.6.12-386(这是我机子上的文件名,你要换成你机子上的相应文件名) 这个文件来作为新的内核配置文件的基础 ,执行 cp /boot/config-2.6.12-386 /usr/src/linux-2.6.13.2/.config 然后执行 make menuconfig ,然后在此基础上进行内核的配置,注意不要轻易将原来的配置去掉,除非你非常清楚可行,我为了支持BOOTSPLASHIMAGE,将文件系统和硬盘的配置中原来为M的都配置成*了,最后才成功的, 在此之前自己配置新内核10多次,就没成功过,
2,出现
VFS:Cannot open root device "hdb2" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic-not syncing: VFS:Unable to mount root fs on unknow-block(0,0)
的原因,我当时在网上查了很多资料,众口纷纭,害我照着配了编译了10多次核心,这种提示的根本原因就是因为文件系统和硬盘的东西没有配置到核心中去!!!还有 initrd.img 也不是必须的,你将文件系统和硬盘的东西配置到核心中去就不需要它了,因为BOOTSPLASHIMAGE需要的标准的生成标准initrd.img.splash而DEBIAN生成的INITRD。IMG是打过自己的补丁的,所以为了使用BOOTSPLASHIMAGE,就不能实用DEBIAN的INITRD。IMG,所以在 make-kpkg 时不能带上 --initrd 参数, 如果你在出现kernel panic-not syncing: VFS:Unable to mount root fs on unknow-block(0,0) 的核心配置基础上make-kpkg编译时加上 --initrd 就不会出现这个错误了,
但是此时你就不能使用BOOTSPLASHIMAGE了,呵,呵。。。(这段写得有点乱,有空再整理了  |
|