在实践过程中,我根本就没有手动去修改grub的配置信息,在运行make install命令的时候,就给帮你更新了grub的配置。 先别急着重启机子,看看下面问题再说。 解决问题
内核升级的过程都是相似的,遇到的问题却各有各的不同。——KiKi 问题1 问题描述:重启系统会报错”insmod: error inserting ‘/lib/dm-region-hash.ko’: –1 File exits”, 原因: 在init文件中重复了insmod dm-region-hash.ko这条命令。 解决方法: [root@localhost]cp /boot/initrd-2.6.30.img /tmp [root@localhost]cd /tmp/ [root@localhost tmp]mkdir newinitrd [root@localhost tmp]cd newinitrd/ [root@localhost newinitrd]zcat ../initrd-2.6.30.img |cpio -i [root@localhost newinitrd]vi init 删掉重复的如下两行: echo “Loading dm-region-hash.ko module” insmod /lib/dm-region-hash.ko [root@localhost newinitrd]# find .|cpio -c -o > ../initrd 14765 blocks [root@localhost newinitrd]# cd .. [root@localhost tmp]# gzip -9 < initrd > initrd-2.6.30.img [root@localhost tmp]# ls gconfd-root initrd initrd-2.6.30.img mapping-root newinitrd scim-panel-socket:0-root [root@localhost tmp]# mv /boot/initrd-2.6.30.img /home/ [root@localhost tmp]# cp initrd-2.6.30.img /boot/ [root@localhost tmp]#reboot 问题2 问题描述:重启之后却进不了系统。提示如下cound not find filesystem /dev/root.

原因有可能是: A:是由于无法加载磁盘硬件的模块驱动。 解决方式主要是通过make menuconfig中加载sata scsi的devices设备模块驱动。 # make menuconfig添加如下选项 Device Drivers ---> Serial ATA (prod) and Parallel ATA (experimental) drivers 常用的驱动模块如下: insmod /lib/uhci-hcd.ko
insmod /libohci-hcd.ko
insmod /lib/ehci-hcd.ko
insmod /lib/jbd.ko
insmod /lib/ext3.ko
insmod /lib/scsi_mod.ko
insmod /lib/sd_mod.ko
insmod /lib/libata.ko
insmod /lib/ahci.ko
B: initrd是旧版本mkinitrd生成的。
解决方法就是加入对旧版sysfs路径的支持,方法如下: 1)、通过make menuconfig选中以下对应的选项
General setup –> [*] enable deprecated sysfs features to support old userspace tools
2)、修改.config文件
修改.config文件中CONFIG_SYSFS_DEPRECATED_V2,将原本被注释掉的 CONFIG_SYSFS_DEPRECATED_V2 改成CONFIG_SYSFS_DEPRECATED_V2=y 注 : 修改这项是因为旧版的mkinitrd及其nash在内核没有CONFIG_SYSFS_DEPRECATED_V2参数时默认使用旧版sysfs路 径格式,从而在新内核下无法正确访问/sys内的硬盘信息节点。 而本人是因为在编译内核的时候,没有添加sata硬盘的内核驱动模块,导致系统无法识别SATA硬盘,所以没法进入系统。属于原因A。 |