zoukankan      html  css  js  c++  java
  • 实验三: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.1.tar.bz2
    cd busybox-1.22.1/

        解压好以后,暂时还不能编译安装,我们还需要为其制定编译环境

    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.32-504.el6.x86_64 vmlinuz ln –sv initramfs-2.6.32-504.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/24 dev eth0

        再将本地网卡eno16777736也添加网桥中,这样本地网络就与真实网络相同了

    brctl addif br0 eno16777736
    ifconfig br0 192.168.238.101/24 up  #给网桥配置IP地址

        此时,虚拟网桥地址和本地vmnet8以及虚拟机的eth0就处于同一个网段了;

      6、测试网络

    实验结果:

  • 相关阅读:
    Web API系列(三)统一异常处理
    Web API系列(二)接口安全和参数校验
    Web API系列(一)设计经验与总结
    文件并发(日志处理)--队列--Redis+Log4Net
    Jquery手机下拉刷新,下拉加载数据
    nginx 几个参数
    op cache config
    历史问题回顾
    第三方服务的使用
    nginx+php-fpm json_encode 到client pages 截断
  • 原文地址:https://www.cnblogs.com/BurnovBlog/p/10749770.html
Copyright © 2011-2022 走看看