实验三:xen环境下的第一个虚拟机的安装
实验名称:
xen环境下的第一个虚拟机的安装
实验环境:
我们这里继续上面实验二来完成这个实验;
环境则是xen的安装环境,如下图:

开启虚拟机的的硬件辅助虚拟化功能:
实验要求:
这里我们通过安装busybox的微型Linux的操作系统,正确安装busybox,能作为xen环境下的虚拟机运行;
能正常启动,且配置网络,能连接到本地的桥接网卡上面来即可;
实验配置:
1、准备磁盘映像文件
创建磁盘映像文件
mkdir /images/xen/
cd /images/xen/
qemu-img create -f raw /images/xen/busybox.img 2G
格式化磁盘,并挂载使用该磁盘映像
mke2fs -t ext2 busybox.img
du -sh busybox.img
mount -o loop busybox.img /mnt
因为是虚拟磁盘,通过du查看磁盘大小的时候并不是2G大小;
2、下载busybox系统文件,编译安装,提供根文件系统
这时候,我们需要去下载到busybox的源代码文件,通过编译安装去获取根文件系统;
wget https://busybox.net/downloads/busybox-1.22.1.tar.bz2
tar xf busybox-1.22..tar.bz2
cd busybox-1.22./
解压好以后,暂时还不能编译安装,我们还需要为其制定编译环境
yum grouplist
yum groupinstall -y "Development Tools"
yum install glibc-static -y
此时,如果通过make menuconfig进入busybox的配置页面就会报错,如下图:

此时我们还需要一个安装包:
yum install ncurses-devel -y
错误:在进行 make menuconfig 命令的时候,看到如下错误,是缺少ncurses-devel包我们需要 yum install ncurses-devel 来解决,如果是ubuntu的系统,则需要sudo apt-get install libncurses5-dev来解决这个问题;
之后就可以通过make menuconfig来进入busybox的配置界面,取消其关联库文件:
make menuconfig



