virt-install 后不要启动客户机

virt-install 后不要启动客户机

我想设置新的客户机,但不想立即启动它。我使用virt-install以下选项:

virt-install \
    --connect qemu:///system \
    --import \
    --virt-type kvm \
    --name somevm \
    --os-variant win7 \
    --memory 2048 \
    --vcpus 1 \
    --disk /home/bla/VirtualMachines/somevm.qcow2,format=qcow2,device=disk \
    --network network=default \
    --noautoconsole \
    --sound default

virt-install总是会启动虚拟机。我在手册页中找不到任何禁用自动启动的选项。我宁愿不在virsh destroy somevm安装后立即调用,尽管虚拟机可能还没有启动……是否可以使用 virt-install 阻止客户机启动,或者是否有其他工具可以执行相同操作但不启动客户机?

我还发现了一些解决方法:--import你可以使用 来安装虚拟机,而不是使用--pxe。如果没有可用的 PXE 服务器,那么这应该有足够的时间来使用 来销毁客户机virsh

答案1

virt-install选项--print-xml可能更接近您的需求。然后,您可以将它打印的 XML 输入到命令中virsh define以创建(但不启动)客户机。

另外,也可以查看该virt-xml工具,它是一种友好的方式,可以从参数(如您提供给 virt-install 的参数)构建 XML 文档

答案2

使用选项--noreboot

virt-install \
   ..
   ..
   --noautoconsole \
   --video vga \
   --memballoon none \
   --noreboot

更新:为那些启动 Windows VM 的用户
添加了--memballoon选项。Memballoon 在 Windows 上实际上不起作用。

答案3

我提到了一个可能对你的目标有用的案例关联

本质上,如果您有一个现有的磁盘映像,其中已安装好所有内容(您可能之前创建过,或者从现有的 KVM 客户机克隆),存储在 中,您可以通过导入该映像及其选项/var/lib/libvirt/images/debian10.qcow2来自动创建新的 KVM 虚拟机,例如,virt-install--noautoconsole

virt-install --virt-type kvm --name debian10 --disk /var/lib/libvirt/images/debian10.qcow2 --import --os-variant debian10 --vcpus 1 --memory 1024 --noautoconsole

名为 debian10 的域(或虚拟机)将在不要求任何交互的情况下创建,virt-install并将根据其手册中所述快速退出

–noautoconsole:不要自动尝试连接到客户控制台...
注意,当指定此选项时,virt-install 会快速退出...

由于您已安装好所有组件的映像,因此终止virt-install不会引起任何问题,而在本例中这是理想的行为。之后,您可以使用virsh destroy或命令关闭客户虚拟机。此时,您可以使用或 在其源文件(通常存储在 /etc/libvirt/qemu/)上以适当的方式virsh shutdown修改客户虚拟机的 XML 文件virsh edit

相关内容