• vmware workstation14嵌套安装kvm


     1.前言

    我在2017-11-06使用virtualbox安装了centos,然后嵌套kvm(win7),链接地址如下:

    https://www.cnblogs.com/tcicy/p/7790956.html

    今天想在virtualbox中再耍一遍的时候,发现egrep -o '(vmx|svm)' /proc/cpuinfo执行不出结果。。。

    然后Google了半天,发现virtualbox只支持嵌套,而且是个10多年的老bug了~~~~!!!无语!难道我2017-11-06用的是假的virtualbox???

    不过,想做实验,只能硬着头皮装VMware workstation。。。。。真不想装啊!!!

    安装VMware workstation14,安装centos7.xmini,一定要配置以下

     然后执行以下命令就可以安装kvm了

     egrep -o '(vmx|svm)' /proc/cpuinfo

    因为是mini安装,要啥啥没有,所以装点必须的

    1.1安装调试基础环境

    yum install -y epel-release  sysstat net-tools mlocate

    安装kvm程序及其环境

    yum install -y qemu-kvm qemu-kvm-tools libvirt virt-install virt-top

    可以安装的程序很多

    qemu-kvm         # 主要的KVM程序包,KVM在用户空间运行的程序
    qemu-kvm-tools   # KVM debugging and diagnostics tools
    virt-top         # 虚拟机统计命令,类似top
    libvirt          # 提供libvirt服务,用于管理虚拟机,它提供了一套虚拟机操作 API
    virt-install     # 基于libvirt服务的虚拟机创建命令
    
    bridge-utils     # 创建和管理桥接设备的工具
    virt-manager     #  基于libvirt的GUI图像化虚拟机管理软件
    libvirt-client   # 虚拟客户机提供的C语言工具包
    virt-viewer      # GUI连接程序,连接到已配置好的虚拟机,显示虚拟机的控制台Console
    python-virtinst  # 创建虚拟机所需要的命令行工具和程序库
    libvirt-client   # libvirt的客户端,最重要的功能之一就是在宿主机关机时可以通知虚拟机也关机  
    gpxe-roms-qemu   # 虚拟机iPXE的启动固件,支持虚拟机从网络启动
    libvirt-python   # libvirt为python 提供的 API
    python-virtinst  # 一套Python 的虚拟机安装工具
    virt-what        # 在虚拟机内部执行,查看虚拟机运行的虚拟化平台
    qemu-img         # 用于操作虚拟机硬盘镜像的创建、查看和格式转化

    关闭防火墙及selinux

    systemctl stop NetworkManager
    systemctl disable NetworkManager
    systemctl stop firewalld
    systemctl disable firewalld
    sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
    reboot
    
    重启之后执行以下
    systemctl status  NetworkManager
    systemctl status firewalld
    firewall-cmd --state
    getenforce
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    

    查看信息

    systemctl restart libvirtd
    systemctl status libvirtd
    ifconfig virbr0
    ifconfig virbr0-nic
    brctl show
    ps aux|grep dnsmasq
    iptables -nvL -t nat

    1.2创建虚机(NAT方式)

    创建磁盘

    mkdir /data

    qemu-img  create -f raw -o size=5G /data/tiny-linux.raw

    下面开始安装KVM咯!!!我用的tinylinux,安装iso只有18MB,还带桌面环境的~~~反正就是测试嘛~~~里面装个windows或者ubuntu、centos、freebsd等的都行,随便你。

    virt-install  --virt-type kvm --name Tiny-linux --ram 1024 --cdrom /data/TinyCore-current.iso --disk path=/data/Tiny-linux.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

    如果觉得这行代码太长,我们可以把代码改下,运行哪个都行,只是加了换行了而已。

    virt-install  --virt-type kvm 
    --name Tiny-linux 
    --ram 1024 
    --cdrom /data/TinyCore-current.iso 
    --disk path=/data/Tiny-linux.raw 
    --network network=default 
    --graphics vnc,listen=0.0.0.0 
    --noautoconsole

    然后可以查看咯

    netstat -ntlp|grep 5900    #第一台kvm是5900端口,依次累加5901,5902,5903........
    virsh -c qemu:///system list
    virsh list --all

    这时候你可以打开vnc连接了

    tightvnc的下载地址

    http://www.tightvnc.com/download.php

    IP地址是centos7.xmini的地址,点击connect就行了,自己安装就完事了。

    1.3创建虚机(Bridge方式)

    1.3.1创建网桥

    cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak

    cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0

    然后修改,修改后的结果如下:

    [root@bogon ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=dhcp
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    NAME=ens33
    UUID=1a5720e1-1ba5-4b97-9b7c-fc312327a291
    DEVICE=ens33
    ONBOOT=yes
    BRIDGE=br0                    ##增加这条
    [root@bogon ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
    TYPE=Bridge
    BOOTPROTO=dhcp
    NAME=br0
    DEVICE=br0
    ONBOOT=yes
    

    在ifcfg-ens33中增加BRIDGE=br0

    ifcfg-br0中就5条信息就好了~~~[注意,centos7默认没有/etc/sysconfig/network-scripts/ifcfg-br0这个文件]

    然后执行systemctl restart network

    这时候我的ens33没有IP地址了,原来的IP地址跑到br0上了。

    [root@bogon ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
        link/ether 00:0c:29:45:90:2d brd ff:ff:ff:ff:ff:ff
    3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 52:54:00:2d:9e:9d brd ff:ff:ff:ff:ff:ff
        inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
           valid_lft forever preferred_lft forever
    4: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
        link/ether 52:54:00:2d:9e:9d brd ff:ff:ff:ff:ff:ff
    5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UNKNOWN group default qlen 1000
        link/ether fe:54:00:55:75:55 brd ff:ff:ff:ff:ff:ff
        inet6 fe80::fc54:ff:fe55:7555/64 scope link
           valid_lft forever preferred_lft forever
    6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:0c:29:45:90:2d brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.106/24 brd 192.168.0.255 scope global dynamic br0
           valid_lft 7189sec preferred_lft 7189sec
        inet6 fe80::20c:29ff:fe45:902d/64 scope link
           valid_lft forever preferred_lft forever
    

    1.3.2创建虚机

    创建磁盘

    mkdir /data

    qemu-img  create -f raw -o size=5G /data/tiny-linux.raw

    下面开始安装KVM咯!!!我用的tinylinux,安装iso只有18MB,还带桌面环境的~~~反正就是测试嘛~~~里面装个windows或者ubuntu、centos、freebsd等的都行,随便你。

    virt-install  --virt-type kvm --name Tiny-linux --ram 1024 --cdrom /data/TinyCore-current.iso --disk path=/data/Tiny-linux.raw --network network=br0,model=virtio --graphics vnc,listen=0.0.0.0 --noautoconsole

    注意上面的命令network=br0,model=virtio

    如果这是你的第二胎,那么端口就是5901了~~~其他都一样,自己改。

    1.4其他命令

    virsh start Tiny-linux    #启动Tiny-linux虚拟机
    virsh edit Tiny-linux    #编辑tiny-linux虚拟机
    virt-top      #查看虚拟机的top信息

    virsh destroy Tiny-linux    #把tiny-linux断电

    virsh undefine Tiny-linux    #把已断电的tiny-linux虚拟机从数据库中删除,不删除raw磁盘文件
    updatedb    #更新locate数据库
    locate Tiny-linux    #哪里有tiny-linux文件,

    rm --rf tiny-linux    #删除关于tiny-linux的一切.故意多写了一个减号

    tiny-linux虚拟机的配置文件在/etc/libvirt/qemu/tiny-linux.xml下,不要直接vi,要通过virsh edit tiny-linux来进行编辑,virsh edit调用的vi,编辑方式完全同vi。

    我刚执行了virt-install.........然后发现光盘挂错了,然后就可以执行virsh edit tiny-linux
    然后增加以下部分
    
    此时再运行virsh start tiny-linux,虚拟机就挂载的cdrom了。

     1.5其他的操作命令

    virsh define template.xml  定义一个虚机,并不启动

    virsh suspend tinylinux    #挂起虚机

    virsh resume tinylinux    #恢复被挂起的虚机

    virsh autostart tinylinux    #让虚机随宿主机一起启动

    virsh auotstart --disable tinylinux  #取消虚机随宿主机一起启动

    virsh dominfo tinylinux    #显示虚机信息

    virsh shutdown tinylinux    #关闭虚机

    virsh reboot tinylinux    #重启虚机

    virsh console tinylinux    通过console进入虚机

    Ctrl+]    #从虚机的console端口退出

    virsh vncdisplay tinylinux    #查看vnc端口

    [root@bogon ~]# virsh vncdisplay centos6.5
    :0
    [root@bogon ~]#yum install -y vnc
    [root@bogon ~]#vncviewer 127.0.0.1:0
    file /var/lib/libvirt/qemu/*    #查看虚拟机 socket 文件及 save、dump、snapshot 目录
    [root@bogon qemu]# file /var/lib/libvirt/qemu/*
    /var/lib/libvirt/qemu/channel:            directory
    /var/lib/libvirt/qemu/domain-2-Tiny-linux: directory
    /var/lib/libvirt/qemu/domain-3-gentoo:    directory
    /var/lib/libvirt/qemu/dump:               directory
    /var/lib/libvirt/qemu/nvram:              directory
    /var/lib/libvirt/qemu/ram:                directory
    /var/lib/libvirt/qemu/save:               directory
    /var/lib/libvirt/qemu/snapshot:           directory

    虚机配置文件放在/etc/libvirt/qemu/tiny-linux.xml

    修改xml文件,开机引导项设置为硬盘,2种方法,推荐第一种

    1.virsh edit tinylinux
    <os> <type>hvm</type> <boot dev="hd"/> <!-- 虚拟机开机引导项设置为硬盘--> </os>
    2.需要3条命令
    vi /etc/libvirt/qemu/tiny-linux.xml
     virsh undefine tiny-linux
    virsh define tiny-linux

    如果想用Virt-manager创建虚机请参考https://www.cnblogs.com/tcicy/p/7790956.html

    虚机格式转换请参考https://www.cnblogs.com/tcicy/p/8522808.html

    关闭虚拟机

      如果virsh shutdown不管用的话就再虚拟机里面执行以下命令

    yum -y install  acpid
    service acpid restart
    chkconfig --level 2345 acpid on 
    chkconfig acpid --list

    1.6删除虚机

      1.virsh destroy tinylinux  #删除虚机

      2.virsh undefine tinylinux  #解除标志

      3.rm虚拟机文件(可通过locate tinylinux查找)

    重命名虚机  (比较麻烦,一般别折腾)

    1.关闭虚机
    2.重命名xml文件
    cd /etc/libvirt/qemu
    virsh dumpxml tinylinux > xxx.xml
    3、编辑xxx.xml文件,修改<name>标签对以及磁盘文件,这里我们将磁盘文件Tiny-linux.raw修改成xxx.raw,把tinylinux改成xxx
    4.重命名磁盘文件
    cd /var/lib/libvirt/images    (我的路径是/data/)
    mv Tiny-linux.raw xxx.raw
    5.数据库中删除原虚机,定义新虚机
    virsh undefine tinylinux
    virsh define /etc/libvirt/qemu/xxx.xml
    6.查看
    virsh list --all

    1.7未完成操作

    给虚拟机添加硬盘

      1.物理硬盘

      virsh attach-disk tinylinux  /dev/sdb vbd --driver qemu --mode shareable    #将/dev/sdb给到tinylinux虚机

      #如果虚机是Windows的话会出现 SCSI 设备 (Red Hat VirtIO SCSI Disk Device)驱动在 virtio-win-0.1-15.iso

      virsh detach-disk tinylinux vdb    #卸载硬盘

      2.LVM卷

      lvcreate -n tinydisk -L 50G tinyvbd    #通过lvcreate创建一块硬盘,硬盘名字为tinydisk,文件名字为tinyvbd

      virsh attach-disk tinylinux /dev/vg_shkvm1/kvm-1-data vdb --driver qemu --mode shareable

    更改内存大小

    更改CPU

    硬盘扩容

    更换光盘

    virsh attach-disk tinylinux  /path/to/filename.iso hdc --type cdrom

  • 相关阅读:
    PAT甲题题解-1106. Lowest Price in Supply Chain (25)-(dfs计算树的最小层数)
    PAT甲题题解-1105. Spiral Matrix (25)-(模拟顺时针矩阵)
    PAT甲题题解-1102. Invert a Binary Tree (25)-(建树,水题)
    PAT甲题题解-1101. Quick Sort (25)-大水题
    PAT甲级题解-1100. Mars Numbers (20)-字符串处理
    XJOI网上同步训练DAY1 T2
    XJOI网上同步训练DAY1 T1
    BZOJ 1061 志愿者招募
    BZOJ 2432 兔农
    KMP算法总♂结
  • 原文地址:https://www.cnblogs.com/tcicy/p/10172256.html
Copyright © 2020-2023  润新知