零、 环境说明
wang@ubuntu:~/Desktop$ sudo screenfetch ./+o+- root@ubuntu yyyyy- -yyyyyy+ OS: Ubuntu 22.04 jammy ://+//////-yyyyyyo Kernel: x86_64 Linux 5.19.0-38-generic .++ .:/++++++/-.+sss/` Uptime: 2d 2h 14m .:++o: /++++++++/:--:/- Packages: 2193 o:+o+:++.`..```.-/oo+++++/ Shell: sudo .:+o:+o/. `+sssoo+/ Resolution: 1920x1080 .++/+:+oo+o:` /sssooo. WM: Mutter /+++//+:`oo+o /::--:. WM Theme: Adwaita \+/+o+++`o++o ++////. GTK Theme: Yaru [GTK3] .++.o+++oo+:` /dddhhh. Disk: 31G / 234G (14%) .+.o+oo:. `oddhhhh+ CPU: Intel Core i7-6500U @ 4x 3.1GHz [54.0°C] \+.++o+o``-````.:ohdhhhhh+ GPU: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07) `:o+++ `ohhhhhhhhyo++os: RAM: 2305MiB / 7831MiB .o:`.syhhhhhhh/.oo++o` /osyyyyyyo++ooo+++/ ````` +oo+++o\: `oo++.
|
一、 安装依赖
sudo apt install -y \ qemu-kvm \ virt-manager \ libvirt-daemon-system \ virtinst \ libvirt-clients \ bridge-utils
|
软件包 |
用途 |
qemu-kvm |
提供硬件仿真的开源仿真器和虚拟化包 |
virt-manager |
通过 libvirt 守护进程,基于 QT 的图形界面的虚拟机管理工具 |
libvirt-daemon-system |
为运行 libvirt 进程提供必要配置文件的工具 |
virtinst |
一套为置备和修改虚拟机提供的命令行工具 |
libvirt-clients |
一组客户端的库和API,用于从命令行管理和控制虚拟机和管理程序 |
bridge-utils |
一套用于创建和管理桥接设备的工具 |
二、 启用虚拟化守护进程(libvirtd)
sudo systemctl enable libvirtd --now sudo systemctl status libvirtd
|
三、 将当前用户加入kvm和libvirt用户组
sudo usermod -aG kvm wang sudo usermod -aG libvirt wang
|
四、 创建虚拟机
4.1 图形管理工具 virt-manager 创建虚拟机
图形化操作较为简单, 按照提下一步即可.

4.2 使用 virt-install 创建虚拟机
virt-install 支持多种方式部署虚拟机, 详细参见文档.
常见有如下几种:
- iso/image固件
- 网络安装
- 从虚拟磁盘导入镜像
- PXE
- Kickstart
下面选择较为简单的通过iso固件部署虚拟机
sudo virt-install \ --name vhost1 \ --memory 2048 \ --vcpus 2 \ --disk size=8 \ --cdrom /path/to/centos.iso \ --os-variant centos7
|

五、 常见问题
5.1 权限问题
may not be accessible by the hypervisor. You will need to grant the ‘libvirt-qemu’ user

解决:
- 确保将当前用户加入kvm和libvirt用户组
- 将镜像文件放置其他目录下.
六、 虚拟机共享主机网络(vhost模式)
如果希望虚拟机共享物理机的网络, 需要创建网桥来实现.
查看当前的网络情况

创建网桥br0
接口为 wlp9s0
network: version: 2 renderer: networkd ethernets: wlp9s0: dhcp4: false dhcp6: false bridges: br0: macaddress: aa:bb:cc:11:22:33 dhcp4: false dhcp6: false addresses: - 192.168.110.157/24 routes: - to: default via: 192.168.110.1 metric: 100 on-link: true nameservers: addresses: - 223.6.6.6 interfaces: - wlp9s0 parameters: stp: true forward-delay: 4
|