在 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 10.04 上编译安装 Xen 4.0.1 可能会遇到 xend 启动问题

安装需要的软件包

首先最小化安装 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 gawk

$ 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

加入到自动启动脚本中:

$ sudo update-rc.d xend defaults 20 21
$ sudo 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

配置内核,直接把系统已经存在的配置文件拷过来然后在此基础上修改:

$ 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 工具。

评论 (225 Comments)

  1. 这真是个好博客!想请问:安装、使用xen,在debian好,还是ubuntu好?看了几篇您文章发现ubuntu好像总是备选一样。

  2. 这两个都差不多啊,做 xen 服务器没什么差别。

  3. 多谢了

  4. 我想问下,为什么安装xen的时候,非要给内核打补丁呢,不打补丁的话,可以安装不?

  5. 因为 Linux 的标准内核是不包含 Xen,不打补丁就没有 Xen 啊。

  6. 了解了,我还有个问题,你里面对内核打了xen的补丁后,然后又对内核进行了相关的配置,配置后才编译的。但是如果只是单纯的对内核打了xen的补丁,然后直接编译,这样会不会有什么问题呢?还是说,你对打了补丁后的内核进行配置,是为了更加优化性能?谢谢

  7. ubuntu 9.10 是 debian 6 体系的。不会有很大不同。

    楼主如果用 debian 6 的话,应该也是 grub 2 了啊。

  8. 不是的,ubuntu 9.10 是从 Debian 的不稳定版本 Sid 开始的,我不清楚 Sid 是否用的是 grub 2,但是 Debian 稳定版本的 5.04 和 4.0 都不是用的 grub2.

  9. 你开始用xen4在生产环境了嘛?稳定性如何,性能如何呀。

  10. 没有,几百号人每天都要用的,不敢随便升级到 xen4.

  11. 另外如果是用半虚拟化的方式装centos5.4在一个5520的cpu上,需要在BIOS里面把cpu对虚拟化的支持打开吗?

  12. 如果你要用 HVM 的话,比如安装全虚拟化的 windows 的话就需要打开。一般来说,建议打开,有一些对虚拟化优化的指令。

  13. > 不是的,ubuntu 9.10 是从 Debian 的不稳定版本 Sid 开始的,

    严格的说当然是这样,但是如果你现在安装一个 debian 6 (squeeze),就会发现同现在的 ubuntu 10.04 大同小异。

    debian 6 现在虽然还是叫做 testing,但是通常也比同时期的 ubuntu (例如 ubuntu 10.04)要稳定得多。我个人是宁可使用 debian testing 去架站点,也不会选择同一时期的 ubuntu 的。至于 debian stable 的问题是它往往太老了。

    ubuntu 8.10, 9.04, 9.10, 10.04 是一个渐进的过程,他体现了 debian 的一个 testing 怎么最终变成 stable 的过程,现在 10.04 发布了,不久以后,debian 6 就会发布。

    与 debian 5 最接近的是 ubuntu 8.04。你在这个文章中遇到的问题,并不是 debian 同 ubuntu 的差异,而是 debian 5 和 debian 6 的差异。

    可以确认的是:debian 6 和 debian sid 目前都用 grub 2。而 debian 6 预计今年8月发布。

  14. 我用的是Ubuntu10.04 Server 64bit,Xen4.0,内核我用了linux-2.6.34,补丁是xen-patches-2.6.34-1,安装后还是出现了如下的错误:

    $ sudo xm list
    Error: Unable to connect to xend: No such file or directory. Is xend running?

    请问如何选择对应的Xen tool和内核版本呢?

  15. Xen 4.0.0 的默认对应的 Linux kernel 是 2.6.31.x 版本,你可以用这个版本的 linux kernel 试一下。

  16. 我用了linux-2.6.31.10和xen-patches-2.6.31-10,依旧出现:

    $ sudo xm list
    Error: Unable to connect to xend: No such file or directory. Is xend running?

  17. $ sudo xm list
    Error: Unable to connect to xend: No such file or directory. Is xend running?

    引起这个问题的原因还可能是Python新版本不兼容,Xen只支持到Python2.5,而Ubuntu9.04开始就是Python2.6了,所以要解决这个问题可以先卸载Python2.6在安装Python2.5,或者用Ubuntu8.04。

  18. 嗯,xen 大部分工具和脚本都是 python 写的,所以 python 版本和 xen 工具版本之间的兼容也是排错过程中需要检查的,谢谢指出来。

  19. 我的系统是ubuntu9.04+xen4.0 但是在启动xen时始终卡在kernel_thread_helper+0×7/0×10
    这里不动,请问楼主遇到过这种情况么,具体应该怎么解决呢,谢谢

  20. 检查一下内核配置,kernel_thread_helper+0×7/0×10 在没有 xen 的情况下也会出现,所以不一定是 xen 的问题,检查一下其他地方。

  21. 楼主您好 我安装的版本是ubuntu 9.04server 版+xen 4.0 前面下载编译一切正常,但是在内核配置的时候,为什么我的BOOT目录下没有config-2.6.31-14-server这个配置文件 而是config-2.6.31-14-generic-pae 这个文件 并且我把这个现成的配置文件拷贝到.config时 配置菜单还是2.6.31-8的内核配置菜单。 和您上面写的2.6.31-14的配置菜单很多都对应不上,请问问题出在什么地方了呢,还有就是您在blog中写的ubuntu 9.10的具体版本是什么,谢谢关注

  22. 你可能安装的是32位版本的 Ubuntu,config-2.6.31-14-generic-pae 是对 32位+pae 的。这篇文章是在 64位 Ubuntu 9.10 Server 上操作的。

  23. 谢谢楼主的答复,按照您的提示我安装了ubuntu 9.10 64位server版,前面的问题果然解决了,但是又出现了新的问题就是您在blog中提到的’Permission denied’ 问题。我查看了出错日志和您blog中的一样。我xen版本是4.0 linux内核版本是2.6.31.8 它俩应该是相对应的,并且我把Python版本由2.6降低到了2.5。我想问下降完Python版本以后是否需要重新编译安装xen呢。下面这是出错日志的部分
    Exception starting xend ((13, ‘Permission denied’))
    Traceback (most recent call last):
    File “/usr/lib/python2.6/dist-packages/xen/xend/server/SrvDaemon.py”, line 339, in run
    servers = SrvServer.create()
    File “/usr/lib/python2.6/dist-packages/xen/xend/server/SrvServer.py”, line 251,

  24. 看到你的错误信息,显然 xen 还在试图用 python2.6 版本(“/usr/lib/python2.6/”),你需要修改环境变量、路径什么的让 xen 使用你低版本的 Python,Python 版本的兼容性直接关系到你的 xend 等一些工具的正常运行。

  25. 楼主您好!我这次尝试先降低python到2.5版本,然后再编译内核和xen工具 终于成功启动了dom0 并且xen工具也能正常的使用了。但是再创建虚拟机时又出现了问题。安装virt-manager工具的时候,新版的virt-manager只能支持python2.6,即虚拟机的管理安装工具无法安装,楼主遇到过此类问题么,另外如果不安装libvirt和virtmanager能否在xen下创建虚拟机呢

  26. 楼主有时间的话麻烦看下我的虚拟windows xp配置文件,是否哪出现了错误,为啥不能从光盘引导安装
    kernel = “/usr/lib/xen.boot.hvmloader”
    builder = ‘hvm’
    memory = 512
    name = “winxp”
    device_model = ‘/usr/lib/xen/bin/qemu-dm’
    vcpus = 1
    vif = [‘type=ioemu,bridge=eth0’]
    disk = [‘file:/var/xen/images/WinXp.img,ioemu:hda,w’]
    cdrom = ‘dev/cdrom’
    ne2000 =0
    boot = ‘d’
    用xm create命令后 系统卡住很长时间 最后报错

  27. 报的错误是:Device 0 (vif)could not be connected Hotplug scripts not working
    错误日志:
    xs_read(/local/domain/0/device-model/l/xen_extended_power_mgmt):read error

  28. ‘dev/cdrom’ 应该是 ‘/dev/cdrom’,这是个小问题,还有 xm create 是启动虚拟机不是创建虚拟机,你需要 virt-manager 或者用 virt-install 之类的创建一个虚拟机以后才能用 xm 启动。

  29. 不用 virt-manager 你可以用 virt-install 安装,不过 virt-install 也需要 libvirt 库,完全不用 libvirt 和 virt-manager 也可以安装,不过过程很复杂,建议你还是把 libvirt 搞定吧。

  30. 十分感谢楼主您在百忙之中抽出时间回复我的提问,多谢!virt-manager的问题困扰了我一天 昨天好不容易把DOM0成功安装了 因为python2.6下无法使用xm命令 我降python版本到2.5才可以使用xm命令,但是现在源中的virt-install libvirt库和virt-manager都是python2.6写的 =。=!

  31. 楼主您好,由于学校实验需要想搭建一个xen平台,这10多天一直在忙这个事情,费了很大劲终于把xen启动了,但是由于无法安装virt-manager和lib-virt,导致xen的虚拟机无法创建,现在卡在这里。系统是ubuntu 9.10+xen4.0+linuxkernel-2.6.31.8。请问楼主是否有成功率比较高,稳定的xen安装文档发给我一份,在下不胜感激!至于linux操作系统哪个都行,最好是ubuntu。能否冒昧的问一句您现在自己使用的是xen版本和linux系统是哪个 我的邮箱:1045270298@qq.com 多谢了

  32. 你可以从二进制安装开始,在 Ubuntu 上安装和配置 Xen,比较容易上手,用 xen-create-image 创建虚拟机不需要 virt-manager,如果你是新手遇到问题不知道怎么解决的话可以改用 CentOS,在 CentOS 上二进制安装和配置 Xen会容易一些,virt-manager 是 RedHat 公司开发,用 RHEL/CentOS/Fedora 版本直接安装要容易得多,等混熟了在用其他版本 Linux,你就会觉得都是一样的。我们机器上的 xen 环境都不同,大部分在使用 xen 3.4/3.2/3.0 以及 centos/debian/ubuntu/fedora/opensolaris 的混合。

  33. 谢谢楼主,由于做的实验涉及到修改xen的代码,因此二进制安装就放弃了。我用xen-create-image创建过,但是遇到了很多问题 主要是xen-create-image的参数不太清楚怎么设置。楼主能指点一下么,感激不尽。我QQ:1045270298

  34. xen-create-image 的参数很多,不可能都记得啊,google 一下就知道了:)

  35. 我用xen 4.0 也是自己编译的
    装domU 遇到一个奇怪的问题

    dom0 kernel 2.6.32 + xen patch

    domU 是windows 7
    使用HVM

    配置文件写好后启动domU

    xm create windows7.cfg

    开始可以,但是, shutdown domU 之后就无法再启动了
    报错: Device (vif) could not be connect. hotplugin script not working

    重启dom0 后,domU 又可以通过 xm create 启动了
    但domU 一旦关闭,就无法再启动,
    也就是说
    每次系统启动后,只有第一次能启动domU ,关闭domU 后就再无法启动
    看起来是网络问题,vif 是domU 的虚拟网卡.

    第一次启动domU 的时候用ifconfig 观察
    会多出一个 tap设备和vif对应
    vif1.0 对应 tap1.0
    domU 能启动

    但第二次启动的时候,
    tap1.0 变成tap3.0
    vif依然是 vif1.0
    domU 无法启动…

  36. 你第二次启动 domU 的时候 xend 还在吗?还能 xm list 吗?猜测你第一次启动 domU 的时候 xend 完好,关闭 domU 后某种原因 xend 不运行了,造成第二次企图 xm create 失败(因为没了 xend)。你安装了 bridge-utils 工具了吗?还有,检查一下你的 /etc/xen/xend-config.sxp 是不是这样的:
    (network-script network-bridge)
    #(network-script network-dummy)

  37. xend 一直在
    xm 命令都可以正常运行

    brctl show 显示
    bridge name bridge id STP enabled interfaces
    eth0 8000.00241d25d326 no peth0
    vif1.0
    tap3.0

    都在eth0网桥上

    /etc/xen/xend-config.sxp
    (network-script network-bridge)

    配置文件中 vif = [ type=ioemu, bridge=eth0 ]

  38. 你的 dom0 和 domU 都用 eth0?把它改成 xenbr0 试试:
    vif = [ ‘type=ioemu, bridge=xenbr0’ ]

  39. 楼主我把libvirt和virt-manager成功装上了 但是在用virt-manager创建虚拟机的时候出现错误Unable to complete install ‘
    POST 操作失败:xend_post:来自 xen 守护进程的错误:(xend.err ‘Device 0 (vif) could not be connected. Hotplug scripts not working.’)这个问题您遇到过么

  40. xen 3.2 以后网络结构改了没有xenbr0了
    我试过了,改xenbr0也不行…..

  41. 在 Ubuntu 上默认的 /bin/sh 指向的是 dash,dash 解释 hostplug scripts 的时候会报错,所以解决办法就是让 sh 连到 bash:sudo ln -s -f /bin/bash /bin/sh
    如果问题没解决你看看 /var/log/xen-hotplug.log,看看有什么错误信息。

    当然这只是一种可能,还有其他情况会导致这个 Device 0 (vif) could not be connected. Hotplug scripts not working.’ 错误。

    还有,在 Ubuntu 上想要 xen 管理界面的话最好就用 Ubuntu 上的一套 sudo apt-get install ubuntu-virt-mgmt

  42. 日志呢,看看 xen 相关日志 /var/log/xen-hotplug.log, /var/log/xend-debug.log, /var/log/xen/…, 有什么报错。

  43. 楼主,我的/var/log/文件夹中没有xen-hotplug.log这个日志,这是什么原因呢。另外我有个疑问是 我在终端执行brctl show 没有vif1.0 而是virbr0。vif是DomU的虚拟网卡 那在xend启动 只有Dom0没有DomU的时候,vif会存在么

  44. /var/log/xen/xend.log

    [2010-07-07 20:26:54 5145] DEBUG (XendDomainInfo:1891) XendDomainInfo.handleShutdownWatch
    [2010-07-07 20:26:54 5145] DEBUG (DevController:139) Waiting for devices tap2.
    [2010-07-07 20:26:54 5145] DEBUG (DevController:139) Waiting for devices vif.
    [2010-07-07 20:26:54 5145] DEBUG (DevController:144) Waiting for 0.
    [2010-07-07 20:26:54 5145] DEBUG (DevController:628) hotplugStatusCallback /local/domain/0/backend/vif/3/0/hotplug-status.
    ##以上是启动的时候到这里卡住,等待,然后超时关闭,
    ## 下面是关闭的过程,这里和正常启动关闭没什么不一样…..
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:3053) XendDomainInfo.destroy: domid=3
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2411) Destroying device model
    [2010-07-07 20:28:34 5145] INFO (image:615) windows_xp device model terminated
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2418) Releasing devices
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2424) Removing vif/0
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:1286) XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2424) Removing console/0
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:1286) XendDomainInfo.destroyDevice: deviceClass = console, device = console/0
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2424) Removing vbd/768
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:1286) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/768
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2424) Removing vbd/5632
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:1286) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/5632
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2424) Removing vfb/0
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:1286) XendDomainInfo.destroyDevice: deviceClass = vfb, device = vfb/0
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2416) No device model
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2418) Releasing devices
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2424) Removing vif/0
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:1286) XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2424) Removing vbd/768
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:1286) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/768
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:2424) Removing vbd/5632
    [2010-07-07 20:28:34 5145] DEBUG (XendDomainInfo:1286) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/5632

  45. 如果august童鞋解决这个问题,麻烦也把解决方案说下吧,谢谢大家

  46. August的宿主系统是ubuntu 9.10 server 64位么,试过用virt-manager安装DomU么

  47. HOST 是Arch Linux

  48. 各位是否知道 虚拟网络设备中 tap 设备是干嘛的, Xen network 没有说明,也许和这个有关

    第一次启动domU 的时候用ifconfig 观察
    会多出一个 tap设备和vif对应
    vif1.0 对应 tap1.0
    domU 能启动

    但第二次启动的时候,
    tap1.0 变成tap3.0
    vif依然是 vif1.0
    domU 无法启动

    也许这是个亮点

  49. tap 是虚拟网卡,是 qemu 创建的,只有全虚拟(HVM)才会由 qemu 创建 tap,创建 tap1.0 的时候会调用 /etc/xen/qemu-ifup 脚本,检查一下 /var/log/xen/xend.log, /var/log/xen/qemu-dm-?.log 看看传给 qemu 一些什么参数。建议你在 xm create windows7 前运行一下 udevmonitor,监测一下 tap3.0 是怎么被创建的,看看会不会有帮助。如果你确信是 tap 虚拟设备的问题话,你在 domU 配置文件中去掉所有网络配置,看看能不能启动 domU,这样把问题隔离开有助于找问题。

  50. vpsee您好,为啥新版本的virt-manager建立DomU不支持的时候不能选择iso镜像和光盘安装呢,有什么办法可以达到此目的

  51. 求助Vpsee,我在用virt-manager进行安装DomU的时候,提示信息如下:
    Unable to complete install:‘Could not find an installable distribution at
    ‘http://debian.ustc.edu.cn/ubuntn/dists/jaunty/main/installer-amd64’
    是不是我的URL写错了?

  52. 你要从 iso 安装的话一般是全虚拟,你需要确定你的 CPU 是不是支持 Intel VT 或 AMD SVM 的。你提供的那个 http://debian… url 访问不了啊。

  53. 楼主您好,我确定我的CPU是支持Intel VT的。但是种种迹象表明 我编译出来的是个半虚拟的环境,是不是选择内核选项的时候有问题了呢,如果想编译一个全虚拟化的环境 在哪需要进行特殊的设置么?上面的那个URL有个字母错了 正确的是http://debian.ustc.edu.cn/ubuntu/dists/jaunty/main/installer-amd64

  54. 你编译 xen 的时候默认就编译了全虚拟环境,否则的话(如果你硬件不支持全虚拟的话)你会在编译的时候遇到如下错误:
    *** [subdir-all-hvmloader] Error 2
    Leaving directory `/home/vpsee/xen-4.0.0/tools/firmware’
    你可以参考:Xen 支持的虚拟机类型来判断你的当前内核是否支持全虚拟的:
    # cat /sys/hypervisor/properties/capabilities
    你安装了 qemu 吗?xen 需要有 qemu 工具的支持来创建和运行全虚拟。

  55. 楼主,我这样理解不知道对不,如果CPU是支持全虚拟化的,那么在编译过程中不用配置,系统自动就会编译成全虚拟化环境。
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
    显示有VMX项
    cat /sys/hypervisor/properties/capabilities

    xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64

  56. 通过apt-get install qemu安装了qemu,但是当用virt-manager 选择xen(fullvirt)还是会出现如下错误
    Unable to complete install: ‘POST 操作失败:xend_post:来自 xen 守护进程的错误:(xend.err “Error creating domain: (1, ‘Internal error’, ‘Could not open kernel image (2 = No such file or directory)’)”)’
    选择xen(paravirt)就不会出现错误,能正常创建Domain
    打开新立得,检查只安装了qemu,我不知道与qemu相关的那些软件包是否需要安装 例如qemubuilder等等,特向楼主请教

  57. 你看看 ~/.virt-manager/virt-manager.log 日志有什么报错信息没有?

  58. [二, 13 7月 2010 09:48:43 virt-manager 2552] DEBUG (Installer:265) Removing /var/lib/xen/virtinst-vmlinuz.2pNuYW

    [二, 13 7月 2010 09:48:43 virt-manager 2552] DEBUG (Installer:265) Removing /var/lib/xen/virtinst-initrd.img.ABhVk0

    [二, 13 7月 2010 09:48:43 virt-manager 2552] DEBUG (connection:944) Couldn’t fetch domain id ‘1’: it probably went away

    [二, 13 7月 2010 09:48:43 virt-manager 2552] ERROR (create:1503) Unable to complete install ‘ POST 操作失败:xend_post:来自 xen 守护进程的错误:(xend.err “Error creating domain: (1, ‘Internal error’, ‘Could not open kernel image (2 = No such file or directory)’)”)

    Traceback (most recent call last):
    File “/usr/share/virt-manager/virtManager/create.py”, line 1485, in do_install
    dom = guest.start_install(False, meter = meter)

    File “/usr/lib/python2.6/dist-packages/virtinst/Guest.py”, line 541, in start_install
    return self._do_install(consolecb, meter, removeOld, wait)

    File “/usr/lib/python2.6/dist-packages/virtinst/Guest.py”, line 633, in _do_install
    self.domain = self.conn.createLinux(install_xml, 0)

    File “/usr/lib/python2.6/dist-packages/libvirt.py”, line 1077, in createLinux
    if ret is None:raise libvirtError(‘virDomainCreateLinux() failed’, conn=self)

    楼主您好,上面是安装全虚拟化时候日志中的出错信息

  59. 这可能是 ubuntu/virt-manager 的一个 bug,virt-manager 想用 /usr/lib/xen-default/hvmbootload 但是找不到(路径不对),真正的路径在 /usr/lib/xen/boot/hvmloader,你检查一下你的系统是不是这样的,如果是的话,做个连接就可以了:
    # cd /usr/lib/
    # ln -s xen xen-default

  60. 你好,我在ubuntu 9.04 desktop上装的xen 3.4.2, 内核打补丁、编译install后,reboot时到
    [1.624918] EIP: [] xen_12_entry_update+0x1871 0x1b0 SS:ESP e021:ecc2bbdc
    [1.633630] —[end trace cb154c65eca2bc3e]—
    就卡住不动了,
    不知道是什么原因引起的? 谢谢!

  61. 忘了说: 我的CPU不支持虚拟化,不知道这会不会影响源码安装Xen呢?

  62. 给的信息太少,没法判断是什么原因。不过和 CPU 是否支持虚拟化无关。

  63. 请问一下,有ubuntu 10.04的安装教程么?或者fedora 13的教程

  64. 诶诶~~ 我也卡在 []? kernel_thread_helper +0x7/0x10
    看见您说过这是内核配置问题..但是我应该怎么查呢..?

  65. 用您提供的2.6.31.8内核编译完之后以此作为核心载入ubuntu10.04也不能成功..我的cpu有点老的..大概七年前的P4 2.8GMz主频.型号不知道…我去kernel.org下载了最新的2.6.35编译好了ubuntu10.04可以进入了.但是进xen不行…症状是XEN信息载入之后(看起来XEN已经载入完成了,之前用2.6.31.8时候是xen载入通过.然后核心提示找不到硬盘)..屏幕就黑掉了..连kernel panic都没有..有没有什么指点..谢谢

  66. xen 不在 linux 主流内核树里,只能通过 patch 方式加到内核,所以只有特定的 linux 内核版本才能通过 xen patch 的方式完整编译 xen 和 dom0 kernel,所以你要确定 2.6.35 是否有相应的 xen patch.

  67. 诶诶..现在试出两种情况..一种是无法mount..另一种就是kernel_thread_helper了..估计是电脑硬件的问题了吧..

  68. 您好。装完xen重启后,进入了xen核的Ubuntu。
    启动xend start的时候报错:
    ifdown:interface eth1 not configured
    RTNETLINK answers: Device or resource busy.
    /etc/xen/scripts/network-bridge:line 240:sigerr:找不到命令

    现在ifconfig只有eth1 和 lo的内容。
    而且xm list也能看到domain0在运行。

    我的网络是dhcp的,eth1自动获取IP。

    请问应该如何配置。非常感谢

  69. 1、检查一下 bridge-utils 是否安装?apt-get install bridge-utils 看看 brctl show 输出什么;
    2、如果你用的是 eth1,修改 /etc/xen/xend-config.sxp 的 network bridge 部分,(network-script ‘network-bridge netdev=eth1’);
    3、你自己编译内核检查一下内核里面的配置 CONFIG-BRIDGE 有没有选上;
    4、Xend 可能和 netplugd 冲突,关闭 netplugd 服务。

  70. 最近几个礼拜都在弄这个环境,我用的是ubuntu-10.04.1-server-i386.iso的虚拟机安装xen 4.0.1,dom 0依然无法启动,怀疑可能是python 2.6版本而导致的内核编译有问题,请问如何在安装时降低python版本到2.5.5?是不是与这个有关?

  71. python 版本应该和内核无关,但是和 xen 的外部工具有关,比如如果你的 xend, xm 之类的工具运行不了可能就和 python 版本有关,因为这些工具都是由 python 写的。

  72. 请问一下楼主:有没有可能在32位机的ubuntu下成功安装XEN?

  73. 32位和64位都可以安装 xen.

  74. 我问一下,重启动的时候不断出现BUG: soft lockup – CPU#1 stuck for 111s! 是什么原因呀

    应该是
    BUG: soft lockup – CPU#1 stuck for 111s![swapper:0]
    Modules linked in:
    Pid:0……
    (后面一大段,reboot后就不断出现这一段)

  75. 可能是一个 bug,https://bugs.launchpad.net/ubuntu/+source/linux/+bug/254326
    你在 /boot/grub/menu.lst 里对 kernel 加上 noapic 参数再启动看看。

  76. $ 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
    这个好像没有创建linux-2.6.31.8这个文件夹,无法找到,是不是要创建呢?

  77. 我用的是xen3.4.3-linux-2.6.31.5-ubuntu-9.10,启动xen时卡在
    hub 2-1:1.0:USB hub found
    hub2-1:1.0:8 ports detected
    这里不动,请问楼主遇到过这种情况么,具体应该怎么解决呢,谢谢

  78. @wangwu618
    这个应该和 xen 无关吧,你配置 linux 内核的时候有没有加上你电脑需要的驱动,比如用的是 USB 键盘,但是配置内核忘了加相关的支持。

  79. 请问 楼主 ubuntu 必须是 server么? desktop的 行不? 谢谢!

  80. @icai
    desktop 也可以,软件包都是一样的。

  81. 在这一步 $ sudo update-initramfs -c -k 2.6.31.8 时出错了
    update-initramfs: Generating /boot/initrd.img-2.6.31.8
    Cannot find /lib/modules/2.6.31.8
    update-initramfs: failed for /boot/initrd.img-2.6.31.8
    请问是什么原因呀?

  82. @Anita
    你用的是 Ubuntu 9.10 吗?你看看 ls /var/lib/initramfs-tools/ 下内核版本是多少再 sudo update-initramfs 对应的内核版本。

  83. 您好,我是一名初学者,有个地方不太懂,想请教一下
    wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.8.tar.bz2
    这一步是下内核吗?为什么不能用系统本身的呀?
    如果我的内核版本是 2.6.31-22 ,那patch的时候,是不是应该选择相对应的版本号呢?
    ls /var/lib/initramfs-tools/ 下有两个,分别是2.6.31-14-generic 2.6.31-22-generic,那我应该选择哪个呢?

    非常感谢您!

  84. 您好,启动Xen时出现错误
    VFS:Cannot open root device “UUID=………” or unknown-block(0,0)
    这个是什么问题呀?

  85. @Anita
    系统本身的内核不支持 xen 啊,所以需要下载 kernel、打上 xen 补丁,然后编译安装。/var/lib/initramfs-tools 下的版本号需要和内核版本对应。如果你觉得源代码编译安装困难,可以看另一篇:在Ubuntu 上安装和配置 Xen.

  86. 您好,我按照您的方法前面一直没有问题,到 sudo xm list的时候出现错误:
    Traceback (most recent call last):
    File “/usr/sbin/xm”, line 5, in
    from xen.xm import main
    ImportError: No module named xen.xm
    这是说明xen模块没有加载上去么?但是grub里已经显示了
    title Xen 4.0.0 / Ubuntu 9.10, kernel 2.6.31.8
    uuid 67be8f90-3722-4672-acbf-849854bf8281
    kernel /xen-4.0.0.gz
    module /vmlinuz-2.6.31.8 root=/dev/mapper/anita-root ro console=tty0
    module /initrd.img-2.6.31.8
    quiet
    请问是什么原因造成的?应该如何修正呢?

  87. vpsee你好!我在启动xend service的时候,出现了问题
    /etc/xen/scripts/network-bridge: line 231: [: /sys/class/net/ppp1: binary operator expected
    ifdown: interface ppp1 not configured
    ifdown: interface ppp0 not configured
    Error: either “dev” is duplicate, or “ppp0” is a garbage.
    /etc/xen/scripts/network-bridge: line 240: sigerr: command not found
    请问这是什么原因?
    谢谢!!!非常感谢!!!

  88. 输入virt-manager后
    detail是:
    Unable to open connection to hypervisor URI ‘xen:///’:
    unable to connect to ‘localhost:8000’: Connection refused
    None

  89. @60CaT
    你到 etc/xen/xend-config.sxp 看看里面是否下面两行去掉了注释,并且设成 yes
    (xend-http-server yes)
    (xend-unix-server yes)
    并且如果你 linux 上有防火墙的话也需要打开 8000 端口。

  90. 您好,我按照您的方法前面一直没有问题,到 sudo xm list的时候出现错误:
    Traceback (most recent call last):
    File “/usr/sbin/xm”, line 5, in
    from xen.xm import main
    ImportError: No module named xen.xm
    这是说明xen模块没有加载上去么?但是前面执行一直都没有错误
    请问是什么原因造成的?应该如何修正呢?

  91. @60CaT
    这是因为 Python 解释器找不到 xen 脚本的路径造成的。你打开 Python,然后打印出系统路径,看看 /usr/lib/python2.6/site-packages/xen/ 在不在系统路径里,不在的话想办法加进去。
    $ python
    Type “help”, “copyright”, “credits” or “license” for more information.
    >>> import sys
    >>> print sys.path

  92. vpsee您好,我已经将/usr/lib/python2.6/site-packages/xen/加到系统路径里去了,但是执行xm list的时候,依然有错误:
    Traceback (most recent call last):
    File “/usr/sbin/xm”, line 5, in
    from xen.xm import main
    ImportError: No module named xen.xm
    请问该怎么办呢……T_T

  93. vpsee你好,我最近也在学习这个,安装的过程中遇到个问题,在配置内核时,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
    在终端中是需要的吗?这句话有什么有?

  94. @wqs
    这条命令是必须的,是用来给无 xen 的普通 kernel 打上 xen 的补丁。

  95. 你好,我在make的过程中遇到了这个问题:
    To see full details build your kernel with:
    ‘make CONFIG_DEBUG_SECTION_MISMATCH=y’
    GEN .version
    CHK include/linux/compile.h
    UPD include/linux/compile.h
    CC init/version.o
    LD init/built-in.o
    LD .tmp_vmlinux1
    ld: kernel image bigger than KERNEL_IMAGE_SIZE
    ld: kernel image bigger than KERNEL_IMAGE_SIZE
    make: *** [.tmp_vmlinux1] 错误 1
    wqs07@wqs07-desktop:~/linux-2.6.32.21$ sudo make install
    [sudo] password for wqs07:
    sh /home/wqs07/linux-2.6.32.21/arch/x86/boot/install.sh 2.6.32.21 arch/x86/boot/vmlinuz \
    System.map “/boot”

    *** Missing file: arch/x86/boot/vmlinuz
    *** You need to run “make” before “make install”.
    貌似是缺失了一个文件,我也缺失没有找到,前面的步骤都是按照你的来的,这是怎么问题呢?

  96. 补充的是,我用的是ubuntu10.04,安装的是Xen4.0.1,不知道这个有影响没。

  97. @wqs
    可能内核太大超过了 KERNEL_IMAGE_SIZE 的要求。解决办法是在 make menuconfig 配置内核选项的时候时选择 “Xen version compatibility” 为最新的一个(Xen 3.0.4 or later),不要兼容以前的旧版本(默认好像是 Xen 3.0.2 or later)。

    你需要首先 make 编译成功后才能 make install 安装。

  98. 您好,我按照你上面的全部能够安装成功,重新启动后会有多个列表可以选择,比如:
    Xen 4.0.1/ubuntu 10.04.02….
    ubuntu 10.04.02 LTS …
    ubuntu 10.04.02 LTS…(recovery mode)
    是不是只有第一个进去才是基于Xen的ubuntu系统,第二个进去是自己原来的ubuntu系统?
    另外的是,我的电脑装了win7和ubuntu的双系统,在没有安装xen之前两个系统都是可见的,但是安装Xen之后,启动电脑里面只有上述几个选项,看不到win7的系统了,请问这是怎么回事?

  99. /boot/grub/menu.lst中的内容为:
    title Xen 4.0.1 / Ubuntu 10.04.2 LTS, kernel 2.6.32.21
    uuid b67f87ae-9e2f-42f4-ba82-b3e3c2f3f6af
    kernel /boot/xen-4.0.1.gz
    module /boot/vmlinuz-2.6.32.21 root=UUID=b67f87ae-9e2f-42f4-ba82-b3e3c2f3f6af ro console=tty0
    module /boot/initrd.img-2.6.32.21
    quiet

    title Ubuntu 10.04.2 LTS, kernel 2.6.32.21
    uuid b67f87ae-9e2f-42f4-ba82-b3e3c2f3f6af
    kernel /boot/vmlinuz-2.6.32.21 root=UUID=b67f87ae-9e2f-42f4-ba82-b3e3c2f3f6af ro quiet splash crashkernel=384M-2G:64M,2G-:128M
    initrd /boot/initrd.img-2.6.32.21
    quiet

    这样的话,我想只有第一个系统是建立在Xen上面的,后面的几个都不是??但是第一个系统是进不去的,启动时会无法一直进行下去,而后面的系统能够进去。进去之后发现xm list会出现和上面60Cat一样的错误。

  100. @wqs
    可能你更新 grub 的时候把 windows 选项给覆盖了,如果不知道 menu.lst 里面的配置文件怎么写可以 google “grub” 相关文章找个范例。比如:
    title Microsoft Windows 7
    root (hd0,1)
    savedefault
    makeactive
    chainloader +1

  101. @wqs
    第一个是 xen 内核系统,其他的几个都不是,如果 xen 内核启动不成功就是内核编译和安装不正确,需要找到原因后重新配置、编译和 xen 内核。

  102. 请问一下,我目前用的是Ubuntu10.10,linux版本是2.6.35-22,在以上操作中需要那些修改?

    再补充一句:请大侠在内核配置的时候讲的详细点,谢了。嘿嘿

  103. 您好,我想請問一下關於監控network I/O以及disk I/O的問題,
    不管是使用virt-manager, xentop, xenmon這些內建的tool都沒有辦法顯示這兩樣I/O的資料,不知道是否需要修改設定檔才能夠觀察的到呢?
    謝謝。

  104. vpsee,我在安装的过程中没有出现任何的提示错误,配置内核也是按照你这上面来的,我看了你之前和别人交流的话,说Xen并不支持每个linux内核,原因是Xen的开发跟不上,我linux的内核是2.6.32.21,试过N次之后还不成功是不是因为Xen不支持这个内核版本的安装?

  105. vpsee 你好,请问sudo vi /boot/grub/menu.lst这句到作用是什么,这个地方没看明白

  106. @wqs
    不是每个 Linux 内核 Xen 都支持,需要特定版本,Xen 开发团队是在某个特定 Linux 内核版本的基础上开发的。如果不清楚该用哪个版本的 linux 内核源代码的话建议采用本文使用的 linux-2.6.31.8.tar.bz2.

  107. @longxue
    只是打开这个 /boot/grub/menu.lst 文件看一下,看看里面的内容都是否正确。

  108. vpsee大哥你好,我想问一下:在编译Linux内核时有几个Warning,比如:fs/gfs2/ops_inode.c: In function ‘gfs2_mkdir’:
    /home/administrator/linux-2.6.31.8/arch/x86/include/asm/string_32.h:75: warning: array subscript is above array bounds
    ,会不会有大的影响?

  109. @longxue
    编译时候的 Warning 消息可以忽略。

  110. vpsee你好,我在make install 的时候遇到一下问题,请问这是怎么回事?有什么解决方法吗?
    administrator@ubuntu:~/linux-2.6.31.8$ make install
    sh /home/administrator/linux-2.6.31.8/arch/x86/boot/install.sh 2.6.31.8 arch/x86/boot/vmlinuz \
    System.map “/boot”
    /sbin/installkernel: 70: cannot create /boot/vmlinuz-2.6.31.8: Permission denied
    make[1]: *** [install] 错误 2
    make: *** [install] 错误 2

  111. 呵呵,真是不好意思,刚才的那个问题是我的失误:没有权限,呵呵,麻烦了,嘿嘿,不好意思

  112. vpsee 你好,我按您所讲的一步步安装了,sudo reboot后重启机Ubuntu就进不去了,错误提示:Try(hd0,0):NTFS35:no such device:/Ubuntu/install/boot/grab/grab.cfg,然后进入GUN GRUB了,好像是在重装grub的时候出问题了,对不对?还请大侠指点迷津。
    另外,我想问一下:打开/boot/grub/menu.lst ,如何判断里面的内容是否正确?
    小弟在此迷茫很久了,还希望大侠不吝赐教,谢谢了

  113. vpsee你好,在修改系统配置时,我的menuconfig的Enable Xen compatible kernel—>里面没有Enable Xen compatible kernel一项,有Xen compatible一项,可以代替么?

  114. 按照你的意思,不管我原来电脑内核版本是什么,我都可以下载2.6.31.8吗,就是按照你的这个来?我的linux本来的内核是2.6.32.21.

  115. @wqs07
    是的,不用管你原来用的是什么内核。

  116. 下载对应的xen内核版本和xen工具是什么意思呢?我的linux内核是2.6.32.28,下载了xen 4.0.1,安装失败

  117. 我是新手,请问我用ubuntu-10.04.2-server-amd64.iso装好了一个服务器,能用您介绍的方法安装xen吗,是用哪个版本的XEN比较好?内核要换成哪个版本的?

  118. 您好,请问这步sudo vi /boot/grub/menu.lst
    之后需要做什么操作吗?
    需要怎么样修改menu.lst文件吗?

  119. 你好 问下 这个安装的时候xen-tools怎么没有生成啊?单独安装也安装不上。。
    看以前的都是可以直接安装xen-tools的 会在/etc/下生成相应的文件目录。。。。
    这个如果想用怎么办啊?

  120. @fox1987
    一般不需要修改 menu.lst,sudo vi /boot/grub/menu.lst 只是打开这个文件确认一下配置是否正确(一般是对的)。

  121. 我查到一个资料说编译完内核后需要
    $ sudo gedit /boot/grub/grub.cfg
    找到里面的2.6.31.8那个启动项,首先删除“(恢复模式)”的项目,我们不需要。然后修改2.6.31.8的项目如下:

    memuentry ‘Xen, Ubuntu, Linux 2.6.31.8′ –class ubuntu –class gnu-linux –class gnu –class os {
    recordfail
    insmod ext2
    set root=’hd(0,1)’
    search –no-floppy –fs-uuid –set xxxxxxx-xxxx-xxxxxxxxxx
    multiboot /xen-4.0.1.gz
    module /vmlinuz-2.6.31.8 root=/dev/mapper/ubuntu-root ro quiet crashkernel=384M-2G:64M,2G-:128M
    module /initrd.img-2.6.31.8
    }

    其中主要是后面的
    multiboot /xen-4.0.1.gz
    module /vmlinuz-2.6.31.8 root=/dev/mapper/ubuntu-root ro quiet crashkernel=384M-2G:64M,2G-:128M
    module /initrd.img-2.6.31.8
    这个修改 不知道是不是必须的,我按照这个改系统都挂了。grub出错了。。。
    如果不这么改xen会自动加载吗?
    是靠下面的操作完成的xen的加载启动吗?
    $ sudo update-rc.d xend defaults 20 21
    $ sudo update-rc.d xendomains defaults 21 20

  122. 还有个问题 编译内核的路径有么有影响啊?
    我发现有时候我编译完 执行sudo update-grub的时候menu.lst并没有添加我新编译的内核信息

  123. 另外 ,如果编译完 启动后出现那个内核版本,但是选择进去却失败了,错误信息:

    error: invalid magic number
    error: you need to load the kernel first

    press any key to continue…

    这个是什么原因呢。。

  124. 我是下载的Linux Kernel 2.6.31.8,Xen-Patch 2.6.31-10
    在Ubuntu 10.04 server 64bit上面
    执行操作如下:
    $ tar vxjf linux-2.6.31.8.tar.bz2
    $ mkdir xenpatch-2.6.31.8
    $ cd xenpatch-2.6.31.8
    $ tar vxjf ../xen-patch-2.6.31-10.tar.bz2
    $ 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
    cp /boot/config-2.6.32-21-server .config
    $ make
    $ sudo make install
    $ sudo make modules_install
    $ sudo update-initramfs -c -k 2.6.31.8
    $ sudo depmod 2.6.31.8

    然后执行 sudo update-grub
    然后 vi 查看了下 /boot/grub/grub.cfg
    ### BEGIN /etc/grub.d/10_linux ###
    menuentry 'Ubuntu, with Linux 2.6.32-21-server' –class ubuntu –class gnu-linux –class gnu –class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search –no-floppy –fs-uuid –set 9b6decea-1a8c-489b-87fb-b76329efb604
    linux /boot/vmlinuz-2.6.32-21-server root=UUID=9b6decea-1a8c-489b-87fb-b76329efb604 ro crashkernel=384M-2G:64M,2G-:128M quiet
    initrd /boot/initrd.img-2.6.32-21-server
    }
    menuentry 'Ubuntu, with Linux 2.6.32-21-server (recovery mode)' –class ubuntu –class gnu-linux –class gnu –class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search –no-floppy –fs-uuid –set 9b6decea-1a8c-489b-87fb-b76329efb604
    echo 'Loading Linux 2.6.32-21-server …'
    linux /boot/vmlinuz-2.6.32-21-server root=UUID=9b6decea-1a8c-489b-87fb-b76329efb604 ro single
    echo 'Loading initial ramdisk …'
    initrd /boot/initrd.img-2.6.32-21-server
    }
    menuentry 'Ubuntu, with Linux 2.6.31.8' –class ubuntu –class gnu-linux –class gnu –class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search –no-floppy –fs-uuid –set 9b6decea-1a8c-489b-87fb-b76329efb604
    linux /boot/vmlinuz-2.6.31.8 root=UUID=9b6decea-1a8c-489b-87fb-b76329efb604 ro crashkernel=384M-2G:64M,2G-:128M quiet
    initrd /boot/initrd.img-2.6.31.8
    }
    menuentry 'Ubuntu, with Linux 2.6.31.8 (recovery mode)' –class ubuntu –class gnu-linux –class gnu –class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search –no-floppy –fs-uuid –set 9b6decea-1a8c-489b-87fb-b76329efb604
    echo 'Loading Linux 2.6.31.8 …'
    linux /boot/vmlinuz-2.6.31.8 root=UUID=9b6decea-1a8c-489b-87fb-b76329efb604 ro single
    echo 'Loading initial ramdisk …'
    initrd /boot/initrd.img-2.6.31.8
    }
    也显示了我编译的内核版本
    然后执行reboot后也能显示2.6.31.8版本的内核,但是选中启动就提示
    invalid magic number
    您知道怎么回事吗?

  125. @fox1987
    请看文章里面已经指出 “Ubuntu 9.10 默认用的是 grub 2.0,被证实一些 bug 会导致 Xen 不能正常启动,删除 grub 2.0 换成老版本的 grub:”。你用的是 grub 2.0,需要换成老版本的 grub 再试。

  126. Hi,我在ubuntu 8.04上使用linux-2.6.39-rc3内核安装xen4.1.0,xend无法正常启动。我查了一下日志,里面记录了如下的信息:
    cat: /sys/bus/scsi/devices/host0/vendor: No such file or directory
    cat: /sys/bus/scsi/devices/host0/model: No such file or directory
    cat: /sys/bus/scsi/devices/host0/type: No such file or directory
    cat: /sys/bus/scsi/devices/host0/rev: No such file or directory
    cat: /sys/bus/scsi/devices/host0/scsi_level: No such file or directory
    cat: /sys/bus/scsi/devices/host1/vendor: No such file or directory
    cat: /sys/bus/scsi/devices/host1/model: No such file or directory
    cat: /sys/bus/scsi/devices/host1/type: No such file or directory
    cat: /sys/bus/scsi/devices/host1/rev: No such file or directory
    ……省略很多,都是类似的错误。
    我在网上查了一下,这个错误有人遇到过,并不局限于这个版本的xen或者内核。有人说在内核的配置中将CONFIG_XEN_DEV_EVTCHN=m改为CONFIG_XEN_DEV_EVTCHN=y即可,但是我检查了我的配置文件,已经是y了。这个目录下面,确实没有这些文件,您能否解答一下为什么会出现这个错误以及如何修改?

    谢谢。

  127. 补充一下,这些文件我已经找到了,以host0为例,这些文件在
    /sys/bus/scsi/devices/host0/target0:0:0:0/0:0:0:0/
    目录下。

  128. vpsee,你好,我想问一下,我现在在32位的Ubuntu9.10下(内核是config-2.6.31-14-generic)可不可以安装Xen呢?如果不可以,为什么?如果可以的话,那我该怎样安装呢?谢谢了~~

  129. @lognxue
    可以安装,和当前使用什么内核无关。如何安装呢?这正是这篇文章所描述的,你需要阅读这篇文章的内容以及本博客的相关文章。

  130. 在启动dom0 的时候
    [ 2.074266] [] ? autoremmove_wake_function+0x0/0x50
    [ 2.074349] [] ? dput+0x91/0x170
    [ 2.074436] [] ? security_file_permission+0x0/0x50 (类似于这样的很多)
    [ 2.074349] [] ? sdfsdf+0x91/0x170
    [ 2.074349] [] ? sdfsdfsd+0x91/0x170
    [ 2.074349] [] ? sdfsdf+0x91/0x170
    [ 2.074349] [] ? dpsdfsdfut+0x91/0x170
    [ 2.074349] [] ? sdfdsf+0x91/0x170
    [ 2.074349] [] ? sfdsf+0x91/0x170
    [ 2.074349] [] ? dput+0x91/0x170
    [ 2.074349] [] ? dput+0x91/0x170
    [ 2.074349] [] ? dput+0x91/0x170

    没能进去系统,但是在拔插USB的时候有反映。由于对linux 不是特别熟悉。可以告诉我是什么回事吗?
    我用的是Ubuntu 10.04 内核的话。贴子提供的linux-2.6.31.8.tar.bz2
    刚开始以为是内核的问题,所以无论内核,还是xen的版本都换过了。还是同样的问题。
    有谁知道吗?已经做系统无数次了,仍然没成功。

  131. 楼主你好,我遇到了与101楼那位同样的问题,即我按照上述做法都做完了,过程中都是对的,最后也出现了自己编译的xen……,但是我就是进步了dom0,一直卡在外面。唯一的区别是我用的是xen4.1.0.没有吓到4.0.1.请问会是这的原因么?感激不尽!

  132. http://www.xen.org/products/xen_source.html 这个链接上只有4.1了。没有4.0.0,如果可以得话,能都直接给我发一份:zhouchaoyf@gmail.com或qq 412305767.谢谢!

  133. 你好,对于下面这堆代码:其中有的是*选中,有的没有,请问那些啥都没有的是用*还是M选中呢?谢谢!
    $ 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

  134. @super
    要看自己的需要,如果不清楚哪些模块需要的话就使用默认的配置,默认是 M 就是 M,默认没有选就不选。

  135. 楼主你好,我按照上述要求都做了,配置也是一样的:ubuntu9.10 xen4.0.0 内核是2.6.31.8,安装过程很正常,可是最后进步了系统。
    一直卡住,显示为

    ……
    [5.479593] []?kernek_init+0x0/0x18b
    [5.479618] []?kernek_thread_helper+0x7/0x10
    满屏幕都是这样的,我列出了最后两行,一直卡在这里,键盘什么的都无作用,请问这是为什么啊?我从头到尾做了很多次,花了很久可是每次都是这样,还请帮忙看看,谢谢!
    如果需要,我拍成照片传给你。真的很着急高出这个玩意儿,谢谢你了!

  136. 对了,还有一处不一样买就是
    $ cp /boot/config-2.6.31-14-server .config
    我的原来的是不是2.6.31-14-server
    所以我的代码是
    $ cp /boot/config-2.6.31-20-generic-pae .config

    还是说原来的ubuntu必须是server版?谢谢楼主和各位牛人!

  137. @super
    请看看 19、20、21、22、23 楼的留言,和你的问题有点类似,已经解决了。

  138. vpsee, 你好,我是编的xen4.1.0和内核2.6.34.6,编译完了可以进系统,运行xend start后无提示,然后
    xm list
    Error: Unable to connect to xend: Connection refused. Is xend running?
    接着查看xend.log,里面内容是:
    ERROR (SrvDaemon:349) Exception starting xend ((19, ‘No such device’))
    Traceback (most recent call last):
    File “/usr/lib64/python2.6/site-packages/xen/xend/server/SrvDaemon.py”, line 341, in run
    servers = SrvServer.create()
    File “/usr/lib64/python2.6/site-packages/xen/xend/server/SrvServer.py”, line 258, in create
    root.putChild(‘xend’, SrvRoot())
    File “/usr/lib64/python2.6/site-packages/xen/xend/server/SrvRoot.py”, line 40, in __init__
    self.get(name)
    File “/usr/lib64/python2.6/site-packages/xen/web/SrvDir.py”, line 84, in get
    val = val.getobj()
    File “/usr/lib64/python2.6/site-packages/xen/web/SrvDir.py”, line 52, in getobj
    self.obj = klassobj()
    File “/usr/lib64/python2.6/site-packages/xen/xend/server/SrvNode.py”, line 30, in __init__
    self.xn = XendNode.instance()
    File “/usr/lib64/python2.6/site-packages/xen/xend/XendNode.py”, line 1181, in instance
    inst = XendNode()
    File “/usr/lib64/python2.6/site-packages/xen/xend/XendNode.py”, line 163, in __init__
    self._init_cpu_pools()
    File “/usr/lib64/python2.6/site-packages/xen/xend/XendNode.py”, line 382, in _init_cpu_pools
    XendCPUPool.recreate_active_pools()
    File “/usr/lib64/python2.6/site-packages/xen/xend/XendCPUPool.py”, line 754, in recreate_active_pools
    uuid = xstransact.Read(path, ‘uuid’)
    File “/usr/lib64/python2.6/site-packages/xen/xend/xenstore/xstransact.py”, line 307, in Read
    return complete(path, lambda t: t.read(*args))
    File “/usr/lib64/python2.6/site-packages/xen/xend/xenstore/xstransact.py”, line 361, in complete
    t = xstransact(path)
    File “/usr/lib64/python2.6/site-packages/xen/xend/xenstore/xstransact.py”, line 29, in __init__
    self.transaction = xshandle().transaction_start()
    Error: (19, ‘No such device’)
    国外网站说这是xen4.1的一个bug,先运行xencommons.可是我先运行xencommons start后,报错:
    Starting xenstored…FATAL:Failed to open evtchn device: No such file or directory…..
    Could not start xenstored.
    由于我做实验,必须要xen4.1的版本,请vpsee看看,难道是版本对应的问题,估计和xen-tools有关吧

  139. 楼主你好,我按照上面的提示,现在启动时多了一个xen-4.0.0……的一个启动项,是不是进去后就是进入了dom0啊,我现在能进入,但是运行xm list时,出错了,并且错误的信息和上面说到的不一样,如下:
    Traceback (most recent call last):
    File “/usr/sbin/xm”, line 8, in
    from xen.xm import main
    ImportError: No module named xen.xm

    似乎说缺模块,我每一步都是严格按照上面做的,怎么会这样呢?谢谢!

  140. @julien
    打印一下 /proc/misc 看看能不能找到 evtchn?前面的设备号是 63 吗?如果不是 63 的话就有问题,这是一个 bug,是因为 xenstored 的作者在代码里使用了固定 10:63,但是 event channel driver 创建出来的却不能保证每次都是 63.
    $ cat /proc/misc
    61 autofs
    62 device-mapper
    63 evtchn
    144 nvram
    228 hpet
    135 rtc

  141. @super
    看 90、91、92 楼的评论,是因为 Python 路径问题,简单的办法是把 /usr/sbin/xm 里面的第一行 #!/usr/bin/python 改成 #!/usr/bin/python2.4

  142. 楼主你好,在17楼兄弟的问题上,他是更换Ubuntu9.10 64位server来解决的,我想问一下,在config-2.6.31-14-generic上安装时遇到[2.567393][]?kernal_thread_helper+0x7/0x10 的问题应该如何解决呢?

  143. 楼主,在Linux内核编译的过程中出现 warning: the frame size of 1112 bytes is larger than 1024 bytes,是不是导致Xen不能正常启动的原因?(我的Xen启动不了:[2.567393][]?kernal_thread_helper+0×7/0×10)

  144. 对了,VPSEE老师,我的CPU不支持虚拟化,能不能正确执行以上操作?

  145. @longxue
    如果只是半虚拟化(Xen PV)的话不需要 CPU 虚拟化的支持,但是全虚拟化的话(Xen HVM)就需要。

  146. @john
    通常是内核配置或者 kernel 和 xen patch 对应问题。需要特定版本的 linux kernel 和 xen 的对应补丁,不是所有的 kernel 都可以。按照本文给的 linux-2.6.31.8.tar.bz2 和 xen-patches-2.6.31-10.tar.bz2 试一下。

  147. 觉得XEN还是有点麻烦,, 在弄KVM

  148. 你好,我到这一步 grub-install –recheck /dev/sda总提示:

    Unrecognized option `–grub-probe=/usr/share/lupin-support/grub-probe’
    Usage: grub-install [OPTION] install_device
    Install GRUB on your drive.

    -h, –help print this message and exit
    -v, –version print the version information and exit
    –root-directory=DIR install GRUB images under the directory DIR
    instead of the root directory
    –grub-shell=FILE use FILE as the grub shell
    –no-floppy do not probe any floppy drive
    –force-lba force GRUB to use LBA mode even for a buggy
    BIOS
    –recheck probe a device map even if it already exists

    INSTALL_DEVICE can be a GRUB device name or a system device filename.

    grub-install copies GRUB images into the DIR/boot directory specfied by
    –root-directory, and uses the grub shell to install grub into the boot
    sector.

    Report bugs to .
    ————————————
    没弄懂,命令是对的阿?

  149. 现在悲剧的是 我重启了,开机就停在grub指令那儿……

  150. 我重启后进系统提示:“ Error 16:Inconsistent filesystem structure”,怎么会出现这种情况?

  151. 楼主,你好。我在安装客户机时,遇到如下错误:ERROR Could not find an installable distribution at ‘http://202.117.132.55/ubuntu’
    日志文件的错误信息是:
    [二, 26 7月 2011 11:11:49 virt-manager 4812] ERROR (virt-manager:156) Traceback (most recent call last):
    File “/usr/share/virt-manager/virtManager/details.py”, line 802, in refresh_resources
    self.page_refresh(details.get_current_page())
    AttributeError: ‘NoneType’ object has no attribute ‘get_current_page’
    None
    请问该如何解决?(我是在centos5上装的xen)

  152. @石头
    你用的什么命令或者工具安装的呢?是用 virt-install 或 virt-manager 吗?在 CentOS 上安装 CentOS 虚拟机(PV)和在 CentOS 上安装 Ubuntu 虚拟机是不同的,最好用 xen-create-image,麻烦会少一点。

  153. 我使用的是virt-install命令安装的。昨天安装时,装centos6.0没问题,但却是文本模式,而安装ubuntu根本不行(半虚拟化)。我想问下这是什么原因?两者有什么区别?为什么ubuntu不能安装?

  154. 我还想问一下,我在xen上以全虚拟化的方式装了一个ubuntu,但它却没有声音,请问这会是什么原因造成的?是系统问题还是其他原因?

  155. @石头
    virt-install 是 redhat 的工具,只适合 redhat 系的发行版安装,如果要安装 debian 系的话,需要用 debootstrap/xen-create-image 工具。简单说就是(针对半虚拟话来说):
    redhat 系 dom0 上安装 redhat 系 domU 用 virt-install;
    debian 系 dom0 上安装 debian 系 domU 用 xen-create-image/debootstrap;
    redhat 系 dom0 上安装 debian 系 domU 需要另外办法;
    debian 系 dom0 上安装 redhat 系 domU 需要另外办法。

  156. 你好 vpsee
    我在make内核2.6.38.4的时候出现这个错误,请问你知道要打什么补丁吗?

    drivers/xen/blktap2-new/built-in.o: In function `blktap_ring_init’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/ring.c:521: multiple definition of `blktap_ring_init’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/ring.c:587: first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_ring_destroy’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/ring.c:459: multiple definition of `blktap_ring_destroy’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/ring.c:557: first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_device_init’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/device.c:550: multiple definition of `blktap_device_init’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/device.c:1175: first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_ring_kick_user’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/ring.c:453: multiple definition of `blktap_ring_kick_user’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/ring.c:491: first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_control_put_minor’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/control.c:67: multiple definition of `blktaps’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/control.c:15: first defined here
    ld: Warning: size of symbol `blktaps’ changed from 2048 in drivers/xen/blktap2/built-in.o to 8 in drivers/xen/blktap2-new/built-in.o
    drivers/xen/blktap2-new/built-in.o: In function `blktap_device_destroy’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/device.c:345: multiple definition of `blktap_device_destroy’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/device.c:1060: first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_request_free’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/request.c:123: multiple definition of `blktap_request_free’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/request.c:224: first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_device_create’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/device.c:435: multiple definition of `blktap_device_create’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/device.c:1101: first defined here
    drivers/xen/blktap2-new/built-in.o:(.data+0x1a0): multiple definition of `blktap_debug_level’
    drivers/xen/blktap2/built-in.o:(.data+0xc0): first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_ring_create’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/ring.c:470: multiple definition of `blktap_ring_create’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/ring.c:579: first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_sysfs_destroy’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/sysfs.c:199: multiple definition of `blktap_sysfs_destroy’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/sysfs.c:364: first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_sysfs_init’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/sysfs.c:280: multiple definition of `blktap_sysfs_init’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/sysfs.c:450: first defined here
    drivers/xen/blktap2-new/built-in.o: In function `blktap_sysfs_create’:
    /usr/src/linux-2.6.38.4/drivers/xen/blktap2-new/sysfs.c:168: multiple definition of `blktap_sysfs_create’
    drivers/xen/blktap2/built-in.o:/usr/src/linux-2.6.38.4/drivers/xen/blktap2/sysfs.c:300: first defined here
    make[2]: *** [drivers/xen/built-in.o] Error 1
    make[1]: *** [drivers/xen] Error 2
    make: *** [drivers] Error 2

    谢谢!

  157. 我的ubuntu是11.04, Xen是4.0.1

  158. 你好,vpsee大大:
    debian 系 dom0 上安装 redhat 系 domU 需要另外办法。
    如果我想在ubuntu dom0安装centos的另外办法是什么

  159. @nvqing
    可用 如何快速创建Xen 虚拟机镜像 里面的方法。

  160. 感谢vpsee大大, 但是我用那个方法创建虚拟机到xm create这步的时候报错, 都是python函数的错误,网上查说可能是因为ubuntu 11.04用的是python 2.7版本的问题.有没有办法解决啊?或者换其他方法创建虚拟机(PV), 现在如果能装上ubuntu domU 也可以的. 希望vpsee大大可以帮忙看看这个问题!!谢谢谢谢!

  161. @into11 遇到同样问题了。Device Drivers -> Xen -> Block-device tap backend driver 和 Block-device tap backend driver 2 去掉即可。

  162. vpsee老师:我在ubuntu11.04下面安装xen,无论xen用那个版本.
    在sudo make install这步时会提示
    dpkg:error:version ‘/boot/xen.gz’ has bad syntax:
    version number does not start with digit

    这个问题真的很无语

  163. 楼主问一下,我在编译内核的时候,编译到amd.c的时候就一直报错,是怎么回事?

  164. make[2]: *** [drivers/xen/built-in.o] 错误 1
    make[1]: *** [drivers/xen] 错误 2
    make: *** [drivers] 错误 2

    不知道该怎么解决 求解阿!

  165. xend.log里面报错Refusing to restart to avoid loops

  166. 我用的 ubuntu 10.04 LTS + Xen 4.1.1 + linux-2.6.31.8 + xen-patches-2.6.31-10
    GRUB 也是按照帖子要求用的老版本, 编译通过重启后
    最后打印下面的这行,显示检测到USB连接后就停住不动了
    ?kernek_thread_helper+0×7/0×10

    但是拔插USB设备是,会显示USB断开连接或连接的提示,键盘可输入并且仙四输入内容

  167. 是 ubuntu 10.04 LTS Desktop
    能否帮我指导一下

    看起来是130和135楼的结果综合,可是帖子没看明白他们是怎么解决的?
    折腾了3天了,昨晚几乎通宵,今天用了帖子所的源码版本重做,还是一样的结果

  168. 在xen中的centos虚拟机把内核从2.6.18-238.19换成2.6.18-274.3后,在启动虚拟机时,提示一下错误信息,device-mapper: uevent: version 1.0.3
    device-mapper: ioctl: 4.11.6-ioctl (2011-02-18) initialised: dm-devel@redhat.com
    device-mapper: dm-raid45: initialized v0.2594l
    Kernel panic – not syncing: Attempted to kill init!
    有谁知道这是什么原因吗?

  169. vpsee老师:我在VMware里德ubuntu10.04下面安装xen, make world 错误,我看不懂下面的报错,能不能抽空帮我看一下,万分感激。
    make[6]: 正在进入目录 `/home/donemen/xen/xen-4.1.1/tools/libfsimage/ext2fs’
    rm -f fsys_ext2fs.opic fsimage.so .*.d
    make[6]:正在离开目录 `/home/donemen/xen/xen-4.1.1/tools/libfsimage/ext2fs’
    make[5]:正在离开目录 `/home/donemen/xen/xen-4.1.1/tools/libfsimage’
    make[4]:正在离开目录 `/home/donemen/xen/xen-4.1.1/tools/libfsimage’
    make[3]:正在离开目录 `/home/donemen/xen/xen-4.1.1/tools’
    make[3]: 正在进入目录 `/home/donemen/xen/xen-4.1.1/tools’
    set -e; if test -d ioemu-dir/.; then \
    case “..” in /*) XEN_ROOT=.. ;; *) xen_root_lhs=`pwd`; xen_root_rhs=../; while [ “x${xen_root_rhs#../}” != “x$xen_root_rhs” ]; do xen_root_rhs=”${xen_root_rhs#../}”; xen_root_rhs=”${xen_root_rhs#/}”; xen_root_rhs=”${xen_root_rhs#/}”; xen_root_lhs=”${xen_root_lhs%/*}”; done; XEN_ROOT=”$xen_root_lhs/$xen_root_rhs” ;; esac; export XEN_ROOT; \
    PREFIX=”/usr”; XEN_SCRIPT_DIR=”/etc/xen/scripts”; export PREFIX; export XEN_SCRIPT_DIR; \
    make -C ioemu-dir clean; \
    fi
    make[4]: 正在进入目录 `/home/donemen/xen/xen-4.1.1/tools/ioemu-dir’
    make[4]: *** 没有规则可以创建目标“clean”。 停止。
    make[4]:正在离开目录 `/home/donemen/xen/xen-4.1.1/tools/ioemu-dir’
    make[3]: *** [subdir-clean-ioemu-dir] 错误 2
    make[3]:正在离开目录 `/home/donemen/xen/xen-4.1.1/tools’
    make[2]: *** [subdirs-clean] 错误 2
    make[2]:正在离开目录 `/home/donemen/xen/xen-4.1.1/tools’
    make[1]: *** [clean] 错误 2
    make[1]:正在离开目录 `/home/donemen/xen/xen-4.1.1′
    make: *** [world] 错误 2
    donemen@VM-donemen:~/xen/xen-4.1.1$

  170. @ donemen
    你的问题我也遇到过,但我是在真实机器上, 我是直接把这个ioemu-dir目录删除,再次编译,这个目录会自动重新生成,并编译通过。不知道我的方法是不是正确方法。 或可供参考。

  171. @kline 谢谢kline 我先make install通过了 然后再make world 竟然编译成功了 之后就顺利了 只是现在重启后卡住了 显示can’t open root device 后停在经典的kernel_thread_helper+0×7/0×10语句上了

  172. 自问自答 我的问题是can’t open root device please append a correct “root=” 用more /etc/fstab查看分区情况 修改menu.lst里德root值后重启 进入系统

  173. 楼主您好,我在安装xen的时候遇到一些问题。我的配置:ubuntu10.04_64,xen4.1.2,采用内核方式安装,用的这个链接的方法http://wenku.baidu.com/view/79677afec8d376eeaeaa3150.html。安装完成重启后,xend不能启动。显示Error: Unable to connect to xend: No such file or directory. Is xend running?。通过/etc/init.d/xend显示需要先启动xencommons,启动后通过/etc/init.d/xend可以启动dom0,伺候xend/xm命令即可使用。但是好像我的虚拟网卡有问题,root@zh-desktop:~# brctl show
    bridge name bridge id STP enabled interfaces
    tmpbridge 8000.000000000000 no
    我的xend-config中,(network-script network-bridge)一打开,hvm文件中如果不启用vif,可以启动domu,vnc可以登录虚拟机,虚拟机不能上网。如果启用vif=[‘type=ioemu, bridge=eth0’],虚拟机不能创建,等待一段时间后,显示Error: Device 0 (vif) could not be connected. Hotplug scripts not working.换成bridge=xenbr0/1也不可。ifconfig始终只有lo和eth0两项,没有peth0.这是哪个地方出的问题啊,好像是网桥的问题,我是个新手,不太清楚是哪里设置的

  174. @saintpete
    bridge 问题。编辑 /etc/network/interfaces 加上2行:

    $ sudo vi /etc/network/interfaces
    auto eth0
    iface eth0 inet dhcp

    然后再看看 bridge 能不能出现类似:

    $ sudo brctl show
    bridge name bridge id STP enabled interfaces
    eth0 8000.001db0b5385c no peth0

    然后再改 domu 的配置文件:

    vif = [ ‘type=ioemu, bridge=eth0’ ]

  175. @kline 我也卡在你的那个?kernek_thread_helper+0×7/0×10问题上了 帮帮忙 你怎么解决的?

  176. @donemen 我也没解决这个卡在?kernek_thread_helper+0×7/0×10上的问题,我今天重新在ubuntu server 9.10版本上重新做了一遍,结果还是如此,不知道其它人是怎么解决的。

  177. @kline
    这里问题一般都是内核配置问题,检查一下内核配置然后重新编译。

  178. @vpsee,谢谢您的指示,
    1. 我还试验了9.10 server i386版和9.10 server amd64版本二进制安装ubuntu-xen-server, 结果全都停在initramfs提示符,显示不能装入root文件系统(提示no such device), 但是ls查看/dev/sda1是存在的,尝试手动mount该/dev/sda1,仍然提示no such device, 不知道什么原因?
    2. 关于源码安装,或许你说的是对的,因为我之前用的9.10 server i386版本编译。 我打算今晚改用9.10 amd64版本上源码安装xen试试看,我怀疑是因为不能在32位server版本上编译安装xen。

  179. 改用9.10 server amd64版本后,终于进入了dom0,感谢vpsee的指导
    并纠正你关于python版本的说法,可以使用2.6,但是要执行下面的步骤
    cd /usr/lib/python2.6
    sudo cp -r site-packages/* dist-packages/
    原因是xen还在使用老版本的site-packages目录,然而新的2.6使用的是dist-packages目录

    不过我仍然还有一个问题,我在grub中配置console=tty0, 然而登录时显示的仍然是tty1,并且仍然可以激活tty2等,不知道什么原因?? 希望vpsee老师能指导一下。

    下一步我要开始创建虚拟机了,但愿能比较顺利,呵呵。

  180. @kline
    可以在 /etc/init/tty2.conf(或者 /etc/inittab)文件中修改和关闭 tty2.

  181. @vpsee
    试过了修改tty1.conf和tty2.conf, 注释掉getty相关的两行, 重新启动后,没有进入tty0,仅仅是tty1和tty0不能登录不能操作,并且tty3-6都可正常登录。

    我现在其它都正常了,就是这个console的问题不知道怎么解决,无法打开console,在virt-manager界面上也无法激活console,目前只能通过vnc对OS操作,但是速度很慢。

    另外再提两个问题,安装xen后,是否默认的kvm就可以卸掉了?
    有没有办法定制一个只有xen-hypervisor没有dom0的系统,dom0在hypervisor上另外再安装?

  182. @Anonymous
    可以卸载 kvm。xen hypervisor + dom0 是个可以运行的完整系统,domU 是运行在 xen hypervisor + dom0 上面的虚拟机。

  183. xen使用的版本是3.4.3,dom0使用的内核版本是2.6.18,现在要在xen上安装ubuntu10.4,它使用的内核版本是2.6.32。这样的话xen3.4.3对ubuntu10.4的是不是支持不是很好呀,比如说在ubuntu10.4里的一些新的功能不能使用

  184. @h
    xen hypervisor 和 dom0 kernel 是完全不同的,而且 xen 和 ubuntu 里面的新功能没有啥关系。

  185. 谢谢你的回答,我还有个疑问就是xen3.4.3是基于内核2.6.18做的修改,现在ubuntu10.4使用的内核版本是2.6.32,会不会出现这种情况,就是2.6.32中的前端驱动和xen3.4.3中的后端驱动兼容性不是很好呀

  186. 有谁知道这是什么问题吗

    [ 0.501089] Broke affinity for irq 22
    [ 0.501091] Broke affinity for irq 23
    [ 0.502185] ————[ cut here ]————
    [ 0.502225] kernel BUG at /build/buildd/linux-2.6.32/arch/x86/xen/spinlock.c:343!
    [ 0.502237] invalid opcode: 0000 [#1] SMP
    [ 0.502249] last sysfs file:
    [ 0.502256] CPU 0
    [ 0.502263] Modules linked in:
    [ 0.502274] Pid: 57, comm: kstop/0 Not tainted 2.6.32-36-server #79-Ubuntu

    [ 0.502926] RIP [] dummy_handler+0x4/0x10
    [ 0.502939] RSP
    [ 0.502956] —[ end trace f17e946d22a56015 ]—
    [ 0.502965] Kernel panic – not syncing: Fatal exception in interrupt
    [ 0.502975] Pid: 57, comm: kstop/0 Tainted: G D 2.6.32-36-server #79-Ubuntu

  187. @vpsee – May 11th, 2010 2:24 pm
    因为 Linux 的标准内核是不包含 Xen,不打补丁就没有 Xen 啊。
    ——————————————————————————————
    vpsee 你好 ,这句我没理解,希望能答复我
    我上周刚编译过xen ,环境是linux 3.2.1 kernel \ xen 4.1.2

    我是先编译安装xen 4.1.2 ,然后编译 3.2.1 kernel ,接着打 3.2.1 的补丁(kernel官网下的补丁,这里我就有疑问了,我这里是打的kernel补丁,为什么你打的是xen-patch ?) ,接着编译安装 kernel , 最好改grub.conf ,重启进入dom0 ,
    一切顺利,能进入,xm list 运行正常 ,xend 运行正常 !

    所以你这里为啥是打xen-patch ,搞不明白~ (而且如果是打xen-patch,但xen官网没xen-patch,貌似你是从google那边下载的 ~)

    希望vpsee 能抽空给我答疑,非常感谢 !

  188. @vpsee – May 11th, 2010 2:24 pm
    因为 Linux 的标准内核是不包含 Xen,不打补丁就没有 Xen 啊。
    ——————————————————————————————
    vpsee 你好 ,这句我没理解,希望能答

    。。。。。
    ——————————————————————
    你说标准内核不包括xen ,我看过好多文章(编译xen 4.x 版本的), 都是安装我上面说的那个顺序编译安装的, 但就是没你那步 打xen-patch(打的kernel patch) ,这难道是我xen一直的误区,还是只是Ubuntu 上面才这样的? 忘记说我上面编译是在centos 6.2 上进行的,centos 6 已经不包括 xen 二进制包了(必须源码编译了)

    所以能详细点解惑一下 kernel 版本 和 编译xen 的关系吗 ? 而我上面的编译为什么成功了 ?我根本没考虑过kernel版本 和 xen的关系 !

    PS:编译内核选项时,我配置内核时能看到与xen的相关选项!

    非常感谢 !

  189. @凯文
    Linux 2.x 内核里面不包括 xen,所以需要 xen patch 补丁;由于 xen 团队的努力,2011年6月份的时候 xen 正式进入 Linux 内核,所以从新的 Linux 3.x 内核开始包含 xen,也就是 kernel 补丁。

  190. 请问一下如何解决啊?

    无法完成安装:’Could not find an installable distribution at ‘http://archive.Ubuntu.com/ubuntu’
    The location must be the root directory of an install tree.’

    Traceback (most recent call last):
    File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 44, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
    File “/usr/share/virt-manager/virtManager/create.py”, line 1899, in do_install
    guest.start_install(False, meter=meter)
    File “/usr/lib/pymodules/python2.7/virtinst/Guest.py”, line 1206, in start_install
    self._prepare_install(meter, dry)
    File “/usr/lib/pymodules/python2.7/virtinst/Guest.py”, line 963, in _prepare_install
    meter=meter)
    File “/usr/lib/pymodules/python2.7/virtinst/DistroInstaller.py”, line 426, in prepare
    dev = self._prepare_kernel_and_initrd(guest, meter)
    File “/usr/lib/pymodules/python2.7/virtinst/DistroInstaller.py”, line 365, in _prepare_kernel_and_initrd
    self.os_type)
    File “/usr/lib/pymodules/python2.7/virtinst/OSDistro.py”, line 156, in acquireKernel
    scratchdir, type)
    File “/usr/lib/pymodules/python2.7/virtinst/OSDistro.py”, line 150, in _acquireMedia
    None, media_cb)
    File “/usr/lib/pymodules/python2.7/virtinst/OSDistro.py”, line 129, in _locationCheckWrapper
    arch=arch)
    File “/usr/lib/pymodules/python2.7/virtinst/OSDistro.py”, line 112, in _storeForDistro
    baseuri))
    ValueError: Could not find an installable distribution at ‘http://archive.Ubuntu.com/ubuntu’
    The location must be the root directory of an install tree.

  191. Hi

    I have a problem about installing xen kernel

    my linux kernel is 2.6.32-220.4.2.el6.x86_64

    [root@client1 linux-2.6.31.8]# uname -r
    2.6.32-220.4.2.el6.x86_64

    $ 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 ../xenpatch-2.6.31.8/*; \
    do patch -p1 < ../xenpatch-2.6.31.8/*; done

    After that, when I "make", "make modules", "make modules_install" It seems be OK.

    But, when I "make install" , there are some error below.

    ERROR: modinfo: could not find module xt_CHECKSUM
    ERROR: modinfo: could not find module bnx2fc
    ERROR: modinfo: could not find module nf_defrag_ipv6
    ERROR: modinfo: could not find module vhost_net
    ERROR: modinfo: could not find module macvtap
    ERROR: modinfo: could not find module drm_kms_helper

    How can I fix this problem??

    And I check the module, it seems okay?? see the following…

    [root@client1 linux-2.6.31.8]# modinfo xt_CHECKSUM
    filename: /lib/modules/2.6.32-220.4.2.el6.x86_64/kernel/net/netfilter/xt_CHECKSUM.ko
    alias: ip6t_CHECKSUM
    alias: ipt_CHECKSUM
    description: Xtables: checksum modification
    author: Michael S. Tsirkin
    license: GPL
    srcversion: CFE02C9648CF5B47F74F118
    depends:
    vermagic: 2.6.32-220.4.2.el6.x86_64 SMP mod_unload modversions

    Someone has the same error??
    Please Help…

  192. @cinmex
    It seems like a kernel configuration problem. Did you add those modules (xt_CHECKSUM, bnx2fc, nf_defrag_ipv6, …) to the kernel? Check your kernel .config file in your Linux kernel tree.

  193. @vpsee
    您好,我的 linux kernel 是2.6.18.8-xen
    我现在遇到一个问题,麻烦您解答一下:
    [root@localhost ~]# xend start
    SIOCSIFNAME: File exists
    同时网络也自动断开,不知道为什么?
    [root@localhost ~]# xm list
    Name ID Mem VCPUs State Time(s)
    Domain-0 0 941 2 r—– 108.6
    我的目的是想构建网桥,能够使domU上网,但是vif0.0一直未出现,还请您帮忙解答一下,谢谢您。

    非常感谢 !

  194. @初学者
    从上面给出的信息无法做出任何判断,甚至不能判断是否正确安装 bridge-utils 网桥工具包。你是否使用 Network Manager 图形工具来管理网络?Network Manager 和 Xen 一起用可能会造成 domU 得不到网络,会让 peth0 得不到 IP 等问题。

  195. 谢谢您的回复。

  196. vpsee,你好,我现在在Ubuntu11.10上安装了Xen4.1,成功,但当我用virt-manager安装虚拟机的时候报错:
    ERROR Error validating install location: Could not find an installable distribution at ‘http://172.**.***.*/ubuntu/’
    The location must be the root directory of an install tree.
    用virt-install安装也是出现这个错误。是不是我的URL没有设置正确啊
    (我是将ubuntu-11.10-desktop-amd64.iso直接mount -loop 到我的服务器上的)?

  197. @Lio
    location 应该用 http 的形式,意味着你可以用别人的 http 源或者自己架设一个 http 服务器然后把 ubuntu 挂上去。

  198. @Lio
    我和你问题一样,也没办法解决。
    后来改成centos
    出现无法为centos树找到xen内核。

  199. 对啊,我就是直接将网上下的Ubuntu11.1064位mount -o loop到我的服务器上的,为什么还是提示Could not find an installable distribution at ‘http://127.0.0.1/http/’
    The location must be the root directory of an install tree.的错误呢?

  200. 我启动virt-manager的时候
    root@domain0:/home/domain0# virt-manager

    (virt-manager:2407): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
    Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

    ** (virt-manager:2407): WARNING **: Unable to create Ubuntu Menu Proxy: 连接已关闭
    请问如何解决啊?

  201. @Lio
    貌似这是 virt-manager 的 gui 启动问题,和 xen 无关。

  202. @凯文@VPsee
    May 11th, 2010 2:24 pm
    因为 Linux 的标准内核是不包含 Xen,不打补丁就没有 Xen 啊。
    我上周刚编译过xen ,环境是linux 3.2.1 kernel \ xen 4.1.2

    我是先编译安装xen 4.1.2 ,然后编译 3.2.1 kernel ,接着打 3.2.1 的补丁(kernel官网下的补丁,这里我就有疑问了,我这里是打的kernel补丁,为什么你打的是xen-patch ?) ,接着编译安装 kernel , 最好改grub.conf ,重启进入dom0 ,
    一切顺利,能进入,xm list 运行正常 ,xend 运行正常 !

    ——————————————————
    vpsee 你好 ,这句我没理解,希望能答

    ——————————————————
    Linux 2.x 内核里面不包括 xen,所以需要 xen patch 补丁;由于 xen 团队的努力,2011年6月份的时候 xen 正式进入 Linux 内核,所以从新的 Linux 3.x 内核开始包含 xen,也就是 kernel 补丁

    ========
    有点我不明白,centos6.2默认内核是3.0的也就是已经包含了xen
    这里编译完xen,和官网的3.2.1内核(或者直接源安装对应版本的kernel-xen),应该已经有了xen的引导内核了吧,官网那个补丁貌似没有关于xen的内容.
    那么在guest的配置文件里kernel和ramdisk两项是不是可以直接用宿主机/boot/对应的vmlinuz-xen和initrd-xen来引导domU了

  203. 您好,我想问一下,我的xen启动后,电脑无法启动图形化界面,而且显示:Device “eth0” does not exist.
    Cannot find device “eth0”
    ifdown : interface eth0 not configured
    …..
    XENBUS : Unable to read cpu state
    请问这可能是哪里的问题,您碰到过么?

  204. 您好,vpsee,我碰到了和roger一样的问题,我虽然找到来他说的文件,但是无法复制到相应的目录下面,我是一个新手,不知道该怎么解决。希望您能帮帮我

  205. vpsee老师,现在Linux3.*支持xen后,以上过程有那些改动呢?还要重新编译内核吗?如果不需要,应该如何处理xen补丁的问题?
    我现在想在Ubuntu11.10上源码安装Xen,谢谢老师指点

  206. @xv88
    cenos 6.2 默认貌似是 2.6.32-?.el6.x86_64,RedHat 从 RHEL/CentOS 6 开始已经默认不支持 Xen,但是可以把 CentOS 6 当作 domU 用,也就是可以从 guest 的配置文件里 kernel 和 ramdisk 引导启动 CentOS 6 domU.

  207. 您好,vpsee,我按照您的步骤进行了编译,但是在重启后,报:Panic on CPU0: Not enough RAM for domain 0 allocation。这个该怎么解决,您碰到过么?

  208. 我试了网上的一个办法,但是没有解决,是不是在内核配置时,有相关的选项,而我没有选…希望大家能帮帮我,谢谢!

  209. 网上的一个办法是编辑/boot/grub/menu.lst,在xen的kernel后面添加‘dom0_mem=VALUE’,但是好像不行….

  210. @leo
    试一下限制 Xen Dom0 的内存 在 grub.conf 或 menu.lst 里加上 kernel /xen.gz-x dom0_mem=512M dom0_mem=512M mem=64G

  211. @vpsee
    您好,vpsee,我按照您的方法在后kernel后面相应位置添加dom0_mem=512M mem=64G,然后update-grub后,仍然提示Panic on CPU0: Not enough RAM for domain 0 allocation。我把dom0_mem=512M换成dom0_mem=386M后,报的是too small,无法启动,这该怎么办。。。
    是不是我电脑的原因:我电脑是2g内存,i5的处理器。

  212. vpsee,问题依旧存在。。。

  213. vpsee老师,我有几个疑问想请教一下:
    1)为什么要 cp /boot/config-2.6.31-14-server .config,用Linux内核自带的配置文件不行么?
    2)Linux3.0以后的版本加入了Xen,但我在配置菜单里面很难找到上面的各种硬件的bankend device了,这如何是好啊。
    3)编译完成启动新内核时出现Register :0x000043** are not found ,但依然可以进入系统,请问会不会有影响?

  214. 另外,还有几个问题:
    1)在make install 的时候会出现dpkg: error: 版本号 /boot/xen.gz 有语法错误:version number does not start with digit的错误,应该不会产生什么实质性影响吧?
    2)我发现在make install的过程中会有update-initramfs: Generating /boot/initrd.img-3.2.1这条命令,这跟文章接下来的update-initramfs是不是同一个功能?
    3)在make modules_install过程的最后一句也是DEPMOD 3.2.1,这跟sudo depmod 3.2.1又有什么区别呢?

  215. @Lio
    1. 可以用 linux 自带的,但是 config-2.6.31-14-server 是当前系统已经配好的,直接用省得麻烦;
    2. 嗯,配置藏的很深;
    3. 如果能正常进系统应该没啥关系。

  216. @Lio
    1. 没影响,只是警告 xen.gz 名字里应该带版本号。
    2 和 3. make install 里面已经带了 update-initramfs 和 depmod,无需再重复,我个人习惯 make install 后再 update-initramfs 确认一下,怕 make install 中途报错没看见。

  217. vpseep,你好,我想问一下在Xen3.1.0的时候源码里有一个linux-2.6-xen-sparse文件夹,为什么新版本里没有了?是不是被什么给代替了?

  218. vpsee,你好,我想问一下相比与Xen3.1.0,Xen4.0.0版本在系统调用机制方面有什么变换么?具体是那些?

  219. @Lio
    系统调用这个词有歧义,不知道你说的是 hypercall 还是 xen api,这都算系统调用。hypercall 方面变化具体可以看 xen 源代码 hypercall.h, hypercall.c 两个文件,xen api 方面具体参看官方的 Release Notes 文档。

  220. vpsee老师,今天我查看Xen日志文件时发现(XEN) physdev.c:155: dom0: wrong map_pirq type 3;请问这是什么错误啊?

  221. 编译内核时报这个错
    Error: .size expression for spurious_interrupt_bug does not evaluate to a constant

  222. 如果我用的12.04,是不是就不用安装内核补丁了呀

  223. @leo
    Lio – March 30th, 2012 4:53 pm

    vpsee,你好,我现在在Ubuntu11.10上安装了Xen4.1,成功,但当我用virt-manager安装虚拟机的时候报错:
    ERROR Error validating install location: Could not find an installable distribution at ‘http://172.**.***.*/ubuntu/’
    The location must be the root directory of an install tree.
    用virt-install安装也是出现这个错误。是不是我的URL没有设置正确啊
    (我是将ubuntu-11.10-desktop-amd64.iso直接mount -loop 到我的服务器上的)?

    我也遇到了和你一模一样到问题。。纠结了很长时间都没有解决。请问你现在知道这个问题都解决方法了么?

  224. 我的操作系统是ubuntu 12.04,xen4.1通过apt-get install xen-hypervisor-4.1-amd64安装的。全虚拟化光盘安装没有问题,就是半虚拟化安装不了。

  225. @leo@jason
    我遇见的也是
    ERROR Error validating install location: Could not find an installable distribution at ****
    The location must be the root directory of an install tree.
    这个问题,请问你们有人解决了吗,我真的很惆怅,如果解决了,请让我知道:)

发表评论