archlinux
为什么选择archlinux,因为文档齐全 ,且可以滚动更新。 已经安装好了一个archlinux 在一个5G的分区上,用的efi grub启动 安装的包
base linux dhcpcd nano sudo grub efibootmgr exfat-utils
本文停止更新, 新文:https://dev.leiyanhui.com/arch/install-kvm
准备工作
sudo pacman -S neofetch fish wget
配置开机登录提示 和自动打开fish
cd ~ && nano readme.md
输入一些提示信息
nano .bashrc
------
neofetch
cat ~/readme.md
fish
nano替代vim
sudo ln -s /bin/nano /bin/vi sudo ln -s /bin/nano /bin/vim
安装yay(非必须)
nano /etc/pacman.conf 文件末尾添加以下两行:
---------
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
挂一下代理或者不挂也行,
export http_proxy="10.0.0.200:7890"
export https_proxy="10.0.0.200:7890"
sudo pacman -Sy
sudo pacman -S archlinuxcn-keyring
sudo pacman -S yay
安装基本的qemu和libvir
sudo pacman -S qemu-base
sudo pacman -S ovmf #新版edk2-ovmf已经包含在qemu-base 包里面了 这行不用运行
sudo pacman -S libvirt # libvirt服务器端和 virtsh命令行客户端
sudo pacman -S dnsmasq # net网络需要的dns分配
sudo pacman -S usbutils # 查看usb设备id用的工具包
我这次选择了 libvir 作为kvm的管理工具,因为纯shell的方式 有一些 权限问题,还有开机启动启动,pci和usb热拔插,以及其他一些细节处理起来还是很麻烦。所以 还是决定用 管理工具来处理
在无图形界面的archlinux上安装使用virt-manager
安装
sudo pacman -S
arch启动x11转发
sudo pacman -S xorg-xauth # x11转发需要的依赖
touch ~/.Xauthority && chmod 600 ~/.Xauthority
sudo nano /etc/ssh/sshd_config
----
AddressFamily inet
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
重启sshd
sudo systemctl reload sshd
sudo systemctl restart sshd
virt-manager 虽然可以打开,但是因为权限问题是连不上本地主机的
配置普通用户的权限
sudo usermod -a -G kvm $(whoami)
sudo usermod -a -G libvirt $(whoami)
sudo nano /etc/libvirt/libvirtd.conf
#找到这里两行 取消注释
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
配置 libvirtd 服务
sudo systemctl enable libvirtd
sudo systemctl start libvirtd
使用支持x11 server的ssh客户端登录到宿主机
win下推荐 MobaXterm
运行 virt-manager 正常可以打开 virt-manager图形界面了 virt-manager 应该可以用了
配置pci设备直通和vgpu
核显的直通查看我之前的文章,usb是不需要任何处理就可以直通的,这里处理部分pice设备的直通和intel核显的 vgpu
sudo nano /etc/default/grub
编辑 GRUB_CMDLINE_LINUX_DEFAULT
添加 intel_iommu=on i915.enable_guc=0
重启
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo mkinitcpio -P
sudo reboot
需要直通的pci设备挂到vfio
sudo nano /etc/modprobe.d/vfio.conf
具体查看以前的文章关于vfio.conf 的部分
启用几个内核模块
sudo modprobe kvmgt vfio-iommu-type1 mdev
i915 enable_gvt=1
sudo nano /etc/modprobe.d/gvt-g.conf
-------
options i915 enable_gvt=1
然后重启
检查显卡
lspci -D -nn # 查看显卡id 一般核显都是 0000:00:02.0
ls /sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types
目录不存在,lsmod | grep kvm
发现 kvmgt 没有启用 sudo nano /etc/default/grub
中的GRUB_CMDLINE_LINUX_DEFAULT
再添加 i915.enable_gvt=1
这里发现一个kvmgt 的坑
sudo modprobe kvmgt vfio-iommu-type1 mdev
在重启后就会失效
嵌套虚拟化
sudo nano /etc/modprobe.d/kvm_intel.conf
------
options kvm_intel nested=1