在CentOS下源码安装 Xen并搭建Windows虚拟机

摘要:
但本节与本文无关。CentOS6的朋友可以跳过它。wgethttp://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpmrpm-Uvhepel-release-5-4.noarch.rpmyuminstallgit4.将Xen安装到主页以下载Xen:http://www.xen.org/以下是下载链接:http://bits.xensource.com/oss-xen/release/4.1.3/xen-4.1.3.tar.gz4.1.在此过程中,解压缩、编译和安装将自动在线下载所需的内容,因此保持网络可用。Tarzxvfxen-4.1.3焦油。gzcdxen-4.13makexeintoolsstudommakeinstall xeninstall-toolsinstall-stubdom4.2.添加启动项/sbin/chkconfig--addxend/sbin/chconfig--addxencommons/sbin/ckconfig--addxenodoms/sbin/chkconfigxendon/sbin/chkconfigxendon/sbin/chhconfigxendon/sbin/ckhkconfigxendedomain/sbin/ckconfigxencommon5。安装Linux内核Xen需要更新Linux内核。目前,测试使用的是Linux的3.1.2版本,没有其他版本尝试过。
前言

首先要感谢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中看到。

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

免责声明:文章转载自《在CentOS下源码安装 Xen并搭建Windows虚拟机》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt加载lib文件三个模块、轻松搭建后台用户角色权限管理系统下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下安装Nginx并实现socket代理

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。 ububtu平台编译环境可以使用以下指令 1 2 apt-get install build-essential apt-get install libtool cen...

linux oracle em的一些用法

一、乱码 1)分别备份ORACLE自带JRE和JDK下的当前字体配置文件(font.properties)cp ($ORACLE_HOME)或者/u01/app/oracle/product/10.2.0/db_1/jre/1.4.2/lib/font.properties ($ORACLE_HOME)或者/u01/app/oracle/product/1...

蜕变成蝶~Linux设备驱动之异步通知和异步I/O

在设备驱动中使用异步通知可以使得对设备的访问可进行时,由驱动主动通知应用程序进行访问。因此,使用无阻塞I/O的应用程序无需轮询设备是否可访问,而阻塞访问也可以被类似“中断”的异步通知所取代。异步通知类似于硬件上的“中断”概念,比较准确的称谓是“信号驱动的异步I/O"。 1、异步通知的概念和作用 影响:阻塞--应用程序无需轮询设备是否可以访问 非阻塞--中...

linux操作提示:“Can't open file for writing”或“operation not permitted”的解决办法

在linux上使用vi命令修改一个文件内容的时候,发现无法保存,每次写完使用“:q!”命令可以正常退出但是使用":wq!"命令保存文件并退出时出现一下信息提示:E212: Can't open file for writing Press ENTER or type command to continue出现这个错误的原因可能有两个:1.当前用户的权限不足...

Linux中查找最耗性能的JAVA代码

    在这里总结一下查找Linux、Java环境下最耗CPU性能的代码段的方法。基本上原理就是使用top命令查看最耗cpu的进程和线程(子进程)。使用jstack把java线程堆栈给dump下来。然后,在堆栈信息中查找出对应的代码块。具体操作如下: 一、查找最耗cpu的进程执行:top 输出: PID USER PR NI VI...

Redhat更新源

1.注册系统给我们提供了什么?如果我们点击系统的RHN,会提示注册系统的种种好处: 1)从官方获得软件源 2)免费或者系统的安装镜像和升级 3)系统故障以后,有专门的维护人员来协同我们处理 对于大部分人员,我们往往只关系,系统能否正常安装软件就够了。而redhat上yum的机理是这样的,通过yum读取配置文件/etc/yum.repos.d/file.re...