zoukankan      html  css  js  c++  java
  • 在CentOS下源码安装 Xen并搭建Windows虚拟机

    前言

    首先要感谢xing的帮助,在他的指导之下才完成环境的搭建,本文档的部分内容来自他的文档。另外,还要感谢——互联网。

     

    1.       环境介绍

    Linux: CentOS 6.3

    Xen: Xen 4.1.3

    Windows: XP 或 2003

    2.       安装CentOS

    从官网下载CentOS 6.3镜像:

    http://www.centos.org/

    这里直接给出清华的链接:

    http://mirrors.tuna.tsinghua.edu.cn/centos/6.3/isos/i386/CentOS-6.3-i386-LiveCD.iso

    光盘或U盘引导,按照提示安装完成即可。若用U盘安装,这里推荐一个软件,可以将安装镜像写到U盘:UNetbootin,下载地址:http://unetbootin.sourceforge.net/,写入镜像前最好先将U盘格式化。

    3.       安装所需的工具包

    3.1.     开发包

    在控制台执行下面命令安装:

    复制代码
    yum groupinstall "Development Tools" 
    
    yum install hmaccalc ncurses-devel zlib-devel openssl-devel python-devel
    
    yum install bridge-utils  libtool-ltdl xorg-x11-drv-evdev xorg-x11-drv-fbdev
    
    yum install xorg-x11-drv-i810-devel xorg-x11-drv-via-devel xorg-x11-proto-devel
    
    yum install xorg-x11-server-sdk xorg-x11-xtrans-devel libuuid-devel
    
    yum install readline-devel gcc gcc-gfortran gcc-c++ flex pcre-devel
    
    yum install blas-devel lapack-devel curl-devel bison gperf gnuplot
    
    yum install texinfo-tex tetex-dvips
    复制代码

    后面编译时会要求用到这两个包:

    3.2.     dev86

    到主页下载:http://www.debath.co.uk/dev86

    这里直接给出bin包的下载链接:http://www.debath.co.uk/dev86/Dev86bin-0.16.19.tar.gz

    解压:

    tar zxvf Dev86bin-0.16.19.tar.gz

    并将解压出来的文件放到/usr路径下

    3.3.     Intel ACPI CA

    到主页下载:http://acpica.org/downloads

    下载源代码,解压,并安装:

    复制代码
    tar zxvf acpica-unix-20120816.tar.gz
    
    cd acpica-unix-20120816
    
    make
    
    make install
    复制代码

    3.4.     libvirt

    还要安装libvirt,这样在xen安装完后才会有桥接virbr0

    yum install libvirt

    3.5.     git

    这里插一句,其实在CentOS6下不用手动装git,因为本身就有,但是在本人调研过程中也在CentOS 5.8下做过实验,CentOS 5.8需要手动装git,因此也记录下来。但本小节与本文无关,CentOS 6的朋友可以跳过。

    wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
    
    rpm -Uvh epel-release-5-4.noarch.rpm
    
    yum install git

    4.       安装Xen

    到主页下载Xen: http://www.xen.org/

    这里直接给出下载链接:http://bits.xensource.com/oss-xen/release/4.1.3/xen-4.1.3.tar.gz

    4.1.     解压、编译、安装

    在此过程中会自动联网下载所需的东西,所以要保持网络可用。

    复制代码
    tar zxvf xen-4.1.3.tar.gz
    
    cd xen-4.1.3
    
    make xen tools stubdom
    
    make install-xen install-tools install-stubdom
    复制代码

    4.2.     添加启动项

    复制代码
    /sbin/chkconfig --add xend
    
    /sbin/chkconfig --add xencommons
    
    /sbin/chkconfig --add xendomains
    
    /sbin/chkconfig xend on
    
    /sbin/chkconfig xendomains on
    
    /sbin/chkconfig xencommons on
    复制代码

    5.       安装Linux内核

    Xen需要更新Linux内核,目前测试时使用的是Linux 3.1.2版本,其它版本没试过。这里给出下载链接:http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2

    下载并解压:

    wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2
    
    tar jxvf linux-3.1.2.tar.bz2

    在编译之前,修改内核参数:

    make menuconfig

    在修改界面中将以下位置的选项都选为“*”:

    Processor type and features --- >     Paravirtualized Guest Support Device Drivers --->     Xen driver support --->     Network device support --->         Xen backend network device     Block devices--->         Xen block-device backend driver

    配置好内核参数以后,保存并退出,开始编译 Linux 内核:

    复制代码
    make -j4
    
    make -j4 modules
    
    make -j4 modules_install
    
    make -j4 install
    
    /sbin/depmod 3.1.2
    复制代码

    加了参数“-j4”后,会使用4个CPU核来并行处理,这样速度会快很多。若只有两核可以使用“-j2”。

    6.       配置Grub

    更新Grub,使用Xen来引导:

    vim /boot/grub/grub.conf

    在grub.conf中,已经自动添加了Linux 3.1.2的引导选项,手动添加一项引导选项,将kernel和initrd换成module,添加一行kernel /xen.gz,其它选项与Linux 3.1.2的引导选项一致即可:

    复制代码
    ...
    title CentOS (3.1.2-xen)
    root (hd0,0)
    kernel /xen.gz
    module /vmlinuz-3.1.2 ro root=/dev/mapper/vg_livecd-lv_root
    module /initrd-3.1.2.img
    ...
    复制代码

    重启,用Xen引导后,如果没问题,就会进入CentOS了,此时验证Xen:

    xm list

    若有类似如下输出,则Xen成功:

    Name                             ID   Mem    VCPUs      State   Time(s) 
    Domain-0                           0   1886     2     r-----     79.6 

    7.       安装Windows

    7.1.     硬件支持验证

    只有在全虚拟化下才能安装Windows,这就需要有硬件支持,并在BIOS中开启Virtualization Technology的选项。

    在安装Xen之前,可以用以下命令检查是否支持全虚拟化:

    Intel CPU:

    grep vmx /proc/cpuinfo --color=always

    AMD CPU:

    grep svm /proc/cpuinfo --color=always

    若有输出,说明支持全虚拟化。

    在安装了Xen之后,以上命令不起作用,因为已经Xen屏蔽了。需要用以下命令:

    grep hvm /sys/hypervisor/properties/capabilities --color=always

    若有输出,则说明支持全虚拟化,可以安装Windows,以下是我电脑的输出:

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

    7.2.     安装

    参考网上的教程,将xenbr0改为virbr0即可:

    http://www.virtuatopia.com/index.php/Installing_and_Running_Windows_XP_or_Vista_as_a_Xen_HVM_domainU_Guest

    如果看E文不方便的话,这里给出相对应的教程。

    首先,看看自己的网桥情况:

    brctl show

    这是我的输出:

    bridge name          bridge_id                         STP enabled           interfaces
    
    virbr0               8000.5254004d8e92                 yes                   virbr0-nic

    说明你的网桥正常,网桥名是:virbr0,这在下面的配置文件中要用到。

    将Windows的光盘镜像拷进来,假设文件是:winxp.iso

    创建虚拟机文件,比如设为6G:

    dd if=/dev/zero of=xenwin.img bs=1024k seek=6144 count=0

    建立配置文件xenwin.cfg:

    vim xenwin.cfg

    在VI中输入以下内容:

    复制代码
    import os, re
    arch = os.uname()[4]
    if re.search('64', arch):
        arch_libdir = 'lib64'
    else:
        arch_libdir = 'lib'
     
    kernel = "/usr/lib/xen/boot/hvmloader"
    
    builder='hvm'
    
    memory = 512
    shadow_memory = 8
    name = "xenhvm"
    vif = [ 'type=ioemu, bridge=virbr0' ]
    disk = [ 'file:/home/xenwin.img,hda,w', 'file:/home/winxp.iso,hdc:cdrom,r' ]
    device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
    # boot on floppy (a), hard disk (c) or CD-ROM (d)
    # default: hard disk, cd-rom, floppy
    boot="dc"
    
    sdl=0
    vnc=1
    vncconsole=1
    vncpasswd=''
    stdvga=0
    serial='pty'
    usbdevice='tablet'
    复制代码

    其中vif的网桥输入你电脑的网桥名;disk定位刚才创建的xenwin.img的路径,以及Windows光盘镜像的路径。

    配置文件创建完后,就可以开启虚拟机了:

    xm create xenwin.cfg

    如果没有问题,会自动打开一个VNC的窗口,里面就是Windows的安装界面了。

    在Windows的安装过程中会重启,重启造成VNC窗口关闭,但其实虚拟机正在后台运行,可以用以下命令打开VNC窗口:

    xm vncviewer xenhvm

    其中xenhvm是你虚拟机的名称,可以在xm list中看到。

    到此,本教程结束,祝大家成功!

    http://www.cnblogs.com/cxun/archive/2012/09/06/2673195.html

  • 相关阅读:
    5. Fragment详解
    4. 2D绘制与控件绘制
    3、用继承和组合方式定制控件
    2、复杂布局实现
    1、android源代码下载与跟踪
    19、照相机技术
    18、GPS技术
    17、Wi-Fi Direct
    16、蓝牙技术
    15、NFC技术:使用Android Beam技术传输文件
  • 原文地址:https://www.cnblogs.com/findumars/p/5543251.html
Copyright © 2011-2022 走看看