Ubuntu12.04下安装Xen以及使用Xen安装WinXP虚拟机

第一步:安装需要的软件包

安装编译 Xen 和 Linux xen kernel 所需要的软件包:

sudo 

apt-get install build-essential binutils python-dev libncurses5-dev   libcurl4-openssl-dev xorg-dev uuid-dev bridge-utils bison flex udev gettext bin86   bcc   iasl libgcrypt11-dev    libssl-dev pciutils libglib2.0-dev   gcc-multilib texinfo zlib1g-dev

$ 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


以上软件包有些是重复的,没关系,重复了它自己会跳过不安装。安装软件包之前注意要选好源,163和cn.archive都是可以的。


第二步:安装xen vmm

需要注意,Xen 是有32位和64位系统的区别。32位的Xen因为需要开启
PAE(Physical Address Extension 物理地址扩展),而PAE默认是没有开启的,所以32位Ubuntu首先得执行下面这个命令: 
root@ubuntu:~# apt-get install linux-image-server 
root@ubuntu:~# apt-get install apt-get install xen-hypervisor-4.1-i386 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils 这里xen-hypervisor-4.1要分32位、64位, 

32位用xen-hypervisor-4.1-i386,64位系统用xen-hypervisor-4.1-amd64。 


安装64位的Xen就比较简单了,只需要执行下面的命令: 

root@ubuntu:~#apt-get install xen-hypervisor-4.1-amd64 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils


第三步:安装libvirt和Virtual Manager

sudo apt-get install virtinst python-libvirt virt-viewer virt-manager


第四步:重启机器,选择有xen的内核启动,进入系统之后,再检查一下 Xen 是否已经成功安装:

$ sudo xm list


Ubuntu 12.04 下安装Xen 以及使用Xen 安装winXP虚拟机 - ℃uRRy - Mr. almost 

出现上面的信息,则代表安装成功。


如果出现问题:

重启Ubuntu系统,在系统启动过程中,通过菜单去选择切换到Xen的内核来运行Ubuntu系统。通常我们会在这里遇到一个问题,就是在启动过程中见不到系统显示菜单选项。 
   于是,我们按照正常方式启动Ubuntu系统。然后执行以下命令: root@ubuntu:~# xm list 
系统会有如下显示:ERROR: Can't find hypervisor information in sysfs!     


xm是Xen的管理工具。只有系统安装Xen才可以执行xm命令。 
(xm list:显示虚拟机运行状态) 
但是,我们需要确认之前Xen的安装是否完整。 可以重新执行原来的命令: 
root@ubuntu:~#apt-get install xen-hypervisor-4.1-amd64 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils 
如果之前的安装成功,系统会有明确的提示(如上图红色框选内信息)。 在确保Xen的安装正常后,我们可以用如下命令解决“Can't find hypervisor information in sysfs!”的错误: 
root@ubuntu:~#mv /etc/grub.d/10_linux /etc/grub.d/50_linux root@ubuntu:~#update-grub2 两条命令的作用解释如下: 
root@ubuntu:~#mv /etc/grub.d/10_linux /etc/grub.d/50_linux 
是修改Ubuntu系统的启动项,如下图: 
 
readme文件说明如下: 
All executable files in this directory are processed in shell expansion order. 
  00_*: Reserved for 00_header.   10_*: Native boot entries. 
  20_*: Third party apps (e.g. memtest86+). 
The number namespace in-between is configurable by system installer and/or administrator.  For example, you can add an entry to boot another OS as 01_otheros, 11_otheros, etc, depending on the position you want it to occupy in the menu; and then adjust the default setting via /etc/default/grub. 
root@ubuntu:~#update-grub2 的作用是重新生成grub2的启动菜单配置文件(/boot/grub/grub.cfg)。


第五步:修改配置文件

完成上述步骤后,重新启动Ubuntu系统,即可出现如下菜单界面: 
选择Xen 4.1-amd64。 


系统顺利进入Xen的内核模式运行状态。 



sudo gedit /etc/xen/xend-config.sxp

将/etc/xen/xend-config.sxp文件中的“#(xend-unix-server no)”注释去掉 即把“#”去掉,并把“no”改成“yes”,保存即可。

然后重启xend服务:service xend restart (service xend start)

这里可能会出现错误,点开错误提示,ubuntu说软件包陈旧,那就装新的

 sudo apt-get install coreutils initscripts libsqlite3-0 libudev0 lsb-base multiarch-support passwd perl-base sysv-rc sysvinit-utils tzdata upstart
装完后再次运行service xend restart,这次没有问题了


sudo gedit ~/.bashrc ,在打开的.bashrc文件中添加下面这句话

export VIRSH_DEFAULT_CONNECT_URI="xen:///"


第六步:打开Virtual Manage时,但是创建时因为相关资源路径问题可能会报以下错误

第六步我并没有遇到这样的错误,但是还是按照参考资料来做了

6.1 ******/usr/lib/xen/bin/qemu-dm:****
路径中xen应该是xen-4.1,解决办法如下

mkdir /usr/lib/xen -p
cp /usr/lib/xen-4.1/* -r /usr/lib/xen/

6.2 ****** libvirtError: POST操作失败: xend_post:来自 xen 守护进程的错误:****
查看日志 /var/log/xen/xend.log 和 /var/log/xen/qemu-dm-demo.log
日志显示/usr/share/qemu/keymaps/en-us could not be found, the keymaps ***
路径中qemu应该是qemu-linaro,解决办法如下

cp -r /usr/share/qemu-linaro/ /usr/share/qemu

这样创建过程基本没有问题了.


第七步:通过libvirt查看xen的版本信息,确认libvirt和xen都已经安装成功

# virsh version

Ubuntu 12.04 下安装Xen 以及使用Xen 安装winXP虚拟机 - ℃uRRy - Mr. almost

这里有可能会出现一个非常诡异的问题,sudo virsh version
 编译使用的库:libvir 0.9.8
使用的库:libvir 0.9.8
使用的 API: QEMU 0.9.8
错误: 获得管理程序版本失败
错误: internal error Cannot find suitable emulator for i686

那么尝试直接切到root权限,sudo -s , 不使用sudo
再运行virsh version
root@nealPC:~# virsh version
编译使用的库:libvir 0.9.8
使用的库:libvir 0.9.8
使用的 API: Xen 0.9.8
运行管理程序: Xen 4.1.0
发现没有问题了,挠破头都想不明白的问题 (- -)|||

第八步:使用Xen安装winxp虚拟机
    把window xp的iso镜像拷贝到根目录的其中一个文件夹下,例如/usr , /opt等(不要拷到home里面)。
    在命令行键入sudo virt-manager用root权限打开虚拟机管理器,直接在dash上打开后面会出现错误。打开virt-manager后可能会遇到错误说“主机不支持HW 虚拟化,安装选项受限"云云,那么你就要先重启到BIOS里面设置CPU的virtualization选项设置为enable。
    再次打开virt-manager后发现所有选项都可以选择了,接下来就按照向导来安装,非常简单。
    效果图:
    
Ubuntu 12.04 下安装Xen 以及使用Xen 安装winXP虚拟机 - ℃uRRy - Mr. almost
 
Ubuntu 12.04 下安装Xen 以及使用Xen 安装winXP虚拟机 - ℃uRRy - Mr. almost
 
好的,装完它就行了。经验只谈:如果想安装多几个虚拟机,装ubuntu的时候给根目录多一点空间。

如果在创建过程中出现错误,那很可能第六部没有做对,回头仔细检查一下吧。


qemu-img convert xxx.vhd -O raw xxx.img
qemu -boot c -hda xxx.img

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值