1. 程式人生 > >CentOS系統升級核心

CentOS系統升級核心

1. 準備工作

1.1 下載原始碼包

http://www.kernel.org 首頁,下載原始碼包

wget  https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.11.6.tar.xz

1.2 解壓

tar xf linux-3.11.6.tar.xz

1.3 更新當前系統

sudo yum update
sudo yum upgrade

1.4 安裝必要軟體

sudo yum groupinstall "Development Tools" # 一口氣安裝編譯時所需的一切工具
sudo yum install ncurses-devel #必須這樣才能讓 make *config 這個指令正確地執行。
sudo yum install qt-devel #如果你沒有 X 環境,這一條可以不用
sudo yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel #建立 
CentOS
-6 核心時需要它們

2 配置檔案

2.1 檢視當前系統核心

uname -r
2.6.32-358.11.1.el6.x86_64

2.2 將當前系統的配置檔案拷貝到當前目錄

cp /boot/config-2.6.32-358.11.1.el6.x86_64 .config

2.3 使用舊核心配置,並自動接受每個新增選項的預設設定

sh -c 'yes "" | make oldconfig'

make oldconfig會讀取當前目錄下的.config檔案,在.config檔案裡沒有找到的選項則提示使用者填寫,然後備份.config檔案為.config.old

,並生成新的.config檔案,參考 http://stackoverflow.com/questions/4178526/what-does-make-oldconfig-do-exactly-linux-kernel-makefile

3 編譯

sudo make -j200 bzImage #生成核心檔案
sudo make -j200 modules #編譯模組
sudo make -j200 modules_install #編譯安裝模組

要嚴格按照這個先後順序進行編譯

-j後面的數字是執行緒數,用於加快編譯速度,一般的經驗是,有多少G記憶體,就填寫那個數字,例如有8G記憶體,則為-j8

4 安裝

sudo make install

如果出現了 ERROR: modinfo: could not find module xxx,數量少的話,可以忽略。

5 修改Grub引導順序

安裝完成後,需要修改Grub引導順序,讓新安裝的核心作為預設核心。

編輯 grub.conf檔案,

sudo vim /etc/grub.conf

數一下剛剛新安裝的核心在哪個位置,從0開始,然後設定default為那個數字,一般新安裝的核心在第一個位置,所以設定default=0

6 重啟

重啟後,看一下當前核心版本號,

uname -r
3.11.6

成功啦!!

7 如果失敗,則重新迴圈

如果失敗,重新開始的話,要清理上次編譯的現場

make mrproper #清理上次編譯的現場 

然後轉到第2步,重新開始。

更多CentOS相關資訊見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14