一、准备工作:
       在安装和配置kvm虚拟机之前,首先确保kvm软件已经被正确安装,如果没有安装,请参考如下几步操作:  
       第一步:检查CPU是否支持vmx相关指令,如果执行结果中有vmx相关的关键字,则为支持;

    cat /proc/cpuinfo |grep vmx

       第二步:安装kvm配套软件

    yum install qemu-kvm libvirt virt-install bridge-utils -y

       第三步:检查kvm服务已经正常启动,如果执行结果有kvm_xxx(CPU系列)、kvm则说明kvm服务已经启动

    lsmod | grep kvm

           如果未启动,可通过如下命令启动:

    systemctl start libvirtd

          如果希望设置为开机自动启动,需通过如下命令添加到开机启动的服务列表中:

    systemctl enable libvirtd

          查看kvm服务状态,可通过如下命令:

    systemctl status libvirtd

          及如下命令查看是否开机启动

    systemctl is-enabled libvirtd


二、为虚拟机配置桥接网卡

         桥接网卡的配置参数的含义请参考链接https://www.centos.org/docs/4/html/rhel-rg-en-4/s1-networkscripts-interfaces.html

         本次配置的kvm虚拟机希望采用DHCP方式获取IP地址,为此先通过vi命令在/etc/sysconfig/network-scripts下创建桥接网卡的配置文件ifcfg-br0:

   vi /etc/sysconfig/network-scripts/ifcfg-br0

        然后在ifcfg-br0文件中录入如下内容并保存后退出

  TYPE=Bridge
  PROXY_METHOD=none
  BROWSER_ONLY=no
  BOOTPROTO=dhcp
  DEFROUTE=yes
  NAME=br0
  DEVICE=br0
  ONBOOT=yes
  IPV6INIT=no

       之后,对br0绑定的物理网卡需要修改配置,本次绑定的是eno1网卡(注:不同环境下绑定哪个网卡根据机器的需求,CentOS7之前的网卡名通常为eth0、eth1这样的命名,单网卡的情况下是eth0),则修改eno1的配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-eno1

       在其中追加一句BRIDGE=br0:

  TYPE=Ethernet
  PROXY_METHOD=none
  BROWSER_ONLY=no
  BOOTPROTO=dhcp
  DEFROUTE=yes
  NAME=eno1
  UUID=abeaaa94-9abc-43b8-9a15-5267f5cb2f87
  DEVICE=eno1
  ONBOOT=yes
  IPV6INIT=no
  BRIDGE=br0

      以上配置完成后,为了保证配置生效,应当通过以下命令重启网络服务:

systemctl restart network

      通过以下命令查看桥接状态

brctl show


三、开始安装虚拟机      

       假定所有的操作都在/var目录下,CentOS安装源为文件为/var/iso/CentOS-7-x86_64-DVD-1708.iso,虚拟机文件创建为/var/vms/centos_vm0/vm0.qcow2,网桥使用br0,相应的操作命令如下:

virt-install --virt-type=kvm --name=centos_vm0 --vcpus=2 --memory=1024 --location=/var/iso/CentOS-7-x86_64-DVD-1708.iso --disk path=/var/vms/centos_vm0/vm0.qcow2,size=64,format=qcow2 --network bridge=br0 --graphics none --extra-args='console=ttyS0' --force

       注:上述命令是在一条命令行中执行的;执行了安装后,如果遇到配置错误之类的意外退出,希望重新安装,可通过如下步骤:

              第一步:查看当前运行的虚拟机:

         virsh list --all

             第二步:关闭当前运行的虚拟机,假定虚拟机名为centos_vm0,则操作命令为:

         virsh shutdown centos_vm0

                     注:类似的命令格式,启动虚拟机的命令如:

            virsh start centos_vm0

                            强制关闭虚拟机:

            virsh destroy centos_vm0

                            设置开机启动虚拟机

            virsh autostart centos_vm0

              第三步:删除虚拟机:

            virsh undefine centos_vm0

              第四步:清除虚拟机文件

            rm /var/vms/centos_vm0/vm0.qcow2

     

       执行了virt-install安装上述命令后,系统开始安装,并之后进入如下界面时设置语言、时区、网络、管理员密码等:

================================================================================
Installation
 1) [x] Language settings                
 2) [!] Time settings        (English (United States))                (Timezone is not set.) 
 3) [!] Installation source               
 4) [!] Software selection        (Processing...)                          (Processing...) 
 5) [!] Installation Destination          
 6) [x] Kdump        (No disks selected)                      (Kdump is enabled) 
 7) [ ] Network configuration             
 8) [!] Root password        (Not connected)                          (Password is not set.) 
 9) [!] User creation        (No user will be created)  Please make your choice from above ['q' to quit | 'b' to begin installation |  'r' to refresh]:
 
[anaconda] 1:main* 2:shell  3:log  4:storage-lo> Switch tab: Alt+Tab | Help: F1

1、进入菜单2)Time settings后设置时区的步骤:


Time settings
Timezone: not set