環境:
系統硬件:vmware vsphere (CPU:2*4核,內存2G)
系統版本:Linux centos 2.6.32-431.el6.x86_64(Centos-6.5-x86_64-minimal.iso )
升級內核版本:longterm:3.12.17
升級步驟:
1.虛擬系統安裝
要求mininal方式安裝(205個包),具體步驟省略。
2.查看原有系統內核版本,升級更新包
2.1更新包
[root@centos ~]# yum update
[root@centos ~]# yum upgrade
2.2查看系統內核版本
[root@centos ~]# uname -a
Linux centos 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@centos ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
3.下載、安裝需編譯環境所需要的工具包
[root@centos ~]# yum install vim wget
[root@centos ~]# yum install gcc gcc-c++ xz
[root@centos ~]# yum install bc
[root@centos ~]# yum install ncurses-devel
[root@centos ~]# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
[root@centos ~]# yum install qt-devel #如果有X環境時安裝(目前不安裝)
4.下載內核包
4.1進行目錄
[root@centos ~]# cd /usr/local/src/
4.2下載內核包,目前是3.12.17版本。
[root@centos ~]# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.17.tar.xz
5.編譯內核
5.1解包,進行內核源碼目錄
[root@centos ~]# tar -vxf linux-3.12.17.tar.xz
[root@centos ~]# cd linux-3.12.17
***/usr/local/src/linux-3.12.17此目錄當編譯目錄,編譯過程,操作都必須在此目錄
5.2以菜單的方式,選擇編譯內核需要的模塊
[root@centos ~]# make menuconfig
打開菜單后,以默認方式保存<Save>,並退出<Exit>
保存后,當前目錄會自動生成.config文件
5.3查看當前版本,並且以原編譯配置來進行編譯
[root@centos ~]# uname -r
2.6.32-431.el6.x86_64
5.4 復制原配置文件到編譯目錄(視需要,把舊的配合文件做為新的配合模板)
[root@centos ~]# cp /boot/config-2.6.32-431.11.2.el6.x86_64 .config
提示是否覆蓋,輸入Y
[root@centos ~]# sudo sh -c 'yes "" | make oldconfig'
以原配置文件產生新的配置文件,默認回答為YES方式
5.5 編譯內核 (需時約30-40分鍾)
[root@centos ~]# make
5.6安裝內核
[root@centos ~]# make modules_install install
完成時,會提示 could not find module vmware_balloon,這個和虛擬機有關(不理它)
6. 更改系統啟動時,使用的內核
[root@centos ~]# vim /boot/grub/menu.lst
修改default=0,開機后,默認以第一項啟動(3.12.17內核)
保存退出
7.重啟系統
[root@centos ~]# shutdown -r now
8.確認當前內核版本
[root@centos ~]# uname -r
Linux centos 3.12.17 #1 SMP Fri Apr 11 03:32:42 CST 2014 x86_64 x86_64 x86_64 GNU/Linux
顯示內核為3.12.17,表示升級內核成功
9.如果編譯失敗,可以先清除,再重新編譯
[root@centos ~]# cd /usr/local/src/linux-3.12.17
[root@centos ~]# make mrproper #完成或者安裝過程出錯,可以清理上次編譯的現場
[root@centos ~]# make clean
10.如果升級成功后,可以刪除源碼目錄
[root@centos ~]# rm -rf /usr/local/src/linux-3.12.17
11.刪除原來的內核
11.1查看當前有什么內核版本
[root@centos ~]# rpm -q kernel
顯示以下版本
kernel-2.6.32-431.el6.x86_64
kernel-2.6.32-431.11.2.el6.x86_64
11.2刪除原內核
[root@centos ~]# yum remove kernel-2.6.32-431.el6.x86_64 #移除此版本的內核,同時啟動菜單也不再會出現此內核
[root@centos ~]# yum remove kernel-2.6.32-431.11.2.el6.x86_64
刪除后,查看啟動菜單會發現已經少了此內核
[root@centos ~]# cat /boot/grub/menu.lst