美文网首页阿飞的小经验
如何使用qcow2创建虚拟机

如何使用qcow2创建虚拟机

作者: 小飞飞6号 | 来源:发表于2019-01-22 10:45 被阅读0次

    kvm虚拟机安装

    参考已下资料
    KVM虚拟机在Ubuntu16.04下的环境搭建

    安装所需软件

    sudo apt-get install qemu-kvm
    sudo apt-get install qemu
    sudo apt-get install libvirt-bin 
    sudo apt-get install bridge-utils
    sudo apt-get install virt-manager
    sudo apt-get install virt-viewer
    

    配置网络桥接

    修改完成后建议重启

    vim /etc/network/interfaces
    # modify like ↓
    
    # Enabing Bridge networking br0 interface
    auto br0
    iface br0 inet static
    address 192.168.1.130
    network 192.168.1.0
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-nameservers 223.5.5.5
    bridge_ports eth0
    bridge_stp off
    

    虚拟机xml

    使用xml文件对虚拟机进行配置,这里提供一份能使用的版本(双网卡)
    相关的键的意思可以参考利用virsh和xml文件创建虚拟机

    <domain type='kvm'>
      <name>fly-1</name>
      <uuid>98c38a09-395b-d7e9-81e8-44d46ef7d61c</uuid>
      <memory unit='GiB'>32</memory><!--内存-->
      <currentMemory unit='GiB'>32</currentMemory><!--修改成与上面一样-->
      <vcpu placement='static'>12</vcpu><!--cpu数量-->
      <resource>
        <partition>/machine</partition>
      </resource>
      <os>
        <type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type>
        <boot dev='hd'/>
      </os>
      <features>
        <acpi/>
        <apic/>
        <pae/>
      </features>
      <clock offset='utc'/>
      <on_poweroff>destroy</on_poweroff>
      <on_reboot>restart</on_reboot>
      <on_crash>restart</on_crash>
      <devices>
        <emulator>/usr/bin/kvm-spice</emulator>
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/> <!--注意文件格式-->
          <source file='/root/fly-kvm/fly-1.qcow2'/> <!--qcow文件-->
          <target dev='hda' bus='ide'/>
          <alias name='ide0-0-0'/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
        <controller type='usb' index='0'>
          <alias name='usb0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
        </controller>
        <controller type='pci' index='0' model='pci-root'>
          <alias name='pci.0'/>
        </controller>
        <controller type='ide' index='0'>
          <alias name='ide0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
        </controller>
        <interface type='bridge'> <!--网卡1-->
          <mac address='52:54:00:84:b0:f2'/>
          <source bridge='br1'/>
          <target dev='vnet3'/>
          <model type='rtl8139'/>
          <alias name='net0'/>                          <!--注意slot为pci插槽-->
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface> 
        <interface type='bridge'> <!--网卡2-->
          <mac address='52:54:00:5d:a5:42'/>
          <source bridge='br2'/>
          <target dev='vnet4'/>
          <model type='rtl8139'/>
          <alias name='net1'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
        </interface>
        <serial type='pty'>
          <source path='/dev/pts/2'/>
          <target port='0'/>
          <alias name='serial0'/>
        </serial>
        <console type='pty' tty='/dev/pts/2'>
          <source path='/dev/pts/2'/>
          <target type='serial' port='0'/>
          <alias name='serial0'/>
        </console>
        <input type='mouse' bus='ps2'/>
        <input type='keyboard' bus='ps2'/>
        <graphics type='vnc' port='5903' autoport='yes' listen='127.0.0.1'>
          <listen type='address' address='127.0.0.1'/>
        </graphics>
        <sound model='ich6'>
          <alias name='sound0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
        </sound>
        <video>
          <model type='cirrus' vram='9216' heads='1'/>
          <alias name='video0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
        </video>
        <memballoon model='virtio'>
          <alias name='balloon0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
        </memballoon>
      </devices>
      <seclabel type='dynamic' model='apparmor' relabel='yes'>
        <label>libvirt-98c38a09-395b-d7e9-81e8-44d46ef7d61c</label>
        <imagelabel>libvirt-98c38a09-395b-d7e9-81e8-44d46ef7d61c</imagelabel>
      </seclabel>
    </domain>
    

    对于不同的虚拟机,需要配置不相同的uuid和mac地址,以下是生成mac和uuid的方法

    生成mac地址

    echo 52:54:00:`openssl rand -hex 3 | sed 's/\(..\)/\1:/g; s/.$//'` 
    

    生成uuid

    uuidgen
    

    virsh操作虚拟机

     virsh define vm0.xml  //导入虚拟机配置
     virsh create vm0.xml  //临时启动虚拟机,关机后将从列表删除
     virsh start vm0  //开启vm0
     virsh list --all  // 显示所有虚拟机状态
     virsh shutdown vm0 //正常关机
     virsh destroy vm0  //强制关闭(转为停止状态)
     virsh undefine vm1  //删除虚拟机配置
     virsh dumpxml vm0 //显示虚拟机xml配置
     virsh console vm0 //进入虚拟机控制台(可以查看开机过程的问题)
    
    

    这里使用 create 可以立刻加载并启动。

    修改磁盘大小

    # 查看键像信息
    qemu-img info my-image.qcow2
    
    # 修改大小为50g
    qemu-img resize t.qcow2 50G
    
    #增加大小1G
    qemu-img resize t.qcow2 +1G
    
    

    修改网络

    有两种方式可以修改网络

    进入虚拟机后修改

    vim /etc/network/interfaces
    
    #替换成以下格式内容
    
    auto lo
    iface lo inet loopback
    
    #ens3网卡配置,修改成与配置文件中对应插槽3网口的桥接网段
    auto ens3
    iface ens3 inet static
      address 172.0.10.224
      netmask 255.255.255.0
      gateway 172.0.10.1
      dns-nameserver 8.8.8.8
      
    #ens3网卡配置,修改成与配置文件中对应插槽6网口的桥接网段
    auto ens6
    iface ens6 inet static
      address 172.0.5.204
      netmask 255.255.255.0
      gateway 172.0.5.1
      dns-nameserver 8.8.8.8
    
    

    修改完成后,使用reboot重启虚拟机即可生效。

    未启动时修改

    未启动虚拟机时,可以通过挂在qcow2文件的方式修改机镜像内文件
    详细操作可以参考在 Linux 上如何挂载 qcow2 磁盘镜像

    # 文件挂载成设备
    qemu-nbd --connect=/dev/nbd0 my-image.qcow2
    # 准备一个挂载点:未被占用的文件夹,挂载后原内容会被隐藏
    mkdir img
    # 挂载到img目录
    mount /dev/nbd0p1 img
    
    ## 进行修改操作
    vim ./img/etc/network/interfaces
    
    # 卸载
    sudo umount img/
    sudo qemu-nbd --disconnect /dev/nbd0
    

    done.

    另一种参考挂载方法

    virt-install -n vm3 -r 4096 --vcpus 2 --description "This is a vm" --network bridge=br1,model=e1000 --network bridge=br2,model=e1000 --graphics vnc,listen=0.0.0.0 --disk path=my-image.qcow2 --boot hd=my-image.qcow2
    

    相关文章

      网友评论

        本文标题:如何使用qcow2创建虚拟机

        本文链接:https://www.haomeiwen.com/subject/fbfljqtx.html