ubuntu命令安裝內核源碼及升級內核源碼
sudo apt-get install linux-source 會自動安裝當前版本內核的源代碼到 /usr/src
升級內核源碼:
1.將下載過來linux源代碼包(tar.bz2包)解壓到/usr/src下。如果你還不知道怎麼解壓,請google之~解壓完畢後可以在/usr/src目錄下看到一個linux-2.6.31.6的文件夾
2.轉移目錄至linux-2.6.31.6用如下命令:
cd /usr/src/linux-2.6.31.6 www.2cto.com
3.先配置Ubuntu內核:
make menuconfig
具體怎麼配置我不清楚,不過這個基本上不用怎麼配置的,直接選最後一項,save,exit就OK了
4.接著開始編譯Ubuntu內核:make
這是一個漫長的過程,慢慢等吧~~這個花了我將近一個半小時的時間
5.加入模塊:
make modules_install
6.生成可執行的Ubuntu內核引導文件:
make bzImage (注意i字母要大寫)
7.將bzImage復制至/boot下:
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.6 //2.6.32Ubuntu內核的bzImage目錄為arch/x86/boot/bzImage
8.清除多余的創建文件:
make clean //這一步最好還是留到最後來做(現在可以先不跳過這一步),這樣的話,即使你後面操作失誤也可以回到這裡重做,而不需要重新編譯
9.將System.map復制至/boot下:
cp System.map /boot/System.map-2.6.31.6
10.生成initrd.img 這個很重要,我開始弄錯了這個,害的我白重啟了一次。命令:
cd /lib/modules/2.6.31.6 www.2cto.com
sudo mkinitramfs -o /boot/initrd.img-2.6.31.6 //2.6.32可以為sudo update-initramfs -c - k 2.6.32
11.自動查找新Ubuntu內核,並添加至grub引導:
sudo update-grub
這個過程也可以手動完成,方法是更改/boot/grub目錄下menu.lst文件。這個文件引導系統的啟動,結構很簡單,就是指定引導文件而已,可以參考已有的啟動項修改,我的是在該文件中添加如下內容:
title Ubuntu 9.04, kernel 2.6.31
uuid 753efade-04e8-4e2c-8bbb-965e9792b2f5
kernel /boot/vmlinuz-2.6.31.6 root=UUID=753efade-04e8-4e2c-8bbb-965e9792b2f5 ro quiet splash
initrd /boot/initrd.img-2.6.31.6
//9.10采用的是Grub2 啟動文件用grub.cfg代替 該文件所在目錄為/boot/grub 若手動添加為可參考如下:
menuentry "Ubuntu, Linux 2.6.32" {
recordfail=1 www.2cto.com
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,3)
search --no-floppy --fs-uuid --set 3c611c5f-f941-4970-956f-fe4c7bf75714
linux/boot/vmlinuz-2.6.32 root=UUID=3c611c5f-f941-4970-956f-fe4c7bf75714 ro quiet splash
initrd/boot/initrd.img-2.6.32
12.重啟電腦:reboot 你會發現啟動項裡多了一個Ubuntu 9.04, kernel 2.6.31(Ubuntu, Linux 2.6.32)的選項,選擇這個,進入系統。
以上介紹Ubuntu內核更新。
作者 mutes