KVM管理
qemu命令参考 https://blog.csdn.net/bravezhe/article/details/8461386
KVM管理
作者:狂客,原创文章.转载请注明来源,侵权必究
-
虚拟机管理
-
virsh list --all #可以查看所有虚拟机
-
virsh undefine 虚拟机名 #删除虚拟机
-
virsh undefine 虚拟机名 --nvram #删除虚拟机并忽略硬盘
-
-
磁盘管理
-
qemu-img create -f 类型 磁盘名 大小 #磁盘创建
-
qemu-img info 磁盘名 #查看磁盘信息
-
qemu-img convert -O 目标格式 源磁盘名 新磁盘名 #转换磁盘格式
-
qemu-img resize 磁盘名 +大小 #改变磁盘大小
-
-
快照管理
-
qemu-img snapshot -l 磁盘名 #查看快照
-
qemu-img snapshot -c 快照名 磁盘名 #创建快照
-
qemu-img snapshot -a 快照ID 磁盘名 #快照恢复 - 快照ID 换成 快照名 应该也可以 没试过
-
qemu-img snapshot -d 快照ID 磁盘名 #快照删除 - 同上
-
-
派生镜像
这里的 镜像名 与 磁盘名 可以理解为一个东西
-
派生镜像是什么 和 vmware的克隆一个意思。
# 6.2.0之前 qemu-img create -f 格式 派生镜像名 -o backing_file=源镜像名 派生镜像大小 #创建派生镜像 # 6.2.0之后 qemu-img create -f 格式 -F 格式 派生镜像名 -o backing_file=源镜像名 派生镜像大小 #创建派生镜像
-
如果在派生镜像做了很多操作 想以派生镜像作为源镜像 又不想牵扯镜像太多 可以使用以下方式将 派生镜像和源镜像合并。但是不建议这么搞。完全可以继续派生。
qemu-img convert -O 格式 派生镜像 新生成的源镜像名 #源镜像和派生镜像合并
-
-
磁盘清理
在基于qcow2格式的虚拟机中进行删除文件操作后,物理磁盘文件并不会变小。可以用以下方法对磁盘文件瘦身。
- linux系统
dd if=/dev/zero of=~/junk #已删除的空间全填充0 rm junk #执行完成关闭客户机 #上面两步是在客户机完成的。如果是派生镜像需要加 -B 来指定back_file原镜像,不够要注意清理后 快照 都会消失 qemu-img convert -O 格式 源磁盘名 新磁盘名
- win系统
#需要安装 SDelete 软件 C:\>sdelete -z c: #上面两步是在客户机完成的。如果是派生镜像需要加 -B 来指定back_file原镜像,不够要注意清理后 快照 都会消失 # 6.2.0之后需要加上 -F qcow2 qemu-img convert -O 格式 源磁盘名 新磁盘名
- linux系统
-
双机调试
host
<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
......
<qemu:commandline>
<qemu:arg value="-serial"/>
<qemu:arg value="tcp::6666,server=on,nowait"/>
</qemu:commandline>
</domain>
guest
<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
......
<qemu:commandline>
<qemu:arg value="-serial"/>
<qemu:arg value="tcp:0.0.0.0:6666,reconnect=3"/>
</qemu:commandline>
</domain>
-
Linux文件共享
<filesystem type="mount" >
<driver type="virtiofs"/>
<source dir="/home/kuangke/kvmShare/"/>
<target dir="kvmShare"/>
</filesystem>
虚拟机里执行
sudo mount -t virtiofs kvmShare /home/kuangke/kvmShare
#mount -t 9p kvmShare /home/kuangke/kvmShare
#如果报错 wrong fs type, bad option, bad superblock. 切换个目录再试试. 如 /home/kuangke/kvmShare 就切换到 /root 文件夹.总之不能再目标文件夹路径内.
-
关于远程rdp
#使用freerdp2
xfreerdp /u:administrator /p: /v:192.168.122.240 /size:2560x1440 /scale:140 /f /sound
-
关于libvirt 和 dnsmasq定义 (加入dnsmasq配置)
<!--以下是个示例 /etc/libvirt/qemu/networks/default.xml-->
<network xmlns:dnsmasq='http://libvirt.org/schemas/network/dnsmasq/1.0'>
<name>default</name>
<uuid>8081cdec-7861-4598-a0c9-703ca2ef2208</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:73:9b:6b'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
<dnsmasq:options>
<!--置缓存大小-->
<dnsmasq:option value="cache-size=10240"/>
<!--监听地址-->
<dnsmasq:option value="listen-address=127.0.0.1"/>
<!--泛域名解析-->
<dnsmasq:option value="address=/lxxxx/192.168.122.179"/>
</dnsmasq:options>
</network>
需要注意的是 default.xml
在销毁网络时也会被删除.所以复制个副本出来. 需要重新定义时 把副本复制下 重命名 default.xml
即可
-
bios信息
<os firmware="efi">
....
<smbios mode="sysinfo"/>
</os>
<sysinfo type="smbios">
<bios>
<entry name="vendor">biosLEN1OVO</entry>
<entry name="version">1.24</entry>
<entry name="date">06/21/21</entry>
</bios>
<system>
<entry name="manufacturer">systemF1edora</entry>
<entry name="product">systemManager</entry>
<entry name="version">01.9.4</entry>
<entry name="serial">systemk1</entry>
<entry name="uuid">48ad498a-ef56-4388-9c90-8876d16a20f2</entry>
</system>
<baseBoard>
<entry name="manufacturer">baseBoardLE1NOVO</entry>
<entry name="product">baseBoard20BE10061MC</entry>
<entry name="version">baseBoard0B981401 Pro</entry>
<entry name="serial">baseBoardW1KS4127111E</entry>
</baseBoard>
<chassis>
<entry name="manufacturer">chassisDe1ll Inc.</entry>
<entry name="version">2.112</entry>
<entry name="serial">chassis65X10XF2</entry>
<entry name="asset">chassis400010101</entry>
<entry name="sku">chassisType13Sku1</entry>
</chassis>
<oemStrings>
<entry>oemStrings1</entry>
<entry>oemStrings2</entry>
</oemStrings>
</sysinfo>
-
如果虚拟机不稳定.比如运行段时间 假死 或者 蓝屏CLOCK_WATCHDOG_TIMEOUT(101) 可以试试下面的 主要是-cpu, 其他是调试用的
<qemu:commandline>
<qemu:arg value="-trace"/>
<qemu:arg value="/var/log/libvirt/qemu/kuangke-trace.log"/>
<qemu:arg value="-monitor"/>
<qemu:arg value="stdio"/>
<qemu:arg value="-D"/>
<qemu:arg value="/var/log/libvirt/qemu/kuangke.log"/>
<qemu:arg value="-cpu"/>
<qemu:arg value="host,hv_time,hv_relaxed,hv_vpindex,hv-synic,hv-ipi,hv-tlbflush,hv-runtime,hv-frequencies,hv_vapic,hv-stimer,hv-stimer-direct,hv_spinlocks=0x1fff,hv_vendor_id=xeon"/>
</qemu:commandline>
<!--使用VT调试情况下 使用以下参数-->
<!-- 排除 hv-ipi, hv-tlbflush -->
<qemu:arg value="host,hv_time,hv_relaxed,hv_vpindex,hv-synic,hv_vapic,hv-stimer,hv-stimer-direct,hv-runtime,hv-frequencies,hv_spinlocks=0x1fff,hv_vendor_id=xeon"/>