ubuntu下xen的安装

  1. 安装时需具备的条件:

    1. 虚拟机上安装:

      1. 机器的cpu 要支持PAE 模式,也即物理地址扩展,同样,Vmware 也要支持,所以最好安装最新版本。

      2. 若是安装带KDBxen ,则最好是在64 位的Linux 系统下安装,因为KDB 调试在64 位系统下才稳定,否则会出现不稳定的情况。

    2. 一个由GRUB 引导的运行在P6 或以上级别的CPU 上的Linux

    3. Iproute2 软件包;

    4. Linux bridge-utils (e.g. /sbin/brctl) Available from http://bridge.sourceforge.net

    5. Linux hotplug system (e.g. /sbin/hotplug 以及相关脚本) Available from http://linux-hotplug.sourceforge.net/

    6. 编译工具(gcc v3.2.x v3.3.xbinutilsGNU make );

    7. Zlib 开发库(如:zlib-dev );

    8. Python v2.2 或更高版本的开发库(如:python-dev );

    9. 对编译文档所需的Latextransfig

  2. VMwareUbuntu9.04Xen 的安装:

    1. 更新或安装xen 所必需的软件包:

      1. 安装mercurialsudo apt-get install mercurial, 以便下载相应的xen 内核版本;

      2. 安装gitsudo apt-get install git/git-core

      3. gawk 包,使用sudo apt-get install gawk

      4. zlibhttp://www.zlib.net 下载zlib1.2.3

        1. tar zvxf zlib-1.2.3.tar.gz

        2. make

        3. sudo make install

      5. bridge-utilssudo apt-get install bridge-utils, sudo cp /sur/sbin/brctl /sbin/

      6. xgettext 的安装:sudo apt-get install gettext

      7. openssl_develzlib_devel 的安装:sudo apt-get install libssl-dev

      8. x11_devel 的安装:sudo apt-get install libx11-dev

      9. udev(dev86)sudo apt-get install bin86sudo apt-get install bcc./chk build 没问题,./chk install 找不到udevinfo ,这是因为Ubuntu9 中没有udevinfo ,只有udevadm ,如何解决??至少编译make dist 时没有影响)

      10. 安装libSDL-devsudo apt-get install libSDL-dev

      11. 安装python-devsudo apt-get install python-dev

      12. makeinfo 安装:sudo apt-get install texinfo

      13. latex 安装(可选):sudo apt-get install texlive

      14. fig2dev 安装:sudo apt-get install transfig

    2. http://www.xen.org/download/ 下载Xen 3.4.0 plus kernel combined source distribution tarball 进行安装;

    3. 解压下载文件:tar zvxf xen-3.4.0.tar.gz

    4. root 用户权限进入xen-3.4.0 文件夹,执行make dist

    5. 修改/config 目录下的Linux.mk 文件,让KERNELS ?=linux-2.6-xen0 linux-2.6-xenU (与xen3.0 手册中的2.4.2 对应)。这样编译出来才会出现xen0xenU 相关的内核,否则只有通用的xen 的内核。

    6. ./install.sh

    7. 安装的是按照xen-3.4.0/linux-2.6.18/buildconfigs 中的linux-defconfig_xen_x86_32 配置文件进行的,该目录下还有关于xen0xenU 的配置文件。xen 是一个通用的版本,可以说是介于xen0xenU 之间的。如需要分别安装xen0xenU ,还需要修改相应的makefile ,将编译时的配置指向xen0xenU

    8. /boot 目录下,出现xen-3.4.0.gz 以及vmlinuz-2.6.18.8-xen

    9. 修改/boot/grub/menu.lst ,添加:

      1. title Xen 3.4.0 / Xen-Hypervisor

      2. kernel /boot/xen-3.4.0.gz

      3. module /boot/vmlinuz-2.6.18.8-xen0 root=/dev/sda1 ro console=tty0

      4. mudole /boot/initrd.img-2.6.18.8-xen0

      5. title Xen 3.4.0 / XenLinux

      6. kernel /boot/xen-3.4.0.gz

      7. module /boot/vmlinuz-2.6.18.8-xenU root=/dev/sda1

      8. module /boot/vmlinuz-2.6.18.8-xenU

