+-------------------------------------------------------------------------------------------------------------------------------
 ATTENTION: Befor taking the following steps, make sure you have followed the xen-install.txt to install xen & vnc parts correctly.
+-------------------------------------------------------------------------------------------------------------------------------
1. 建立虚拟机路径
 就是你的虚拟机文件在宿主机中存放的地方,先要建立出来
 [root@server201 /]# mkdir /opt/xen/kcwin2k3_2
 [root@server201 /]# cd /opt/xen/kcwin2k3_2
 按照我的习惯就是建立虚拟机在  /opt/xen/xxxx 下建立

2.建立Windows2003虚拟机
[root@server201 kcwin2k3_2]# virt-install -n kcwin2k3_2 --file=disk1.img --file=disk2.img --vnc -v -c /iso/win2k3.iso -r 512 --vcpus=1
  How large would you like the disk (disk1.img) to be (in gigabytes)? 8
  How large would you like the disk (disk2.img) to be (in gigabytes)? 1
  这里就是用 virt-install 命令来安装虚拟机,其中的参数我再解释一下
 --------------------------------------------------------------------
 virt-install        建立虚拟机的命令
  -n                 虚拟机的命名
  --file             虚拟机的磁盘文件
  --vnc              使用VNC终端连接方式
  -r                 虚拟机的内存容量
  --vcpus            虚拟机的CPU数量
  -v                 可视
  -c                 安装镜像的路径
 
  之后出现以下提示信息:
  Starting install...
  Unable to connect to graphical console; DISPLAY is not set.  Please connect to localhost:5900
  Domain installation still in progress.  You can reconnect to the console to complete the installation process.
  这里其实已经开始安装了,但是由于文字终端不支持图象,所以希望用户通过5900端口连接图形终端,并且这个虚拟机的安装并没有终止,仍然再继续。
  问题是,这里,虚拟机已经初始化形成了,目前的工作只是在安装这个虚拟机的系统而已。可以先关闭掉这台虚拟机,以后再启动继续安装系统,这里我们还有很多工作要做。
 
 
3.修改这台虚拟机的配置文件
  [root@server201 kcwin2k3_2]# cd /etc/xen/
  [root@server201 xen]# ls
          auto      kcwin2k3_2  xend-config.sxp          xmexample1     xmexample.vti
          kcentos5  qemu-ifup   xend-pci-permissive.sxp  xmexample2
          kcwin2k3  scripts     xend-pci-quirks.sxp      xmexample.hvm
   (还记得这里之前说到过建立一个虚拟机后,在它的配置文档路径会有一个同名的配置文件么,我们要修改它。这些我标注黄色的文件都是几个我安装的虚拟机的配置文件,目前这篇中正在指的是kcwin2k3_2这个虚拟机,从名字上可以看出这已经是我安装的第二台Windows虚拟机了 )
  [root@server201 xen]# vi kcwin2k3_2  (现在我们来编辑这个配置文件)
----------------------这个是原版由应用程序生成的配置文件----------------------
# Automatically generated xen config file
name = "kcwin2k3_2"
builder = "hvm"
memory = "512"
disk = [ 'file:/opt/xen/kcwin2k3_2/disk1.img,hda,w',
'file:/opt/xen/kcwin2k3_2/disk2.img,hdb,w', ]
vif = [ 'type=ioemu, mac=00:16:3e:3f:74:8f, bridge=xenbr0', ]
uuid = "fb0f5b19-30b7-b349-ceaf-2d4332ebf65d"
device_model = "/usr/lib/xen/bin/qemu-dm"
kernel = "/usr/lib/xen/boot/hvmloader"
vnc=1
vncunused=1
apic=1
acpi=1
pae=1
vcpus=1
serial = "pty" # enable serial console
on_reboot   = 'restart'
on_crash    = 'restart'

------------------------------------------------------------------------------------------------------------------
但是这样子是不够的,我们需要对其做比较多的修改,至于每一项是做什么用的,接下去会解释,现在我修改的这个配置文件如下
------------------------------------------------------------------------------------------------------------------
# Automatically generated xen config file
import os, re
arch = os.uname()[4]
if re.search('64', arch):
    arch_libdir = 'lib64'