进项编译安装系统
make && make install
编译安装完成以后再目录下面就会有“_install/”目录,里面的文件就是我们需要的根文件系统,此时,我们需要将这个目录下所有文件拷贝到磁盘映像目录下面去,并测试,将根目录切换过去,看是否能够切过去,如果能,则正常,不能,则可能是编译安装出错,需要尝试进行重新编译安装;
cp -a _install/* /mnt/
mkdir -pv /mnt/{boot,lib,lib64,home,sys,etc,var,tmp}
chroot /mnt/ /bin/sh
3、提供domU的内核文件和ramdisk
这里我们必须使用centos6.0系统的内核版本;
我们提供 2.6 的Linux kernel文件,以及与之匹配的ramdisk;
cd /boot/
ln –sv vmlinuz-2.6.-.el6.x86_64 vmlinuz
ln –sv initramfs-2.6.-.el6.x86_64.img initramfs.img
4、设置系统的配置文件,并启动系统
复制虚拟机的配置文件
cd /etc/xen/
cp xlexample.pvlinux busybox
修改虚拟机的配置文件
vim busybox
name = "busybox10"
kernel = "/boot/vmlinuz"
ramdisk = "/boot/initramfs.img"
root = "/dev/xvda ro"
extra = "selinux=0 init=/bin/sh"
memory = 256
vcpus = 2
#vif = [ 'bridge=br0' ] #先不用配置网络,在后面在进行网络配置
disk = [ '/images/xen/busybox10.img,raw,xvda,rw' ]
启动虚拟机
xl create busybox -c
这样就能进入到虚拟机中了,在虚拟机中可以使用一些基本的Linux命令
ls
ip addr
这里,我们可以看到,虚拟机中没有网卡
5、添加网桥,给虚拟机加载前端驱动程序
此时,我们需要为虚拟机去添加网络
rpm -ql bridge-utils #如果没有该工具,我们就需要yum install bridge-utils
brctl addbr br0
brctl addif br0 eno16777736
有了虚拟网桥br0后,我们就需要为虚拟机配置网卡信息
cd /etc/xen/
vim busybox
vif = [ 'bridge=br0' ] #这时候就可以将网卡添加到虚拟机
同时,我们还需要将网卡前端驱动程序复制到busybox的目录下面去,这里的ko文件由自己提供的
cp /root/xen-netfront.ko /mnt/lib/
最后进入到虚拟机中加载驱动程序,再配置网卡即可
#在busybox中的操作:
insmod /lib/xen-netfront.ko
ip addr
ip addr add 192.168.238.100/ dev eth0
再将本地网卡eno16777736也添加网桥中,这样本地网络就与真实网络相同了
brctl addif br0 eno16777736
ifconfig br0 192.168.238.101/ up #给网桥配置IP地址
此时,虚拟网桥地址和本地vmnet8以及虚拟机的eth0就处于同一个网段了;
6、测试网络
实验结果:
实验三:xen环境下的第一个虚拟机的安装的更多相关文章
- BizTalk开发系列(三) 单机环境下的BizTalk Server 2006 R2安装
大部分的开发环境都是在单机环境下进行的,今天整理了一下BizTalk Server 2006 R2在单机环境下的安装步骤. 1. 软件需求 在独立服务器中完整安装BizTalk Server 2006 ...
- 实验五:Xen环境下多虚拟机的桥接配置
实验名称: Xen环境下多虚拟机的桥接配置 实验环境: 这里我们首先需要有一台已经安装好的虚拟机机,能够正常运行,且网卡正常,如下图: 实验需求: 进行虚拟机的复制,并添加新的网桥配置,然后将两台虚拟 ...
- 实验七:Xen环境下cirrOS的安装配置
实验名称: Xen环境下cirrOS的安装配置 实验环境: 这里的cirrOS和实验六中的busybox的启动方式相同,唯一的区别就是我们使用的cirrOS镜像中,已经包含了根文件系统.内核文件以及r ...
- (转 留存)Windows环境下的NodeJS+NPM+GIT+Bower安装配置步骤
Windows环境下的NodeJS+NPM+GIT+Bower安装配置步骤 标签: NodeJSnpmbower 2015-07-17 16:38 3016人阅读 评论(0) 收藏 举报 分类: G ...
- 20180831-Linux环境下Python 3.6.6 的安装说明
20180831-Linux环境下Python 3.6.6 的安装说明 摘要:Python3 安装部署,普通用户,编译安装 Author: andy_yhm@yeah.net Date: 201808 ...
- win10+anaconda环境下pyqt5+qt tools+eric6.18安装及汉化过程
最近需要用python编写一个小程序的界面,选择了pyqt5+eric6的配套组合,安装过程中遇到一些坑,特此记录.参考书籍是电子工业出版社的<PyQt5快速开发与实战>. 因为我使用an ...
- win10 win7 环境下 oracle 11g和Plsql的安装、卸载遇到的问题。
* win7一体机在安装好oracle和PlSQL后,无法连接到orcl数据库,同时也忘记了sys设置的密码.(在这里应注意在安装过程中,应选择统一口令,这里我均设置成了orcl,同时也应该注意在最后 ...
- Linux单机环境下HDFS伪分布式集群安装操作步骤v1.0
公司平台的分布式文件系统基于Hadoop HDFS技术构建,为开发人员学习及后续项目中Hadoop HDFS相关操作提供技术参考特编写此文档.本文档描述了Linux单机环境下Hadoop HDFS伪分 ...
- Centos环境下部署游戏服务器-软件安装
这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...
随机推荐
- Python *Mix_w6
is 和 == 小数据池 python中有两个数据类型存在小数据池:数字int范围 -5 ~ 256 字符串中如果有特殊字符+ - * / @ 等等,他们的内存地址就可能不一样 字符串中单个*20以内 ...
- 网络编程,socket
1.网络编程 网络: TCP/IP 彼此之间遵守协议和规范!之间才能产生通信! IP: 每个人都有自己的身份证号! 用来标识我们网络中每一台计算机! IP地址= 网络地址 +主机地址 网络地址 :标识 ...
- python变量进阶(可变不可变,局部变量和全局变量)
变量进阶(理解) 目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引 ...
- AFNetworking 3.0简单数据请求get&post
/** *get请求方法 */ - (void)AFNGetUrl { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; ...
- node.js安装全攻略
node.js学习也有近一年之久了,自开始以来,能遇到各种问题,就拿安装来说,总能遇到稀奇古怪的问题,但每次谷歌,或者百度,都能找到解决办法,逐渐也就养成了百度或者谷歌的毛病! 正常安装 第一步:下载 ...
- OperateResult 基础类及派生类介绍
前言 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装: Install-Package HslCommunication NuGet安 ...
- Ubuntu安装lrzsz
本文主要介绍在Ubuntu下安装lrzsz工具,方便windows和linux间的文件上传下载 方法1:二进制包自动安装1.1 在终端中,输入命令,自动安装,简单方便: sudo apt-get in ...
- CentOS6.5上安装MySQL
1.查看操作系统的相关信息 2.查看系统上所有MySQL的rpm包并删除 [root@master ~]# rpm -qa | grep -i mysql [root@masterc ~]# yum ...
- RabbitMQ python模块pika生产者消费者轮询模型。
完整代码如下: 生产者,producer import pika connection = pika.BlockingConnection( pika.ConnectionParameters('lo ...
- python 多协程异步IO爬取网页加速3倍。
from urllib import request import gevent,time from gevent import monkey#该模块让当前程序所有io操作单独标记,进行异步操作. m ...