首选创建虚拟磁盘

#qemu-img create -f qcow2 CentOS-6.3-x86_64.qcow2 10G

其次从iso启动镜像

#virt-install  --name centos-7.4 --ram 1024 --cdrom=CentOS-7.4-x86_64-bin-DVD1.iso --disk CentOS-7.4-x86_64.qcow2,format=qcow2 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --check all=off

报错

开始安装......
ERROR    Cannot access storage file '/root/CentOS-7.4-x86_64.qcow2' (as uid:107, gid:107): 权限不够
域安装失败,您可以运行下列命令重启您的域:
'virsh start virsh --connect qemu:///system start centos-7.4'

解决:

sed -i 's/#vnc_listen = "0.0.0.0"/vnc_listen = "0.0.0.0"/g' /etc/libvirt/qemu.conf
sed -i 's/#group = "root"/group = "root"/g' /etc/libvirt/qemu.conf
sed -i 's/#user = "root"/user = "root"/g' /etc/libvirt/qemu.conf
service libvirtd restart
#virt-install  --name Windows2008_x64 --ram 2048 --cdrom=win2008_x64fre_server_eval_zh-cn-GRMSXEVAL_CN_DVD.iso --disk Windows2008_x64.qcow2,format=qcow2 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=windows --os-variant=win2k8 --check all=off

查看vnc端口

 #virsh vncdisplay centos-6.3

使用vnc去连接安装系统

最后关闭系统后就可以使用QCOW2的镜像了

七、创建kvm虚拟机的三种方式

1 使用 virt-install 命令

 virt-install \ 
--name=guest1-rhel5-64 \ --file=/var/lib/libvirt/images/guest1-rhel5-64.dsk \
--file-size=8 \
--nonsparse --graphics spice \ 
--vcpus=2 --ram=2048 \
--location=http://example1.com/installation_tree/RHEL5.6-Serverx86_64/os \ 
--network bridge=br0 \ 
--os-type=linux \ 
--os-variant=rhel5.4 

2 使用 virt-manager 工具

不做介绍

3 使用 qemu-img 和 qemu-kvm 命令行方式安装

(1)创建一个空的qcow2格式的镜像文件

qemu-img create -f qcow2 windows-master.qcow2 10G 

(2)启动一个虚机,将系统安装盘挂到 cdrom,安装操作系统

qemu-kvm  -hda  windows-master.qcow2  -m 512 -boot d  -cdrom /home/user/isos/en_winxp_pro_with_sp2.iso 

(3)现在你就拥有了一个带操作系统的镜像文件。你可以以它为模板创建新的镜像文件。使用模板的好处是,它会被设置为只读所以可以免于破坏。

qemu-img create -b windows-master.qcow2 -f  qcow2   windows-clone.qcow2 

(4)新的镜像文件上启动虚机了

https://www.sohu.com/a/312683006_120115703  问题解决方法

ln -s /usr/libexec/qemu-kvm /usr/sbin/  (可执行文件软连接)
qemu-kvm -hda windows-clone.qcow2 -m 400
4、virsh命令创建虚拟机

1、使用dd创建虚拟机硬盘

dd if=/dev/zero  of=centos.img  bs=2k  seek=4096k count=1
 2、新建一个xml文件,里面存放虚拟机的配置信息,有内存、cpu、硬盘位置、光驱、VNC等配置
<domain type="kvm">
    <name>centos</name>  <!--虚拟机名称-->
    <memory unit="MiB">1024</memory>   <!--最大内存,单位k-->
    <currentMemory unit="MiB">1024</currentMemory>  <!--可用内存,单位k-->
    <vcpu>2</vcpu>   <!--//虚拟cpu个数-->
    <os>
        <type arch="x86_64" machine="pc">hvm</type>
        <boot dev="hd" /> <!-- 硬盘启动 -->
        <boot dev="cdrom" />     <!--//光盘启动-->
    </os>
    <features>
        <acpi />
        <apic />
        <pae />
    </features>
    <clock offset="localtime" />
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>destroy</on_crash>
    <devices>
        <emulator>/usr/libexec/qemu-kvm</emulator>
        <disk type="file" device="disk">
            <driver name="qemu" type="qcow2" />
            <source file="/var/lib/libvirt/images/test.qcow2" />        <!--目的镜像路径-->
            <target dev="hda" bus="ide" />
        </disk>
        <disk type="file" device="cdrom">
            <source file="/var/lib/libvirt/images/ubuntu.iso" />        <!--光盘镜像路径 -->
            <target dev="hdb" bus="ide" />
        </disk>
        <interface type="bridge">       <!--虚拟机网络连接方式-->
            <source bridge="br0" />      <!--当前主机网桥的名称-->
        </interface>
        <input type="mouse" bus="ps2" />
        <!--vnc方式登录,端口号自动分配,自动加1,可以通过virsh vncdisplay来查询-->
        <graphics type="vnc" port="-1" autoport="yes" listen="0.0.0.0" keymap="en-us" />
    </devices>
</domain>

3、创建虚拟机

virsh define centos.xml   ###将配置导入到虚拟机
virsh start centos    #### 启动虚拟机