感谢支持
我们一直在努力

Ubuntu内核的重新编译安装

由于最近在搭建abiCloud云计算环境,所以在node端要安装vbox (当然可以采用vmware等)。由于vbox要编译进内核,所以重新把Ubuntu的内核重新编译了一下。


下面是编译的整个过程:


首先,确认一下内核版本,使用如下命令:( 我node端采用的是Ubuntu 9.10桌面版)


root@hker-laptop:/# # uname -a
返回信息:
Linux hker-laptop 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux
然后从内核网站:http://www.kernel.org/下载你需要的版本。在这里我阴差阳错的下载了2.6.31-8的版本,呵呵比我自带的版本还低,不过没有关系啦,完成任务要紧阿。就以这个版本来安装吧!
首先解压linux-2.6.31.8.tar.gz到/usr/src/目录
root@hker-laptop:/usr/src/#cd /usr/src/
root@hker-laptop:/usr/src/linux/#tar zxvf linux-2.6.31.8.tar.gz
root@hker-laptop:/usr/src/linux/#mv linux-2.6.31.8 linux          (新建linux目录,和通过硬连接的方式建立这个目录,貌似没有差别:))


root@hker-laptop:/usr/src/linux/#make oldconfig
root@hker-laptop:/usr/src/linux/#make prepare
root@hker-laptop:/usr/src/linux/#make modules_prepare
root@hker-laptop:/usr/src/linux/#cd ..
root@hker-laptop:/usr/src/#make -C linux  M=/usr/src/linux/net/mac80211/ modules
root@hker-laptop:/usr/src# cp linux/net/mac80211/modules.order linux/
root@hker-laptop:/usr/src# cd linux
root@hker-laptop:/usr/src/linux# make modules_install
root@hker-laptop:/usr/src# cd linux
root@hker-laptop:/usr/src/linux# make all                       (漫长的时间等待,我的编译了大概2个小时吧 :( )
OK终于编译完了!
root@hker-laptop:/usr/src/linux#make install
通过这一步,将会把编译好的 vmlinux-2.6.31.8拷贝到 /boot目录下,并建立System.map-2.6.31.8映射。但是这里少了个initrd.img-2.6.31.8 !这个要自己设定!
生成initrd.img-2.6.31.8文件可以使用mkinitramfs命令。
root@hker-laptop:/usr/src/linux/#cd /lib/modules
root@hker-laptop:/lib/modules/#mkinitramfs -o /boot/initrd.img-2.6.31.8
OK,生成成功!

下面是关键的一步,就是将我们新编译的内核加到启动项,Ubuntu9.10没有采用menu.lst,而是grub2,修改grub.cfg就可以了。
root@hker-laptop:/lib/modules/#chmod +w /boot/grub/grub.cfg
root@hker-laptop:/lib/modules/#gedit /boot/grub/grub.cfg

### BEGIN /etc/grub.d/10_linux ###

### END /etc/grub.d/10_linux ###
之间加入,我们的内核部分。具体如下:
### BEGIN /etc/grub.d/10_linux ###
menuentry “Ubuntu, Linux 2.6.31-14-generic” {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
 set quiet=1
 insmod ext2
 set root=(hd0,1)
 search –no-floppy –fs-uuid –set 81cd49dd-4c54-4f9c-b915-ed559a3e5c85
 linux /boot/vmlinuz-2.6.31-14-generic root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 ro   quiet splash
 initrd /boot/initrd.img-2.6.31-14-generic
}
menuentry “Ubuntu, Linux 2.6.31-14-generic (recovery mode)” {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
 insmod ext2
 set root=(hd0,1)
 search –no-floppy –fs-uuid –set 81cd49dd-4c54-4f9c-b915-ed559a3e5c85
 linux /boot/vmlinuz-2.6.31-14-generic root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 ro single
 initrd /boot/initrd.img-2.6.31-14-generic
}
menuentry “Ubuntu, Linux 2.6.31.8” {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
 set quiet=1
 insmod ext2
 set root=(hd0,1)
 search –no-floppy –fs-uuid –set 81cd49dd-4c54-4f9c-b915-ed559a3e5c85
 linux /boot/vmlinuz-2.6.31.8 root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 ro   quiet splash
 initrd /boot/initrd.img-2.6.31.8
}
menuentry “Ubuntu, Linux 2.6.31.8(recovery mode)” {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
 insmod ext2
 set root=(hd0,1)
 search –no-floppy –fs-uuid –set 81cd49dd-4c54-4f9c-b915-ed559a3e5c85
 linux /boot/vmlinuz-2.6.31.8 root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 ro single
 initrd /boot/initrd.img-2.6.31.8
}
### END /etc/grub.d/10_linux ###

最后一步,也是关键的一步,就是修改default变量:
set default=”3″
这里是3,因为总共4个选项,以0开始。
到这里也就安装完毕了!重启看看是不是变成2.6.31.8了 🙂


注意:root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 要拷贝你原来的版本的值!

赞(0) 打赏
转载请注明出处:服务器评测 » Ubuntu内核的重新编译安装
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