由於想要編譯kvm-kmod,編譯的時候提示內核版本太低,所以就不得不升級下linux內核,目前最新版內核是4.7.2,編譯內核並不是一件很難的事,但是這么久沒編譯過,還是有必要記錄下這一過程。
首先下載linux內核最新版4.7.2 https://www.kernel.org/,這個可以放到任意目錄,並沒有特殊的要求
然后需要安裝幾個工具,這個先安裝也可以,在編譯中安裝也可以。
具體步驟如下:
1、解壓內核源碼包,進入目錄
2、make menuconfigure
3、make 此過程會比較漫長
4、make modules
(現在make 步驟基本涵蓋了make modules這一步)
5、make modules_install
這個時候在源代碼目錄中會生成幾個比較重要的文件:
1、~/arch/x86_64/boot/bzImage
2、~/System.map
我們需要把這兩個文件復制到指定的目錄中:
cp arch/x86_64/boot/bzImage /boot/vmlinuz-4.7.2
cp System.map /boot/System.map-4.7.2
然后進入/boot目錄
給System.map文件建立一個軟連接:
ln -s System.map-4.7.2 System.map
最后還需要生成img文件:
mkinitrd /boot/initrd-4.7.2.img 4.7.2
(現在make install可直接完成上述動作)
至此需要的文件我們已經設置完畢,剩下的就是修復引導了,這里不建議手動去修改grub文件,我們可以利用工具
grub2-mkconfig -o /boot/grub2/grub.cfg
這樣根據boot目錄下的文件自動更新grub文件。假如要想修改默認的啟動內核可以修改/etc/default/grub文件,這點和ubuntu是一樣的:
也可以采用更加便捷的方式,直接利用命令:
grub2-set-default "",引號內放置grub.cfg文件中,開始引號內的部分,例如:
menuentry 'CentOS Linux (3.10.1) 7 (Core)' --class centos --class ....................那么設置默認啟動的格式為:
grub2-set-default "CentOS Linux (3.10.1) 7 (Core)";這樣之后就默認從設置的啟動項進入系統了。

其實可以直接修改grub.cfg文件,但是那樣並不是從根本上修改,每次更新都會根據/etc/default/grub文件去設置,所以這里直接從源頭修改,在GRUB_DEFAULT后的數字就代表選定的是哪個啟動項,從0開始,順序就是grub.cfg文件里menuentry的順序!!
執行完畢后在此運行grub2-mkconfig命令更新即可!!
