我将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 控制台启动。