隨着內核版本的更新換代,你是否有覺得自己的內核版本有些低了呢?如果有的話,沒關系,今天小編就來教大家如何編譯安裝新的內核。
在編譯安裝內核之前先檢查我們的虛擬機所在的磁盤空間,預留空間10G以上,不然編譯安裝內核無法完成。下面我們就開始內核的編譯安裝吧。
(1)下載源碼文件
先在內核官網(www.kernel.org/)上下載最新版本的內核到桌面上,然后rz拷到linux系統上,找到一個空目錄如/app/tmp,將之移到/app/tmp中,然后再解包解壓,就會生成一個目錄
(2)准備文本配置文件.config
在/boot下有個文件/boot/config-3.10.0-514.el7.x86_64,這個文件定義了在編譯內核的時候,那些特性,哪些功能啟用了,哪些功能沒啟用,哪些是以模塊方式還是打到核心,就是在編譯內核的時候,以這個文件為模板,在這個模板基礎之上來修改特性,所以先將這個文件拷到linux-4.13.2目錄下,並命名為隱藏文件.config
cp /boot/config-3.10.0-514.el7.x86_64 /app/tmp/linux-4.13.2/.config
(3)安裝包組 yum groupinstall "development tools"
yum groupinstall "development tools"
(4)配置內核選項 make menuconfig
cd /app/linux-4.13.2/ 進入到這個目錄下,make menuconfig,但是會提示錯誤,缺少了ncurses包
所以再把這個包安裝了, yum install ncurses-devel ,安裝之后再次make menuconfig
然后就可以成功了(如果還沒有成功,提示你缺失了包,那你就繼續把這個缺失了的包加上-devel,用yum安裝(yum install 缺失包-devel)。)進入了內核菜單項,我們可以自己定制內核版本名字和開啟ntfs功能(默認是不開啟的)
定制內核版本名字
啟動ntfs功能
進入子菜單,ntfs文件系統在最下面,一直往下翻就可以找到
其他配置就不改了,然后退出,yes保存
通過菜單修改了內核選項,也就修改了.config這個文件
(5)開始編譯
date >> /app/date.log ; make -j 8 ;date >> /app/date.log; for i in {1..10};do echo -e "\a";sleep 0.5;done
其實只需要make -j 8就可以了,我寫這么長,是為了統計此次編譯花了多長時間,並且在編譯完之后,會發出10次響聲來提醒我編譯完成了。
初次編譯,會有一些錯誤出現,提示你有些包沒有安裝
我們用還是用yum install openssl-devel -y安裝,然后再次編譯,這次沒有錯誤了,時間可能有點長,我的電腦不太好,花了55分鍾才編譯好
編譯完成之后我們來看一下這個目錄有多大呢?9.2G,所以我們的虛擬機所在的磁盤必須預留有10G以上的空間,不然編譯無法完成
(6)安裝模塊make modules_install
make modules_install
我們安裝模塊完之后,在/lib/modules目錄下就會出現新的內核
(7)安裝內核相關文件make install
安裝bzImage為/boot/vmlinuz-VERSION-RELEASE
生成initramfs文件
編輯grub的配置文件
安裝完之后,我們再進入/boot下看看,發現已經生成了vmlixuz和initramfs文件
再查看/boot/grub2/grub.cfg,發現已經生成了我們安裝的新內核的啟動菜單
好了編譯安裝內核到此已經結束了,然后再重啟就行了
(8)卸載內核
如果我們編譯安裝新內核之后,在使用的過程沖發現各種bug,和我現有的系統軟件不兼容,我想刪了這個內核,那么怎么刪呢?
1.刪除/lib/modules/目錄下不需要的內核庫文件
2.刪除/usr/src/linux/目錄下不需要的內核源碼
3.刪除/boot目錄下啟動的內核和內核映像文件
4.更改grub的配置文件,刪除不需要的內核啟動列表
以上4步做完之后,我們新安裝的內核就徹底被刪除了
好了,以上就是小編這次帶給大家的內容,希望能給大家帶來幫助。