編譯2.6.31核心後重啟出現
insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists
解決方案:
1,解壓initrd檔案
[root@bogon ~]# cp /boot/initrd-2.6.30.4.img /tmp
[root@bogon ~]# cd /tmp/
[root@bogon tmp]# ls
initrd-2.6.30.4.img
[root@bogon tmp]# mkdir newinitrd
[root@bogon tmp]# cd newinitrd/
[root@bogon newinitrd]# zcat ../initrd-2.6.30.4.img |cpio -i
11537 blocks
釋放之後看到如下內容
[root@bogon newinitrd]# ls
bin dev etc init lib proc sbin sys sysroot
2,ok,下邊就是編輯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
3,重新打包initrd
[root@bogon newinitrd]# find .|cpio -c -o > ../initrd
11538 blocks
[root@bogon newinitrd]# cd ..
[root@bogon tmp]# gzip -9 < initrd > initrd.img
[root@bogon tmp]# ls
initrd-2.6.30.4.img initrd initrd.img newinitrd
好了,initrd.img就是重新打包的initrd了,然後把initrd.img拷貝到/boot,更改grub.conf裡邊的initrd-2.6.30.4.img為initrd.img就可以了,
這樣“insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists” 就不會有了
RedHat nash Version 5.1.19.6 startingrver(2.6.33.3)
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!
[Linux-initrd @ 0x1fc37000,0x228585 bytes]
於是在網上找了很多,也嘗試了很多加模組、重編譯了N次、改fstab等方法,都不行。最後在一個網站上找到解決方案。
方法:編譯時間修改.config檔案中的“CONFIG_SYSFS_DEPRECATED_V2”,預設該選項為not set,被注釋掉的,將其改為y。即修改為“CONFIG_SYSFS_DEPRECATED_V2=y”,修改後,再編譯,重啟即正常了。