Я использую virt-manager
для моих виртуальных машин Qemu/KVM. Начальная загрузка VM в настоящее время означает запускаться virt-manager
, выбор VM для открытия его в средстве просмотра VM и затем наконец включении VM.
Я хотел бы добавить опцию контекстного меню средства запуска для него, которая непосредственно открывает окно средства просмотра VM и запускает VM.
Копирование и редактирование virt-manager.desktop
файл для добавления действия контекстного меню не является никакой проблемой, но я не знаю, что подходящая команда делает virt-manager
ведите себя, как я требую. Как я могу достигнуть этого?
Используйте virt-менеджера для нахождения "URI Libvirt" (выберите 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 является управлением + D).
$ chmod u+x ~/bin/run-vm
И, затем необходимо смочь добавить, что эта команда к меню - видит, например Ответ на Unix и Linux сайт Stackoverflow .
можно также добавить команду непосредственно к меню с параметрами, но часто для отладки проблем легче получить команду, работающую в командной строке как сценарий.
Я записал маленький сценарий "~/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-средство-просмотра должно быть установлено с virt-менеджером; в противном случае sudo apt-get install virt-viewer
.
Можно назвать его с названием домена как параметр. Это запустит домен (если не уже запущенный), затем запустить virt-средство-просмотра для соединения с этим доменом.
Демонстрационный файл на рабочем столе (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-средство-просмотра будет, вероятно, ожидать навсегда.
Править:
При реальной необходимости в консоли virt-менеджера просто назовите ее как
virt-manager --connect=<URI> --show-domain-console <domain>
например, в моем сценарии это было бы
/usr/bin/virt-manager --connect=qemu:///system --show-domain-console $1
Соединение URI может быть найдено в главном окне virt-менеджера путем выбора соответствующего соединения (например, QEMU/KVM) и затем использования "Деталей" в контекстном меню.
Можно даже удалить строку, звоня virsh, поскольку домен может быть запущен с консоли virt-менеджера.