关于怎么样升级到Linux下面http://www.piaoyang.org/blog 的内容是我升级成功最有帮助的文章。当然不同的人不同的平台什么的还是会有一些不同的。我的实验环境:PC主机系统WindowsXP, 虚拟机软件vmware6.0,客户操作系统Redhat9.0。原装9.0内核为2.4.20-8,想升级到2.6.18。开始我想升级到2.6.24,可总是出现问题,后来干脆老老实实的升级2.6.18. 方法就参照下面引用的博客好了。只讲述一下针对自己电脑上升级的一些心得。
常见问题一:No module BusLogic found for kernel 2.6.18
编译到最后一步时即执行:#make install 时,出现
sh /usr/src/linux-2.6.23/arch/i386/boot/install.sh 2.6.23 arch/i386/boot/bzImage System.map "/boot"
No module BusLogic found for kernel 2.6.18
mkinitrd faild
明明配置文件中选择过了以模块形式加载。buslogic在
->Device Drivers
->SCSI device support
->SCSI low-level drivers
下,BusLogic 是用来支持SCSI设备的模块
网上提示该问题在虚拟机中经常遇到,并且说2.4的内核的Buslogic模块即使静态编译进内核也是不行的,网上提供的解决方法是直接手动拷贝
cp drivers/scsi/BusLogic.o /lib/modules/2.6.11/kernel/drivers/scsi/
我的是2.6。18,拷贝过去看看效果,后面的博客也是这样建议的。按这种方法是可以继续执行#make install了。但一般你的内核是启动不了的。我的内核就是这样。其实这里的问题可能不在于这个地方。我在和同学相互讨论的时候发现这个问题在我上面介绍的我的环境中,一个重要的问题是因为升级工具时没有成功。
# rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意,这里一定要加入--nodeps参数,下同)
# rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm
这几个工具你这样选择升级,会出现许多行的conflick.......语句,我的电脑上是这样的。也就是与原有的版本相冲突。这个时候你检查一下你的工具版本发现升级并不成功,还是你更新这些工具以前的版本。检查命令很简单:
# rpm -qa | grep mkinitrd 和 # rpm -qa | grep lvm ,所以这些命令并不能简单的按照论坛里说的方法去写。不是那些方法不对,而是如果你不是特别了解这些东西的话,照猫画虎的方法不一定能达到目的。我开始编译的时候也出现过这些问题,不过发现如果你能保证把这些工具的版本都升级成功,不会出现#mkae install时的这个错误。
常见问题二: kernel panic
这部分问题主要可能是在ext2和ext3文件系统配置导致的。如果对Ext3、Ext2文件的支持没有直接编译进内核,在你reboot时机器就会当掉,出现如下错误信息:注释:飘扬博客里这个地方有笔误,应该是必须编译进内核。
kernel panic : no init found ,try passing init = option to kernel.....
或者是:
VFS:Cannot open root device "hdxy" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
或者是:
mount: error 19 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
umount /initrd/proc fail: 2
Freeing unused kernel memory: 244k freed
Kernel panic – not syncing: No init found. Try passing init = option to kernel