溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

centos內(nèi)核升級(jí)文檔

發(fā)布時(shí)間:2020-07-08 12:41:06 來(lái)源:網(wǎng)絡(luò) 閱讀:781 作者:bailianhua1005 欄目:web開發(fā)

 1、查看當(dāng)前系統(tǒng)內(nèi)核

# uname -r
2 2.6.32-71.el6.i686

2、下載linux-3.2.2內(nèi)核包[l1] 

# cd ~
# wget -c http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.2.tar.bz2
# tar jxvf linux-3.2.2.tar.bz2
# cd linux-3.2.2

3、配置內(nèi)核并安裝

# make mrproper  #清除環(huán)境變量,即清除配置文件
# make menuconfig  #
在菜單模式下選擇需要編譯的內(nèi)核模塊
[l2] 

(注:這一步不知道可以直接使用默認(rèn)即可,或者查看幫助文件)

模塊可以根據(jù)自己的需要進(jìn)行選擇,若不懂可以參考內(nèi)核配置手冊(cè).

執(zhí)行完make menuconfig后,修改/usr/src/linux-2.6.35.4/.config
#CONFIG_SYSFS_DEPRECATED_V2 is not set
默認(rèn)被注釋掉的,將其改為y。即修改為
CONFIG_SYSFS_DEPRECATED_V2=y
[l3] 再接著編譯安裝內(nèi)核

 

# make clean #確保所有東西均保持最新狀態(tài).
# make bzImage #
生成內(nèi)核文件
# make modules #
編譯模塊
# make modules_install #
安裝模塊
# make install #
安裝

4、編輯 /etc/grub.conf 文件,將 default=1 改為 default=0[l4] 

# cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=1
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS Linux (3.2.2)
root (hd0,0)
kernel /vmlinuz-3.2.2 ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-3.2.2.img
title centos (2.6.32-71.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-71.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-2.6.32-71.el6.i686.img

5、重啟系統(tǒng),并查看內(nèi)核

# reboot
# uname -r

3.2.

升級(jí)成功!

 

 

 

#升級(jí)過程中遇到的問題
一、啟動(dòng)報(bào)錯(cuò)
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!

解決方法:
執(zhí)行完make menuconfig后,修改/usr/src/linux-2.6.35.4/.config
#CONFIG_SYSFS_DEPRECATED_V2 is not set
默認(rèn)被注釋掉的,將其改為y。即修改為
CONFIG_SYSFS_DEPRECATED_V2=y
再接著編譯安裝內(nèi)核

二、啟動(dòng)報(bào)錯(cuò)
insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists

解決方法:
1
、解壓initrd文件
[root@vhost ~]# cp /boot/initrd-2.6.35.4.img /tmp
[root@vhost ~]# cd /tmp/
[root@vhost tmp]# ls
initrd-2.6.35.4.img
[root@vhost tmp]# mkdir newinitrd
[root@vhost tmp]# cd newinitrd/
[root@vhost newinitrd]# zcat ../initrd-2.6.35.4.img |cpio -i
11282 blocks
釋放之后看到如下內(nèi)容
[root@vhost newinitrd]# ls
bin   dev   etc   init   lib   proc   sbin   sys   sysroot

2、下邊就是編輯init,刪掉其中重復(fù)的四行中的兩行
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@vhost newinitrd]# find .|cpio -c -o > ../initrd
11282 blocks
[root@vhost newinitrd]# cd ..
[root@vhost tmp]# gzip -9 < initrd > initrd.img
[root@vhost tmp]# ls
initrd-2.6.35.4.img    initrd    initrd.img          newinitrd

initrd.img就是重新打包的initrd了,然后把initrd.img拷貝到/boot
[root@vhost tmp]# mv /boot/initrd-2.6.35.4.img /boot/initrd-2.6.35.4.img.bak
[root@vhost tmp]# mv initrd.img /boot/initrd-2.6.35.4.img
[root@vhost tmp]# reboot
這樣“insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists” 就不會(huì)有了


 [l1]關(guān)于如何選擇內(nèi)核版本,首先要根據(jù)自己的需要,比如我要升級(jí)ext4系統(tǒng),那么必須選擇2.6.28以上版本;還有偶數(shù)版本一般為穩(wěn)定版

下載版本到http://www.kernel.org/pub/linux/kernel去下載就可以

 

 

 [l2]注:這一步也是根據(jù)需要選擇相應(yīng)模塊,選項(xiàng)分三種--(不包含,以模塊形式,編入內(nèi)核);不知道可以直接使用默認(rèn)即可,或者查看幫助文件

 [l3]這一步一定要先做,否則在升級(jí)后自檢報(bào)錯(cuò):mount: could not find filesystem /dev/root

 [l4]不必急著刪老版本,更改默認(rèn)啟動(dòng)新內(nèi)核即可,在確認(rèn)新內(nèi)核升級(jí)正常后再刪老內(nèi)核也不遲

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI