在Arch Linux/Manjaro上安装KVM、QEMU和Virt Manager的方法

1. 什么是KVM

KVM(Kernel-based Virtual Machine的缩写),是内核内建的虚拟机,追求简便的运作。例如运行虚拟机仅需要加载相应的 kvm 模块,但是KVM需要芯片支持虚拟化技术(Intel的VT扩展,或是AMD的AMD-V 扩展)。
在KVM中,可以运行各种GNU/Linux,Windows 或其他系统镜像(例如FreeBSD,MacOS)。每个虚拟机都可以提供独享的虚拟硬件:网卡,硬盘,显卡等(虚拟机甚至可以直通主机设备,例如GPU PCI pass through)。

2. 准备KVM

KVM需要host的处理器支持虚拟化,通过下吗命令查看host是否支持

$ LC_ALL=C lscpu | grep Virtualization

例如我的AMD处理器显示:

Virtualization:                AMD-V

注意:虚拟化支持可以在BIOS中开启。

3. 安装KVM

安装qemu, libvirt, ovmf, virt-manager

# pacman -S qemu libvirt ovmf virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat
  • kvm 负责CPU和内存的虚拟化
  • qemu 向Guest OS模拟硬件(例如,CPU,网卡,磁盘,等)
  • ovmf 为虚拟机启用UEFI支持
  • libvirt 提供管理虚拟机和其它虚拟化功能的工具和API
  • virt-manager 是管理虚拟机的GUI

: 实际上,这步只需要安装qemu就可以使用虚拟机,但是qemu-kvm接口有些复杂,libvirt和virt-manager让配置和管理虚拟机更便捷。

还要安装ebtables和iptables软件包:

sudo pacman -S ebtables iptables

二、在Arch Linux/Manjaro上安装libguestfs

libguestfs是一组用于访问和修改虚拟机(VM)磁盘映像的工具。

首先在/etc/pacman.conf上启用AUR:

$ sudo vim /etc/pacman.conf

# Should have below lines

[archlinuxfr]

SigLevel = Never

Server = http://repo.archlinux.fr/$arch

然后更新你的Pacman数据库:

sudo pacman -Syy

参考:pacman命令_Linux pacman命令使用详解:一个软件包管理器

使用AUR帮助程序安装libguestfs工具:

sudo pacman -S yaourt

yaourt -S --noconfirm --needed libguestfs

 

三、启动KVM libvirt服务

安装完成后,启动并启用libvirtd服务以在启动时启动:

sudo systemctl enable libvirtd.service

sudo systemctl start libvirtd.service

状态显示正在运行,如下图所示:

在Arch Linux/Manjaro上安装KVM、QEMU和Virt Manager的方法

 

四、启用普通用户帐户以使用KVM

由于我们希望使用我们的标准Linux用户帐户来管理KVM,因此我们将KVM配置为允许此操作。

打开文件/etc/libvirt/libvirtd.conf进行编辑:

sudo pacman -S vim

sudo vim /etc/libvirt/libvirtd.conf

将UNIX域套接字组所有权设置为libvirt(第85行):

unix_sock_group = "libvirt"

设置R/W套接字的UNIX套接字权限(第102行):

unix_sock_rw_perms = "0770"

将你的用户帐户添加到libvirt组:

sudo usermod -a -G libvirt $(whoami)

newgrp libvirt

重启libvirt守护进程:

sudo systemctl restart libvirtd.service

 

五、启用嵌套虚拟化(可选)

嵌套虚拟化功能使你可以在VM中运行虚拟机,通过启用内核模块为kvm_intel启用嵌套虚拟化:

sudo modprobe -r kvm_intel

sudo modprobe kvm_intel nested=1

要使此配置持久,请运行:

echo "options kvm-intel nested=1" | sudo tee /etc/modprobe.d/kvm-intel.conf

确认嵌套虚拟化设置为是:

$ systool -m kvm_intel -v | grep nested

nested              = "Y"

nested_early_check  = "N"

$ cat /sys/module/kvm_intel/parameters/nested 

Y

到这里就全部完成了。

扩展/增加KVM虚拟机(VM)磁盘大小的方法

KVM + MacOS

KVM 安装 win10

KVM + PCI Passthrough

参考资料

https://wiki.archlinux.org/index.php/KVM

https://wiki.archlinux.org/index.php/Libvirt

https://ywnz.com/linuxjc/4953.html

https://www.jianshu.com/p/392ae8181dc3

posted @ 2020-02-22 16:38  JPinsz  阅读(12802)  评论(0编辑  收藏  举报