else:
    arch_libdir = 'lib'
(若是要用XEN虚拟机安装Windows系统,以上这一段要添加。可以看出这个虚拟机是通过HVM方式建立的,关于HVM方式虚拟机的具体参数的描述也有非常详细的解释,就是HVM的模版帮助文件,它就在Xen的配置路径下,文件名默认为 /etc/xen/xmexample.hvm)
name = "kcwin2k3_2"      (虚拟机的命名)
builder = "hvm"          (hvm方式的虚拟机)
memory = "512"           (内存为512M,这里单位是MB)
disk = [ 'file:/opt/xen/kcwin2k3_2/disk1.img,hda,w',  (还记得建立虚拟机时的参数--file=吗?这里就是虚拟机的第一块虚拟磁盘) 
       'file:/opt/xen/kcwin2k3_2/disk2.img,hdb,w',   (这个则是虚拟机的第二块虚拟磁盘,可写,而且是虚拟hdb位置)
       'file:/iso/win2k3.iso,hdc:cdrom,r', ]  (这一项则是后来添加的,指定了虚拟机的CDROM,目标其实是宿主机上的一张Win2k3安装ISO镜像的路径,然后r代表只读)
       vif = [ 'type=ioemu, mac=00:16:3e:3f:74:8f, bridge=xenbr0', ]  (这个是虚拟机的虚拟网络接口)
uuid = "fb0f5b19-30b7-b349-ceaf-2d4332ebf65d"
device_model = "/usr/lib/xen/bin/qemu-dm"
kernel = "/usr/lib/xen/boot/hvmloader"
vnc=1     (启用VNC)
vncunused=1    (这个手册当中竟然解释为...skipping...汗)
vnclisten="0.0.0.0"   (这条也是后来添加的,VNC开放的网卡地址,这里表示不限制)
vncdisplay=1     (VNC显示,这条也是后来添加的)
#apic=1
#acpi=1
apic=0    (apic比较贱,这里要设定为0,默认值是1,它会造成安装Windows的时候会一直卡在一个画面里)
acpi=0                  (同apci,这里也要设定成0,默认也是1。可以看到前两行的默认值是被我注释掉的)
pae=1
boot="dc"    (这里是虚拟机的启动顺序,d表示从CDROM,c表示从本地磁盘,a表示从软盘。从左到右顺序,建议安装完系统之后,这里就改为“c”,只从硬盘启动)
vcpus=1      (虚拟机的CPU数量)
serial = "pty"    # enable serial console
on_reboot='restart'
on_crash='restart'
------------------------------------------------------------------------------------
到这里就算是改好了这个虚拟机的配置文件,以上用草绿色标识的内容是后加上去的,请主要参考/etc/xen/xmexample.hvm这个模版文件,有非常详细的关于HVM虚拟机的说明。

 
8.再启动虚拟机
    [root@server201 xen]# xm create kcwin2k3_2
          Using config file "./kcwin2k3_2".
   Error: VM name 'kcwin2k3_2' already in use by domain 1
    这里是说这个kcwin2k3_2的机器已经启动了, 我现在让它关闭重新启动
    [root@server201 xen]# xm destroy kcwin2k3_2
  记得,完全关闭虚拟机的时候请用 xm destroy name 或 xm destroy ID 命令,而不要用 xm shutdown。
    [root@server201 xen]# xm create kcwin2k3_2
    Using config file "./kcwin2k3_2".
  Started domain kcwin2k3_2 (出现这条提示则表示启动成功)
 
接下来就可以在远端使用VNC的客户端连接宿主机进行安装了,之前有人建议使用RealVNC的客户端连接,而不是UltraVNC。我一试果然不假,用UltraVNC的话,会非常花屏。另外要建议的一点则是,在VNC下安装Windows的时候用鼠标会非常的不爽,请习惯用键盘。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