最近須要研究lguest虛擬機,可是ubuntu12.04內核貌似沒有集成,故從新升級內核,逐有此小記一篇linux
環境:vmware workstation下ubuntu桌面版12.04 ubuntu
第一步:在http://www.kernel.org/ 上下載最新穩定內核源代碼,我下載的最新穩定版爲3.7.10bash
第二步:解壓源碼包,並將解壓過的內核代碼放置 /user/src 目錄下ide
第三步:打開終端進入/usr/src/linux-3.7.10spa
znn@ubuntu:~$ cd /usr/src/linux-3.7.10操作系統
以上爲準備工做.net
第四步:以管理員身份運行後續命令,或者在命令前加sudo亦可3d
znn@ubuntu:/usr/src/linux-3.7.10$ sudo su
[sudo] password for znn: code
輸入命令make mrproper,blog
root@ubuntu:/usr/src/linux-3.7.10# make mrproper
該命令的功能在於清除當前目錄下殘留的.config和.o文件,這些文件通常是之前編譯時未清理而殘留的。
第五步:配置
配置編譯選項,由於操做系統內核功能及結構很是複雜,配置選項不少,配置特別繁瑣,爲了簡單起見使用make menuconfig或者make xconfig,個人系統已經安裝ncurses,故使用make menuconfig,沒有安裝的同窗能夠到http://invisible-island.net/ncurses/下載
或者到http://ftp.gnu.org/pub/gnu/ncurses/ 下載,再或者在軟件中心找到軟件安裝也行,以下輸入關鍵字出來好多,本身看着須要的就裝上吧:
我下載的爲5.8,而後解壓縮後安裝就ok啦。
而後進入重點:make menuconfig
root@ubuntu:/usr/src/linux-3.7.10# make menuconfig
配置界面以下,選項太多,找起來實在是麻煩,木有辦法撒
具體配置看我的需求,我是安裝lguest虛擬機須要配置的,而後保存退出,個人配置選項以下:
"General setup":
"Prompt for development and/or incomplete code/drivers" = Y
(CONFIG_EXPERIMENTAL=y)
"Processor type and features":
"Paravirtualized guest support" = Y
"Lguest guest support" = Y
"High Memory Support" = off/4GB
"Alignment value to which kernel should be aligned" = 0x100000
(CONFIG_PARAVIRT=y, CONFIG_LGUEST_GUEST=y, CONFIG_HIGHMEM64G=n and
CONFIG_PHYSICAL_ALIGN=0x100000)
"Device Drivers":
"Staging drivers"=N
"Block devices"
"Virtio block driver (EXPERIMENTAL)" = M/Y
"Network device support"
"Universal TUN/TAP device driver support" = M/Y
"Virtio network driver (EXPERIMENTAL)" = M/Y
(CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m)
"Virtualization"
"Linux hypervisor example code" = M/Y
(CONFIG_LGUEST=m)
第五步:肯定依賴性:創建模塊間的依賴信息
make dep
Step 六:清除編譯中間文件 :刪除配置時留下的一些不用的文件
make clean
Step 七:生成新內核,此處內核較小時能夠用make zImage,時間較長,請耐心等待,
make bzImage
Step 八:編譯內核模塊
make modules
Step 九:安裝內核模塊
make modules_install
Step 十:創建ramdisk映像
mkinitramfs -o
/boot/initrd-linux3
.7.10.img
Step 11:安裝新內核
make install
大功告成了有沒有,O(∩_∩)O~,最後一步
Step 12:從新啓動虛擬機
reboot
以上命令都是以管理員身份運行的,登錄重啓後的系統,查看內核版本:
root@ubuntu:~# uname -r
3.7.10
對於雙系統或多系統來講,還需修改grub配置文件,在此很少說。