重启选择启动Xen ,发现无法启动,说是找不到内核。查看menu.lst 文件,发现都是用initrd 项引导的,试试看。

  1.  
    1. 需要创建initrd-xxx.img 文件或者initrd.gz :使用/usr/sbin 目录下的update-initramfs 命令:

      1.  
        1. /lib/modules 目录下,切换到root 用户,执行update-initramfs –c –k 2.6.18.8-xen

        2. 回到/boot 目录下查看,出现initrd.img-2.6.18.8-xen

        3. g )中加入iv

    2. 重启。

      1. 只安装xen 版本(而非xen0xenU )时,出现无法识别scsi 设备的问题,原因是xen-3.4.0/linux-2.6.18/buildconfigs 中的linux-defconfig_xen_x86_32 中的关于SCSI support type 的配置选项值全是m ,也即编译成模块,这样造成的问题就是在刚刚启动加载时无法识别作为模块的硬盘,从而导致找不到硬盘的错误出现。(不止这些项需要修改,还有很多的配置项需要改动,具体可参见linux-defconfig_xen0_x86_32linux-defconfig_xen_x86_32 的不同)

      2. mkinitrd-cd 的安装(没有用了,用update-initramfs 命令解决了)

        1. 安装libuclibc0 包:http://packages.ubuntu.com/dapper/i386/libuclibc0/download 下载,deb 安装;

        2. 安装uclibc-toolchain 包:http://packages.ubuntu.com/dapper/i386/uclibc-toolchain/download 下载,deb 安装;

        3. 安装libuclibc-dev 包:http://packages.ubuntu.com/dapper/i386/libuclibc-dev/download 下载,deb 安装;

        4. 安装mkinitrd-cd 包:http://packages.ubuntu.com/dapper/admin/mkinitrd-cd 下载,deb 安装,安装后命令为mkinitrd-cd

    3. 运行xen 。重启后从grub 中选择xen 选项启动。重启前一定要禁掉TLS 库。如果您使用  XenLinux 2.6 内核,在用它引导前需要禁用掉 Thread Local Storage (TLS) (线程局部存储)(例如运行 /lib/tls /lib/tls.disabled.   当需要TLS, 可以通过恢复其目录重新启用( 即 mv /lib/tls.disabled /lib/tls). 这是由于当前的TLS 应用程序使用了在Xen 下不允许的段方法. 如果禁用TLS, Xen 中使用的一个仿真模式将会实际性能有所削弱. 如果要避免这种现象, 您需要安装一个`Xen-friendly'(nosegneg) 版的共享库.

      1. 启动还是有问题。正常登录后,关于xen 的命令全都无法使用,原因是python 的路径设置不正确,解决办法有两个:一个是任意安装一个需要python 的小软件,让其自动加载python 的路径都root 中;另外一个就是手工添加路径:参见python path set 文件,主要是设置PYTHONPATH

xul@xul-desktop:/usr/lib/python2.6/site-packages/xen/xm$ env |grep -i py

PWD=/usr/lib/python2.6/site-packages/xen/xm

OLDPWD=/usr/lib/python2.6/site-packages/xen

xul@xul-desktop:/usr/lib/python2.6/site-packages/xen/xm$ export PYTHONPATH = /usr/lib/python2.6/site-packages/

xul@xul-desktop:/usr/lib/python2.6/site-packages/xen/$su

口令:

root@xul-desktop:/usr/lib/python2.6/site-packages/xen/xm$ env |grep -i py

PWD=/usr/lib/python2.6/site-packages/xen/xm

OLDPWD=/usr/lib/python2.6/site-packages/xen

root@xul-desktop:/usr/lib/python2.6/site-packages/xen/xm$ export PYTHONPATH = /usr/lib/python2.6/site-packages/

  1.  
    1.  
      1. 设置好python 路径后,启动xendxend start ,运用xm list 查看xen 是否正常。

root@xul-desktop:/usr/lib/python2.6/site-packages/xen/xm# /etc/init.d/x

x11-common xend xendomains

root@xul-desktop:/usr/lib/python2.6/site-packages/xen/xm# /etc/init.d/xend

Usage: /etc/init.d/xend {start|stop|status|restart|reload|force-reload}

root@xul-desktop:/usr/lib/python2.6/site-packages/xen/xm# /etc/init.d/xend start

Ignoring unknown interface eth0=eth0.

SIOCSIFNAME: Device or resource busy

/usr/lib/python2.6/site-packages/xen/util/acmpolicy.py:20: DeprecationWarning: the sha module is deprecated; use the hashlib module instead

import sha

/usr/lib/python2.6/site-packages/xen/xend/XendAPI.py:21: DeprecationWarning: the sets module is deprecated

import sets

ifdown: interface eth0 not configured

SIOCSIFNAME: Device or resource busy

/usr/lib/python2.6/site-packages/xen/util/acmpolicy.py:20: DeprecationWarning: the sha module is deprecated; use the hashlib module instead

import sha

/usr/lib/python2.6/site-packages/xen/xend/XendAPI.py:21: DeprecationWarning: the sets module is deprecated

import sets

root@xul-desktop:/usr/lib/python2.6/site-packages/xen/xm# ps ax|grep xen

9 ? S< 0:00 [xenwatch]

10 ? S< 0:00 [xenbus]

4939 ? S 0:00 xenstored --pid-file /var/run/xenstore.pid

4944 ? S 0:00 /usr/bin/python2.6 /usr/sbin/xend start

4945 ? Sl 0:00 /usr/bin/python2.6 /usr/sbin/xend start

4947 ? Sl 0:00 xenconsoled

5050 pts/0 R+ 0:00 grep xen

root@xul-desktop:/usr/lib/python2.6/site-packages/xen/xm# xm list

/usr/lib/python2.6/site-packages/xen/util/acmpolicy.py:20: DeprecationWarning: the sha module is deprecated; use the hashlib module instead

import sha

Name ID Mem VCPUs State Time(s)

Domain-0 0 462 1 r----- 81.1

你可能感兴趣的:(xen虚拟机)