首先,在www.kernel.org下载内核代码linux-2.6.35.tar.bz2
然后编译内核:
make dep
make menuconfig
make bzImage
make modules
make modules_install
make install
重启,出现错误:insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists
解压内核:
cp /boot/initrd-2.6.32.12.img /tmp
cd /tmp/
mkdir newinitrd
cd newinitrd/
zcat ../initrd-2.6.32.12.img |cpio -i
rm -rf /tmp/initrd-2.6.32.12.img
vim init
里面有两段相同的配置,需要把最后一段去掉:
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
重新打包内核:
find .|cpio -c -o > ../initrd
cd ../
gzip -9 < initrd > initrd-2.6.32.12.img
rm -rf /boot/initrd-2.6.32.12.img
cp initrd-2.6.32.12.img /boot
rm -rf /cd /usr/src/linux-2.6.32.12.tar.gz
rm -rf /cd /usr/src/linux-2.6.32.12
重启发现
mount: could not find filesystem ‘/dev/root’
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic – not syncing: Attempted to kill init!
解决方法:
执行完make menuconfig后,修改/usr/src/linux-2.6.35.4/.config
将#CONFIG_SYSFS_DEPRECATED_V2 is not set
默认被注释掉的,将其改为y。即修改为
CONFIG_SYSFS_DEPRECATED_V2=y
再接着编译安装内核
重启成功进入新内核