centos 核心升級(2.6.32->3.19.0)
來源:互聯網
上載者:User
1.理解核心的定義及升級核心的意義 作業系統是和硬體打交道並且提供人機操作互動的支撐軟體。 linux核心負責管理系統的進程、記憶體、裝置驅動程式、檔案和網路系統,決定著系統的效能和穩定性。 所以說,當有硬體新特性或者對系統穩定性有更高要求的時候,我們需要升級核心。 比如,本次我升級是因為想使用docker,docker要求centos核心版本至少3.8以上,所以我需要升級核心。
2.理解核心編譯及模組的概念 linux核心是基於c語言編寫的,一般我們在官網 https://www.kernel.org下載的是核心源碼,和編譯其他c語言程式一樣,想要核心檔案產生可執行檔,需要將核心源碼進行編譯。 核心模組是一些可以讓作業系統核心在需要時載入和執 行的代碼,這同樣意味著它可以在不需要時由作業系統卸載。它們擴充了操作系 統核心的功能卻不需要重新啟動系統。舉例子來說,其中一種核心模組是裝置驅動程式模組,它們用來讓作業系統正確識別,使用安裝在系統上的硬體裝置。如果沒有核心模組,我們不得不一次又一次重新編譯產生單核心作業系統的核心鏡像來加入新的功能。我們可以將核心模組理解為:完成某種功能的函數功能塊兒,可以插拔在作業系統上。
3.編譯方法 A.make menuconfig :: 源碼根目錄下產生 .config (沒有會自動產生), .config中就是各個核心編譯選項的選擇狀況. 會彈出圖形化介面進行手動設定並產生.config檔案。 B.make defconfig :: 根據當前系統的架構預設 .config 產生核心源碼目錄下的 .config (每個架構的設定檔: ex. arch/x86/configs/x86_64_defconfig) C.make oldconfig :: 將已有的 .config 放到源碼根目錄下後執行, 目的是為了複用之前的核心編譯選項的配置. D.make xconfig :: 圖形化配置, 需要qt3, 個人覺得沒有必要, 有 make menuconfig 就足夠了. E.make localmodconfig :: 產生以正在使用的核心模組為對象的 .config
4.升級過程 A.下載核心源碼包 前往 https://www.kernel.org/pub/linux/kernel/v3.x/下載 或者直接使用 wget https://www.kernel.org/pub/linux/kernel/v3.x/ linux-3.19.tar.gz 命令下載核心源碼 B.解壓縮 tar -xvf linux-3.19.tar.xz -C 目的檔案夾 目的檔案夾有可能是/usr/src/kernel/,有可能是/usr/src,有可能是/usr/src/redhat,根據不同的linux種類和版本 填寫符合作業系統的路徑。 C.拷貝舊config檔案 因為想使用make oldconfig命令編譯核心源碼,所以要拷貝舊的config檔案 從/boot目錄下拷貝 config-2.6.32-220.el6.x86_64檔案至加壓縮後檔案夾 cd /usr/src/linux-3.19/ cp /boot/config-2.6.32-220.el6.x86_64 .config D.使用make oldconfig複用核心編譯選項配置 E.make -j4 bzImage 產生核心檔案 make -j4 modules 編譯模組 make -j4 modules_install 編譯安裝模組 F.make install 安裝 G.修改grub.conf檔案 vi /etc/grub.conf 3.19.0)">
數一下剛剛新安裝的核心在哪個位置,從0開始,然後設定default為那個數字,一般新安裝的核心在第一個位置,所以設定default=0。 重啟reboot。 升級完成。