您的位置:首页 > 运维架构 > Linux

编译Xen 3.4 Dom0 using Linux Kernel 2.6.31 on Ubuntu 9.10 (Karmic)

2011-02-17 22:04 736 查看
10月28日,Ubuntu 9.10正式发布,我的镜像是昨天下好的,昨天晚上装上机器,开始做配置。以下操作都是使用root账户进行的,非root账户请使用sudo。

一、编译 Xen 和 内核
1.准备工作
首先,系统没有的包要先打上,如果你是教育网用中科大的更新源很快的。我主要补充的是下面几个包:

view plaincopy to clipboardprint?

apt-get install fakeroot build-essential

apt-get install crash kexec-tools makedumpfile

apt-get build-dep linux

apt-get install git-core libncurses5 libncurses5-dev

然后,准备源码:
Xen 3.4.1: http://bits.xensource.com/oss-xen/release/3.4.1/xen-3.4.1.tar.gz Linux Kernel 2.6.31.5: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.5.tar.gz 因为没用Xen提供的2.6.18的内核源码,还要下一个源码补丁:
xen-patches-2.6.31-7: http://gentoo-xen-kernel.googlecode.com/files/xen-patches-2.6.31-7.tar.bz2 展开各个包:

view plaincopy to clipboardprint?

tar zxvf linux-2.6.31.5.tar.gz

mv linux-2.6.31.5 linux-2.6.31.5-xen

tar zxvf xen-3.4.1.tar.gz

mkdir xen-patches

cd xen-patches

tar jxvf xen-patches-2.6.31-7.tar.bz2

进到linux-2.6.31.5-xen的目录,给代码打上补丁:

view plaincopy to clipboardprint?

cat ../xen-patches/*.patch1 | patch -p1

2.编译内核
准备一个编译配置,我直接copy了之前的 linux-image-2.6.26-2-xen-686_2.6.26-15_i386.deb 的配置,这个包可以在这这里找到:
Kernel: http://packages.debian.org/lenny/i386/linux-image-2.6.26-2-xen-686/download Modules: http://packages.debian.org/lenny/i386/linux-modules-2.6.26-2-xen-686/download 不过这个配置有点老,所以直接make会有一些配置问题提出来。之前 make menuconfig 一下比较好。然后就可以编译了:

view plaincopy to clipboardprint?

make

make vmlinuz

make modules_install

基本上应该不会报什么错误,不过提醒一下想用 make-kpkg 直接生成 deb 包的同学,想偷懒是不行的哦,make-kpkg 可是会报错的,原因还没有看。第一次编译还是很久的,所以扫雷吧。………………编译好了以后把生成的 vmlinuz 拷贝到 /boot 下面
,另起个名字叫 vmlinuz-2.6.31.5-xen。生成initrd:

view plaincopy to clipboardprint?

mkinitramfs -o /boot/initrd.img-2.6.31.5-xen 2.6.31.5

3.编译 Xen
建议先用 xen-3.4.1/tools/check/chk build 和 chk install 检查一下有没有需要的软件包是否齐备,这里需要注意的是 chk install 的时候会报找不到 udevinfo,这个是因为 udevinfo 已经被 udevadm 取代了,创建一个符号链接就好了:

view plaincopy to clipboardprint?

ln -s /sbin/udevadm /sbin/udevinfo

check pass 的话就可以编译了,直接 make world 是可以的,不过这个会重新编译一个2.6.18的kernel出来,会耗很多时间,所以这里可以用 make xen 来只生成 xen 的 image。生成的文件在 xen-3.4.1/dist/install/boot 下面,把 xen-3.4.1.gz 复制到 /boot 下面。
二、安装
1.糟糕,Grub 升级了!
这是我折腾了一上午的悲剧。Ubuntu 9.10 使用了1.97版本的Grub,也就是Grub2,新版本虽然又很多有点啊,不过在这里可真是一丑遮百俊了。根据 maillist 里面反应的情况,Grub2 和 Xen 不兼容,引导的时候一定会报“Early fatal page fault at ...”然后死掉,而且目前没有补丁可以解决,于是需要降版本回 GRUB。具体的操作可以参见: http://ubuntuforums.org/showpost.php?p=8071880&postcount=18 2.配置启动项

view plaincopy to clipboardprint?

title Xen 3.4.1 / Linux 2.6.31.5

kernel /boot/xen-3.4.1.gz console=vga

module /boot/vmlinuz-2.6.31.5-xen root=<root-location> ro console=tty0

module /boot/initrd.img-2.6.31.5-xen

3.重启
不出什么差错的话这个时候应该就可以看看xen起了没有:

view plaincopy to clipboardprint?

ps -ef | grep xend

xm list

启动了的话是可以看到xend的进程的。xm list也会显示dom0。至此就搞定了~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: