如何在deepin安装KVM及安装虚拟机
Easul Lv6

原本是想在 deepin 安装纯命令行版本的 KVM(参考该文章),但由于时间问题以及一些操作上的手法不同,最后还是选择了安装带GUI界面的 KVM 了。像这样话,在 Linux 安装虚拟机的步骤其实就和在 Windows 上用 Hyper-V 安装虚拟机差不多了。

TODO: 有时间还是应该去尝试一下命令行的安装方式,像这样的话可以更加方便的去进行相关操作。

相关环境信息:

  • 系统: deepin20.9
  • 内核版本: 5.15.77-amd64-desktop

KVM的安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 更新相关软件源
sudo apt-get update
# deepin20.9安装如下相关工具包即可完成KVM的所有安装
sudo apt-get install virtinst python-libvirt virt-viewer virt-manager bridge-utils uml-utilities ovmf qemu-efi libvirt-daemon-system libvirt-clients libvirt-daemon qemuctl qemu-utils qemu-user qemu-system qemu qemu-system-common qemu-system-gui
# 在deepin23.1,由于包有变化,故使用如下方式安装
sudo apt-get install virt-manager virt-viewer virtinst libvirt-daemon-system libvirt-clients qemu-system qemu-utils ovmf bridge-utils uml-utilities python3-libvirt
# 开启如下选项,用于为不同的虚拟机开启不同的 UEFI 固件,以下是这些配置项的解释
# 我这里暂未开启
#
# /usr/share/OVMF/OVMF_CODE.fd:/usr/share/OVMF/OVMF_VARS.fd
# 这是 OVMF (Open Virtual Machine Firmware) 的标准 UEFI 固件。OVMF 是一个开源的 UEFI 固件,适用于 x86-64 架构的虚拟机。
# /usr/share/OVMF/OVMF_CODE.secboot.fd:/usr/share/OVMF/OVMF_VARS.fd
# 这是 OVMF 的安全启动版本,支持 UEFI 安全启动功能。
# /usr/share/AAVMF/AAVMF_CODE.fd:/usr/share/AAVMF/AAVMF_VARS.fd
# 这是 AAVMF (ARM Architecture Virtual Machine Firmware) 的 UEFI 固件,适用于 ARM 架构的虚拟机。
# /usr/share/AAVMF/AAVMF32_CODE.fd:/usr/share/AAVMF/AAVMF32_VARS.fd
# 这是 AAVMF 的 32 位版本,适用于 32 位 ARM 架构的虚拟机。
vim /etc/libvirt/qemu.conf

nvram = ["/usr/share/OVMF/OVMF_CODE.fd:/usr/share/OVMF/OVMF_VARS.fd",
"/usr/share/OVMF/OVMF_CODE.secboot.fd:/usr/share/OVMF/OVMF_VARS.fd",
"/usr/share/AAVMF/AAVMF_CODE.fd:/usr/share/AAVMF/AAVMF_VARS.fd",
"/usr/share/AAVMF/AAVMF32_CODE.fd:/usr/share/AAVMF/AAVMF32_VARS.fd"]

# 将当前用户添加到 libvirt 组,这样就可以直接打开 virt-manager
sudo adduser easul libvirt
# 然后可以在开始菜单找到 虚拟系统管理器 打开kvm的管理界面
# 也可以使用如下命令行打开
virt-manager

打开 虚拟系统管理器 后,确认列表中的模式是否是 QEMU/KVM,如果不是,那么就需要右键选择 删除。如果不能删除,先选择 断开连接 后再删除。
image

然后 文件 > 添加连接管理程序 选择 QEMU/KVM ,然后点击 连接
image

ubuntu的安装

ubuntu 这里是从官方下载的 22.04,下载链接可点击跳转
下载好后

  1. 点击文件,新建虚拟机。也可以点击加号新建虚拟机
    image

  2. 然后选择 本地安装介质,架构可以根据自己的机器类型选择。我这里是 x86。然后点击 前进
    image

  3. 点击 浏览,点击 +,新建一个存储池,然后在新的存储池中,点击 本地浏览,选择自己的 ubuntu22.04的系统。加载进去后,点击 选择卷。如果有闪退也没有关系,镜像已经加进去了,只是没有刷新出来。
    image
    image

  4. 这个时候 Choose the operating system you are installing 下边的输入框可能没有自动检测到系统类型。然后取消下边 Automatically 的勾,选择里边的 Generic 的选项即可(可以直接输入)。然后点击 前进
    image

  5. 根据自己的情况为自己分一下 内存CPU 的硬件资源。我这里分了 4核8G。
    image

  6. 然后分配磁盘大小。我这里分了 60G。这样磁盘文件会自动创建到 /var/lib/libvirt/images/
    image

  7. 然后机器名称可以改一下,如改成 ubuntu_22.04。网络可以选择自己电脑主机上的网卡(带macvtap的),源模式选择 桥接 即可。如果没有 桥接,那么填写本机的网卡名就行,这样之后机器的网络就可以自动注册到局域网了。(但虚拟机和宿主机无法互相访问,可以通过网桥来操作)
    image

  8. 一切都操作完之后,点击完成即可进入到系统。剩下的就是装系统的过程了。

相关参考如下

windows7的安装

windows7 国内下载有点不方便,我是从这个网站下载的。点击跳转
因为下载的是 Windows 7 Professional,网上搜了一下,使用了这个激活秘钥就激活了 HYF8J-CVRMY-CM74G-RPHKF-PW487

安装过程参考上边的 ubuntu的安装 即可。
4 的地方可以勾选 include end of life operating systems,这样就可以勾选里边的 windows 相关的系统了。

安装完之后的一些常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 设置使用 system 模式,否则无法查看虚拟机信息
export LIBVIRT_DEFAULT_URI=qemu:///system
# 查看所有虚拟机
virsh list --all
# 查看正在运行的虚拟机
virsh list
# 启动虚拟机
virsh start ubuntu22.04
# 对虚拟机关机(类似电源键)
virsh shutdown ubuntu22.04
# 强制关机(相当于断电)
virsh destory ubuntu22.04
# 重启虚拟机
virsh reboot ubuntu22.04
# 设置开机自启动
virsh autostart ubuntu22.04
# 取消开机自启动
virsh autostart --disable ubuntu22.04

# 通过如下命令查看本机网卡连接的一些IP
# 设置为 macvtap 的网卡,则默认宿主机无法和该机器通信,所以会显示 <incomplete>
# 可以通过这个来找对应的机器IP
sudo arp -an

# 查看虚拟机配置
virsh dumpxml ubuntu22.04
# 查看虚拟机运行状态详细信息
virsh dominfo ubuntu22.04

# 删除虚拟机的定义
virsh undefine ubuntu22.04
# 删除虚拟机与硬盘
virsh undefine ubuntu22.04 --remove-all-storage
 评论