在 Ubuntu 上源码安装 Xen(转,但有修改)

 

这篇文章是在写 在 Debian 上源码安装 Xen 的时候一起写的,原本以为 Ubuntu 和 Debian 很相似、差别不大,配置过程可以直接套用而不用大修改,试了才知道其实不是那么简单。Ubuntu 9.10 使用的是 grub 2.0,被证实一些 bug 会导致 Xen 不能在 grub 2.0 的引导下正常启动,所以一种 workaround 的办法就是删除掉 grub 2.0,使用老版本的 grub. VPSee 不喜欢在服务器上使用 Ubuntu 的最新版本就是因为 Ubuntu 更新速度太快,版本发行太频繁,导致很多旧版本的问题还没解决就要开始赶鸭子上架推新版本,对了,今天好像是 Ubuntu 10.04 LTS 的发行日。以下的操作记录使用最新的 Xen 4.0.0 源代码版本和 Ubuntu 9.10,这里还有在 CentOS 下源码安装 Xen 的过程。
        安装需要的软件包 首先最小化安装 Ubuntu,然后安装编译 Xen 和 Linux xen kernel 所需要的软件包:
$ sudo apt-get install gcc g++ make patch libssl-dev bzip2 gettext /
zlib1g-dev python libncurses5-dev libjpeg62-dev libx11-dev /
libgcrypt11-dev pkg-config bridge-utils bcc bin86 libpci-dev /
libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot /
build-essential crash kexec-tools makedumpfile libncurses5 /
libncurses5-dev iasl
$ sudo apt-get build-dep linux
        安装 Xen hypervisor 和 tools 到 http://www.xen.org/products/xen_source.html 下载最新的 Xen 源代码,然后解开、编译、安装,标准的 Linux 软件源码安装动作:
$ tar zxvf xen-4.0.0.tar.gz
$ cd xen-4.0.0/
$ make xen tools stubdom
$ sudo make install-xen install-tools install-stubdom
        上面 make stubdom 的时候会从网上自动下载一些东西,所以如果是用代理上网的话需要在自己根目录下的 .wgetrc 里加上代理服务器,以便 wget 能通过代理正常下载:
$ vi .wgetrc http_proxy = http://proxy.vpsee.com:3128/ use_proxy = on
加入到自动启动脚本中:
$ update-rc.d xend defaults 20 21
$ update-rc.d xendomains defaults 21 20
      安装 Xen 内核 下载 xen 内核,给内核打补丁:
$ cd
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.8.tar.bz2
$ tar -xjf linux-2.6.31.8.tar.bz2
$ wget http://gentoo-xen-kernel.googlecode.com/files/xen-patches-2.6.31-10.tar.bz2
$ mkdir xenpatch-2.6.31.8
$ cd xenpatch-2.6.31.8
$ tar -xjf ../xen-patches-2.6.31-10.tar.bz2
$ cd .. $ cd linux-2.6.31.8
$ for i in `ls ../xenpatch-2.6.31.8/`; do patch -p1 < ../xenpatch-2.6.31.8/"$i"; done
(经过我在ubuntu10.04上源码安装的实践,发现上面一个命令行的语法是错误的,正確的写法应为:
$ for i in *.patch1; do patch -p1 < ../xenpatch-2.6.31.8/"$i"; done
)
        配置内核,直接把系统已经存在的配置文件拷过来然后在此基础上修改:
$ cp /boot/config-2.6.31-14-server .config
$ make menuconfig
  Processor type and features
---> [*] Enable Xen compatible kernel Networking support
---> Networking options
---> <*> 802.1d Ethernet Bridging Device Drivers
---> XEN
---> [*] Privileged Guest (domain 0) Backend driver support Block-device backend driver Block-device tap backend driver Block-device tap backend driver 2 Network-device backend driver PCI-device backend driver SCSI backend driver USB backend driver <*> Block-device frontend driver
<*> Network-device frontend driver SCSI frontend driver USB frontend driver
<*> Framebuffer-device frontend driver
<*> Keyboard-device frontend driver [*] Disable serial port drivers
<*> Export Xen attributes in sysfs Xen version compatibility (3.3.0 and later)
---> 3.3.0 and later
       配置好内核参数以后,保存配置文件、退出配置界面就可以开始编译 Linux 内核了:
$ make
$ sudo make install
$ sudo make modules_install
$ sudo update-initramfs -c -k 2.6.31.8
$ sudo depmod 2.6.31.8
      如果 Xen 加了内核模块的话加入 /etc/modules 文件以便启动时候自动加载:
$ sudo vi /etc/modules ... netbk blkbk
      Ubuntu 9.10 默认用的是 grub 2.0,被证实一些 bug 会导致 Xen 不能正常启动,删除 grub 2.0 换成老版本的 grub:
$ sudo apt-get purge grub-pc
$ sudo rm /boot/grub/*
$ sudo apt-get install grub
$ sudo grub-install --recheck /dev/sda
$ sudo update-grub
$ sudo vi /boot/grub/menu.lst
      重新启动系统,就应该可以进入 dom0 了:
$ sudo reboot Troubleshooting
     如果重新启动系统能正常进入 dom0 但是执行 xm 命令时报错:
$ sudo xm list Error: Unable to connect to xend: No such file or directory. Is xend running?
     检查 Xen 日志,发现 'Permission denied' 问题,这也是常见问题,是因为 xen tools 和内核不搭配:
$ vi /var/log/xen/xend.log ... [2010-04-16 11:55:57 2320] INFO (SrvDaemon:219) Xend exited with status 1. [2010-04-16 13:56:04 13207] INFO (SrvDaemon:331) Xend Daemon started [2010-04-16 13:56:04 13207] INFO (SrvDaemon:335) Xend changeset: unavailable. [2010-04-16 13:56:04 13207] ERROR (SrvDaemon:347) Exception starting xend ((13, 'Permission denied')) ...
$ vi /var/log/xen/xend-debug.log ... Xend started at Fri Apr 16 13:56:04 2010. domctl operation failed -- need to rebuild the user-space tool set? sysctl operation failed -- need to rebuild the user-space tool set? Exception starting xend: (13, 'Permission denied') ...
      所以解决办法就是下载对应的 xen 内核版本和 xen 工具
<转自:http://hi.baidu.com/zj8la8la/blog/item/399eecc6161bdad2d10060e3.html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值