在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-develyum install bridge-utils  libtool-ltdl xorg-x11-drv-evdev xorg-x11-drv-fbdevyum install xorg-x11-drv-i810-devel xorg-x11-drv-via-devel xorg-x11-proto-develyum install xorg-x11-server-sdk xorg-x11-xtrans-devel libuuid-develyum install readline-devel gcc gcc-gfortran gcc-c++ flex pcre-develyum install blas-devel lapack-devel curl-devel bison gperf gnuplotyum 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.gzcd acpica-unix-20120816makemake 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.rpmyum 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.gzcd xen-4.1.3make xen tools stubdommake 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.bz2tar 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 -j4make -j4 modulesmake -j4 modules_installmake -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           interfacesvirbr0               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中看到。

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

 

转载于:https://www.cnblogs.com/cxun/archive/2012/09/06/2673195.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python gif_python 将png图片格式转换生成gif动画

先看知乎上面的一个连接 用Python写过哪些【脑洞大开】的小工具? 这个哥们通过爬气象网站的气象雷达图,生成一个gif的动态图。非常有趣且很实用,那咱也实现下。 我们先实现一个从GIF提取帧的代码 我们这有个gif代码如下: from PIL…

HTTP代理原理以及HTTP隧道技术

通过HTTP协议与代理服务器建立连接,协议信令中包含要连接到的远程主机的IP和端口号,如果有需要身份验证的话还需要加上授权信息,服务器收到信令后首先进行身份验证,通过后便与远程主机建立连接,连接成功之后会返回给客…

goland环境配置_Goland辅助工具goimports和gomodules

1、goimports工具goimports工具是Go官方提供的一种工具,它能够为我们自动格式化 Go 语言代码并对所有引入的包进行管理,包括自动增删依赖的包引用、将依赖包按字母序排序并分类。我们在使用Goland IDE的时候,建议使用goimports工具。它具备包…

NSString 中包含中文字符时转换为NSURL

NSString中如果包括中文字符的话转换为NSURL得到的值为nil,在网上搜了下,用stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding可以解决,代码如下:NSString *str [NSString stringWithUTF8String:surl.c_str()]; …

石头剪刀布python代码_python实现石头剪刀布程序

本文实例为大家分享了python实现石头剪刀布的具体代码,供大家参考,具体内容如下 概述: 如果你和我一样是一个有着其他语言基础的编程者,那我想这个小程序对于你来说是小case。由于本人初学Python,就先拿这个熟悉熟悉一…

ubuntu/wireshark --Lua: Error during loading: [string /usr/share/wireshark/init.lua]:45问题解决

错误如下: 解决方案:修改init.lua 直接运行wireshark的话会报错: Lua: Error during loading: [string "/usr/share/wireshark/init.lua"]:45: dofile has been disabled 要对其进行修改,终端运行 sudo gedit /usr…

中高德地图只显示某一城市_Excel实用知识:从零开始,一步步制作属于你自己的三维演示地图...

说明本文是视频内容的图文整理版。原版视频可以在文末观看三维地图操作详解这是一份原始表格,点击表内任意一个单元格,使用Ctrl和T,将这张表转换为动态表,点击插入,三维地图。重命名图层为销售地图一,在位置…

HttpModules 管道过滤 自定义页面

IIS里.HTML扩展名默认ASP.NET不做请求管理,如果要在HttpModules中拦截html的请求,从而做一些流量判断或url伪静态重定向的操作,请将IIS的扩展名.HTML映射到“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll” iis管理器 - 站点 - 处理程序映射,增…

Linux软连接和硬链接

1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。 【硬连接】 硬连接指通过索引节点来进行连接。在Linux的…

python内置函数分类_Python 69个内置函数分类总结

1 内置函数 Python3解释器中内置了69个常用函数,属于底层的函数,它们到处可用。有些对大家来说比较熟悉,比如abs(), max(), sum()... 也有一些比较陌生,比如locals(), all(), compile(), getattr()... 今天按照类别扼要总结。 2 类…

pyspark 修改python版本_python – Pyspark从日期到字符串更改列的类型

我有以下数据帧:corr_temp_df[(vacationdate, date),(valueE, string),(valueD, string),(valueC, string),(valueB, string),(valueA, string)]现在我想将列vacationdate的数据类型更改为String,这样数据帧也会采用这种新类型并覆盖所有条目的数据类型数据.例如.写…

ubuntu下IP、DNS配置

一、配置ip ubuntu的网络配置信息放在 /etc/network/interfaces 中,如果配置动态获取ip,则在上述文件中加入以下内容:auto eth0iface eth0 inet dhcp如果配置静态ip,则添加如下内容:auto eth0 iface eth0 inet statica…

python向空列表添加列表_Python列表核心知识点汇总

千里之行,始于足下。要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好。今天带大家仔细温习一下Python的列表。温故而知新,不亦说乎。当然,温习的同时也要发散思考,因为有些看似无关紧要的、约定俗成的语言习…

伪指令endp告诉汇编程序_全国2004年10月高等教育自学考试微型计算机原理及应用试题历年试卷...

&nbsp&nbsp全国2004年10月高等教育自学考试微型计算机原理及应用试题课程代码:02277一、单项选择题(本大题共15小题,每小题1分,共15分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内…

C语言 if的条件相关

Expressions connected by && or || are evaluated left to right, and it is guaranteed that evaluation will stop as soon as the truth or falsehood is known. ----引用自 The C Programming Language 此句表明在C语言中如果多个条件用&&或者||连接的情况…

关于config_site.h文件【译】

编译前的准备 创建config_site.h文件 config_site.h文件的作用 创建config_site.h文件时的注意点 创建config_site.h文件 在编译源代码之前,必须先创建pjlib/include/pj/config_site.h文件(可以为空) 提示:当使用基于Makefile的编译系统,…

sharepoint2010的弹出等待提示的对话框

根据MSDN的资料。我做了个测试&#xff0c;代码如下&#xff1a; <% Assembly Name"$SharePoint.Project.AssemblyFullName$" %> <% Assembly Name"Microsoft.Web.CommandUI, Version14.0.0.0, Cultureneutral, PublicKeyToken71e9bce111e9429c" …

java中输出值保留四位小数_Java工程师(3).变量和数据类型

变量什么是变量变量是内存中的一块存储空间&#xff0c;用于保存Java程序准备使用的数据。可以为变量赋予一个简短并易于记忆的名字方便我们使用变量的值。int 变量的声明因为经常要保存一些数据&#xff0c;所以变量是很常用的。使用变量必须先声明变量&#xff1a;int 变量的…

扫描路径_npj: 纳米团簇表面的自动扫描—吸附位点和扩散路径

海归学者发起的公益学术平台分享信息&#xff0c;整合资源交流学术&#xff0c;偶尔风月金属纳米团簇常用于催化&#xff0c;因具有较高的分散性&#xff0c;应用领域不断扩大。与较大的金属纳米颗粒相比&#xff0c;其固有活性通常要高出数倍。这种高出的催化活性主要归因于其…

pjsip的编译及简单使用

1.下载下载地址&#xff1a;http://www.pjsip.org/download.htm我下载的是pjproject-1.12.zip2.编译将下载的文件解压后&#xff0c;目录下有pjproject-vs8.sln&#xff0c;可以直接使用vs2005打开&#xff0c;目录下的readme.txt文件中有编译说明&#xff0c;关于windows下的注…