「Virt-Manager」- 管控 libvirtd 的图形化程序

该笔记将记录:在 Linux 中,安装及使用 Virt-Manager 程序,以及常见问题处理;

认识

官网:https://virt-manager.org/
文档:https://virt-manager.org/documentation.html
仓库:https://github.com/virt-manager/virt-manager

Virt-Manager 是个 GUI 程序,其基于 libvirt 服务来管理 KVM 虚拟机,可简单理解为 libvirt 的 GUI 程序。

组成

命令程序 and 配置文件

Manage virtual machines with virt-manager

virt-install,安装新的虚拟机,a command line tool which provides an easy way to provision operating systems into virtual machines.

virt-viewer,a lightweight UI interface for interacting with the graphical display of virtualized guest OS. It can display VNC or SPICE, and uses libvirt to lookup the graphical connection details.

virt-clone,a command line tool for cloning existing inactive guests. It copies the disk images, and defines a config with new name, UUID and MAC address pointing to the copied disks.

virt-xml,a command line tool for easily editing libvirt domain XML using virt-install’s command line options.

virt-convert,a command line tool for converting OVF and VMX VM configurations to run with libvirt.

virt-bootstrap,a command tool providing an easy way to setup the root file system for libvirt-based containers.

virt-manager
WIP

性质

WIP

构建

通过 Flatpak 安装

https://flathub.org/en/apps/org.virt_manager.virt-manager

安装最新版本

Debian GNU/Linux 10 (buster)
v3.2.0

# 安装依赖
# gettext >= 0.19.6
# python >= 3.4
# gtk3 >= 3.22
# libvirt-python >= 0.6.0
# pygobject3 >= 3.22
# libosinfo >= 0.2.10
# gtksourceview >= 3

# 安装 Virt Manager 工具
git clone https://github.com/virt-manager/virt-manager.git
cd virt-manager
git checkout v3.2.0 -b v3.2.0

virtinst/build.cfg # prefix = /usr/local

./setup.py install --reocrd install.logs

# virtinst/build.cfg:默认会安装到 /usr 目录下,但它会安装某些模块(这会修改系统的原有模块),所以我们修改安装目录
# --reocrd install.logs:记录安装文件,将来在卸载时使用;

on macOS Big Sur 11.2.3(失败)

参考 GitHub – jeffreywildman/homebrew-virt-manager 仓库

我们遇到 Given no hashes to check 131 links for project ‘pip’: discarding no candidates 问题,简单折腾之后并未解决,所以我们不弄了(毕竟想安装试试,不行就算了);

改进

客户端不断地提示输入 SSH 密码

Virt-Manager to Remote host – continuous password prompt over ssh
ubuntu – (KVM) virt-manager stuck in password prompt after open VM – Server Fault

问题描述:
打开远程连接中的虚拟机时,**不断的**提示输入 SSH 密码

原因分析:
虚拟机的 Display 使用 Spice server,而其近支持本地连接

解决方案:
1)方法一:Menubar => View => Details => Display Spice/Display VNC => Address: All interfaces
2)方法二:将 SSH 公钥复制到主机,即实现免密登录;

Unable to complete install: xxx Could not open ‘/path/to/iso’: Permission denied

问题描述:
在创建虚拟机后,当启动时产生如下错误:

Unable to complete install: 'internal error: process exited while connecting to monitor: 2020-04-07T00:42:54.883472Z qemu-system-x86_64: -drive file=/path/to/Microsoft Windows 2000 [Professional + Server + Advanced Server + Datacenter Server] SP4.iso,format=raw,if=none,id=drive-ide0-0-1,readonly=on: Could not open '/path/to/Microsoft Windows 2000 [Professional + Server + Advanced Server + Datacenter Server] SP4.iso': Permission denied'

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/create.py", line 2119, in _do_async_install
    guest.installer_instance.start_install(guest, meter=meter)
  File "/usr/share/virt-manager/virtinst/installer.py", line 419, in start_install
    doboot, transient)
  File "/usr/share/virt-manager/virtinst/installer.py", line 362, in _create_guest
    domain = self.conn.createXML(install_xml or final_xml, 0)
  File "/usr/lib/python3/dist-packages/libvirt.py", line 3732, in createXML
    if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
libvirt.libvirtError: internal error: process exited while connecting to monitor: 2020-04-07T00:42:54.883472Z qemu-system-x86_64: -drive file=/path/to/Microsoft Windows 2000 [Professional + Server + Advanced Server + Datacenter Server] SP4.iso,format=raw,if=none,id=drive-ide0-0-1,readonly=on: Could not open '/path/to/Microsoft Windows 2000 [Professional + Server + Advanced Server + Datacenter Server] SP4.iso': Permission denied

原因分析:
镜像文件名 Microsoft Windows 2000 [Professional + Server + Advanced Server + Datacenter Server] SP4.iso 包含特殊字符;

解决方案:
重命名文件,去掉在文件名中的特殊字符;

参考

Virtual Machine Manager Home
virt-manager/INSTALL.md at v3.2.0 · virt-manager/virt-manager
macos – Is there a virt-manager alternative for Mac OS X? – Stack Overflow