最近须要研究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配置文件,在此很少说。