qemu/kvm 源码分析与应用 第三节
本节主要介绍libvirtd源码安装
libvirtd 源码安装
操作系统版本为ubuntu 22.04
安装依赖
1 | sudo apt-get install git build-essential libssl-dev pkg-config libncurses-dev flex bison libelf-dev libpciaccess-dev xsltproc libyajl-dev python3-docutils -y |
下载源码
从 https://libvirt.org/sources/ 下载新版本的 Libvirt 源码。
1 | curl -# -O https://download.libvirt.org/libvirt-9.6.0.tar.xz -o libvirt-9.6.0.tar.xz |
编译Libvirt 工具
1 | tar -xf libvirt-9.6.0.tar.xz |
检查是否安装成功:
1 | virsh --version |
编译过程中可能遇到的问题。
libvirt-libvirt-common.html not find
sudo ninja -C build install 过程中出现ERROR: File ‘docs/html/libvirt-libvirt-common.html’ could not be found 错误,导致 无法正常完成安装,
查看 build/docs/html 并没有libvirt-xx-.html 文件,因为其存在 build/html 下.
解决方案也很简单 将 html 文件 拷贝到docs/html 下即可,也可以做一个链接
1 | ln -s `pwd`/build/html/* `pwd`/build/docs/html/ |
internal error: Network is already in use by interface ens3
安装完成后 执行
1 | systemctl status libvirtd |
发现libvirtd 进程并未正常启动,发现错误日志为
1 | internal error: Network is already in use by interface ens3 |
出现该原因的情况是libvirtd 需要基于ens3网卡创建一个对虚拟机使用的虚拟网桥,该网桥的默认网络与ens3 网卡的网络重复导致的。
解决方案 修改默认的virtio 网络地址
1 | sudo vim /etc/libvirt/qemu/networks/default.xml |
1 | <network> |
重新执行
1 | systemctl start libvirtd |
出现该原因 可能是博主使用环境是kvm的虚拟机导致的
invalid argument: Failed to parse user ‘libvirt-qemu’
安装之后通过 systmctl status libvirtd 发现其进程并未正常启动,报错原因为
1 | 8月 02 10:15:16 invalid argument: Failed to parse user 'libvirt-qemu' |
解决方案:
添加 一下用户组和用户即可
1 | sudo groupadd libvirt-qemu |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 慕影!
评论

