CentOS4.4下編譯kernel2.6.18.5筆記
时间:2006-12-22 来源:ManFree
CentOS(2.6.9-42EL)所使用的硬件配置為:SCSI接口硬盤,BUSLOGIC控制器
首先下載kernel2.6.18.5和patch,至於那裏下載相信大家都知道,就不儸嗦了
然後解壓到/usr/src/下面,然後做個連接linux,打上補丁
bzip2 -cd yourpatch.bz2 |patch -p1 --dry-run
bzip2 -cd yourpatch.bz2 |patch -p1
然後看一下.rej文件。
然後cp /boot/config-`uname -r` /usr/src/linux/.config
make menuconfig
選擇Load an Alternate Configuration File
輸入.config按OK
接下來就根據自己需要再添加或者刪除一些東西后(這個怎麽選擇網上有許多參考資料可供選擇,如果你不想修改,那麽就保存后直接編譯)
make &&make modules_install
這個過程需要消耗一些時間,你可以先去喝杯咖啡或者去散散步。
好了,一切都OK了?
那麽就cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.6.18.5.default
cp ./System.map /boot/System.map-2.6.18.5.default
接下來為新内核製作一個initrd文件。
我們使用mkinitrd
這裡要注意先要修改一下/etc/modprobe.conf文件,把裏面的
alias scsi_hostadapter1 mptscsi註釋掉
#alias scsi_hostadapter1 mptscsi不然你會得到一個2.6.18.5内核沒有mptscsi模塊的錯誤
好了使用如下命令:
mkinitrd --preload=scsi_mod --preload=sd_mod /boot/initrd-2.6.18.5.img 2.6.18.5default(這裡你需要看一下/lib/modules下面的新内核文件夾名字)
然後修改grub
接著reboot用新内核引導
當然如果你能直接引導的話,那麽恭喜您。您可以使用一個新内核了。
或者你會看到以下錯誤:
Enforcing mode requested but no policy loaded. Halting now.
Kenerl panic - not syncing: Attempted to kill init!
萬一你不幸看到這個錯誤后,請不要慌張。你應該重新啓動電腦,然後用舊内核進入。修改grub.conf文件在kernel (your new kernel)後面加上enforcing=0就可以了
如果是VFS:cannot load root=LABEL=/的錯誤,也請你用舊内核啓動,更改root=LABEL=/為root=/dev/sdan(這裡看你安裝的分區數目來填)
在IDE硬盤上也是使用同樣的方法。只是:MKINITRD不需要再另帶參數了。
直接mkinitrd /boot/initrd-2.6.18.5default.img 2.6.18.5default就可以了。
==================================隨筆記錄
首先下載kernel2.6.18.5和patch,至於那裏下載相信大家都知道,就不儸嗦了
然後解壓到/usr/src/下面,然後做個連接linux,打上補丁
bzip2 -cd yourpatch.bz2 |patch -p1 --dry-run
bzip2 -cd yourpatch.bz2 |patch -p1
然後看一下.rej文件。
然後cp /boot/config-`uname -r` /usr/src/linux/.config
make menuconfig
選擇Load an Alternate Configuration File
輸入.config按OK
接下來就根據自己需要再添加或者刪除一些東西后(這個怎麽選擇網上有許多參考資料可供選擇,如果你不想修改,那麽就保存后直接編譯)
make &&make modules_install
這個過程需要消耗一些時間,你可以先去喝杯咖啡或者去散散步。
好了,一切都OK了?
那麽就cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.6.18.5.default
cp ./System.map /boot/System.map-2.6.18.5.default
接下來為新内核製作一個initrd文件。
我們使用mkinitrd
這裡要注意先要修改一下/etc/modprobe.conf文件,把裏面的
alias scsi_hostadapter1 mptscsi註釋掉
#alias scsi_hostadapter1 mptscsi不然你會得到一個2.6.18.5内核沒有mptscsi模塊的錯誤
好了使用如下命令:
mkinitrd --preload=scsi_mod --preload=sd_mod /boot/initrd-2.6.18.5.img 2.6.18.5default(這裡你需要看一下/lib/modules下面的新内核文件夾名字)
然後修改grub
接著reboot用新内核引導
當然如果你能直接引導的話,那麽恭喜您。您可以使用一個新内核了。
或者你會看到以下錯誤:
Enforcing mode requested but no policy loaded. Halting now.
Kenerl panic - not syncing: Attempted to kill init!
萬一你不幸看到這個錯誤后,請不要慌張。你應該重新啓動電腦,然後用舊内核進入。修改grub.conf文件在kernel (your new kernel)後面加上enforcing=0就可以了
如果是VFS:cannot load root=LABEL=/的錯誤,也請你用舊内核啓動,更改root=LABEL=/為root=/dev/sdan(這裡看你安裝的分區數目來填)
在IDE硬盤上也是使用同樣的方法。只是:MKINITRD不需要再另帶參數了。
直接mkinitrd /boot/initrd-2.6.18.5default.img 2.6.18.5default就可以了。
==================================隨筆記錄
相关阅读 更多 +