virt-manager 启动器操作直接启动并打开特定的虚拟机

virt-manager 启动器操作直接启动并打开特定的虚拟机

我将virt-manager其用于我的 Qemu/KVM 虚拟机。启动 VM 目前意味着启动virt-manager、选择 VM 以在 VM 查看器中打开它,然后最终打开 VM。

我想为其添加一个启动器上下文菜单选项,直接打开 VM 查看器窗口并启动 VM。

复制并编辑virt-manager.desktop文件以添加上下文菜单操作没有问题,但我不知道一个合适的命令可以virt-manager按照我的要求运行。我该如何实现?

答案1

使用 virt-manager 找到“Libvirt URI”(选择 VM,Edit -> Connection Details),然后找到 VM 的名称(选择 VM,Edit -> Virtual Machine Details- 如果您已打开机器,则必须确保它未最大化,然后View -> Details,完成后返回控制台。)

然后使用(不要输入前导 $)

$ virt-manager --connect <<URI>> --show-domain-console <<NAME>>

其中 URI 和名称是您从上面获取的。例如,我的看起来像:

$ virt-manager --connect qemu:///system --show-domain-console win7

从命令行运行该命令。如果成功,你应该可以将其放入一个简单的脚本中

$ cat > ~/bin/run-vm
#!/bin/bash
virt-manager --connect qemu:///system --show-domain-console win7
^D

(其中 ^D 代表 control + D)。

$ chmod u+x ~/bin/run-vm

然后,您应该能够将此命令添加到菜单中 - 例如Unix 和 Linux Stackoverflow 网站上的答案

您还可以将命令与参数一起直接添加到菜单中,但通常以脚本形式在命令行中运行命令更容易调试问题。

答案2

我写了一个小脚本“~/scripts/StartVirtDomain.sh”

#!/bin/sh
# call this script with domainname as parameter 
# to start domain and open viewer

/usr/bin/virsh start $1         # domain must be known to virsh
/usr/bin/virt-viewer -w $1      # -w to wait until domain is running. 

virt-viewer 应该与 virt-manager 一起安装;如果没有,sudo apt-get install virt-viewer.

您可以使用域名作为参数来调用它。它将启动该域(如果尚未启动),然后启动 virt-viewer 以连接该域。

示例桌面文件(W7Pro.desktop)

[Desktop Entry]
Version=1.0
Type=Application
Name=W7Pro
Comment=Start Windows VM 
Exec=~/scripts/StartVirtDomain.sh Win7Pro
Icon=
Path=~/scripts
Terminal=false
StartupNotify=false

完成了任务(域名为 Win7Pro)。脚本中没有错误处理;如有必要,您可以添加一些。特别是,如果域不为 virsh 所知或无法启动,virt-viewer 可能会永远等待。

编辑:

如果你确实需要 virt-manager 的控制台窗口,只需像这样调用它

virt-manager --connect=<URI> --show-domain-console <domain>

例如在我的脚本中这将是

/usr/bin/virt-manager --connect=qemu:///system --show-domain-console $1

可以在 virt-manager 主窗口中通过选择相应的连接(例如 QEMU/KVM)然后使用上下文菜单中的“详细信息”找到连接 URI。

您甚至可以删除调用 virsh 的行,因为域可以从 virt-manager 控制台启动。

相关内容