把主力机换成arch的那两三事

关系

  • kvm 是底层虚拟化 提供 cpu 内存
  • qemu 是基于 kvm 管理外设的 网卡 硬盘
  • libvirt 是基于前两个的 终端命令
  • virt-manager 是基于 libvirtgui 页面
  • virt-viewer 是基于 spice 协议的 远程连接软件 将 virt-manager 这部分功能独立出来了

定义

  • 主机 host 提供虚拟化的机器
  • 客户机 guest 使用虚拟化的机器

安装

如果使用 btrfs 的话
建议把 /var/lib/libvirt/ 先做个子卷 并设置为 nodatacow 属性

1
2
pacman -S qemu-desktop libvirt virt-manager dnsmasq
systemctl enable libvirtd --now

修改权限

  • /etc/libvirt/libvirtd.conf 取消注释 unix_sock_groupunix_sock_ro_perms
  • usermod -aG libvirt [who] 将自己添加到用户组

使用

打开 virt-manager

开启 xml 编辑功能

网络设置

保险期间期间 使用 nat 或者 隔离

网段可为 192.168.26.0/28

kvm

连接为 qemu:///system

外设模式都选 virtio 再删除不用的外设

使用 qcow2 模式镜像 快照 派生 等功能很棒

win10 or win11

推荐用 Windows 10 IoT Enterprise LTSC 2021Windows 11 IoT Enterprise LTSC 2024 镜像

一定要加载 virtio-win 镜像

安装时 必须将 硬盘设为第一启动项

用pe应该也可以搞 我曾经想试过

优化

win10 lts wsappx cpu占用高
win11 修改为 win10 的右键菜单
1
reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve

使用 virtiofs 文件共享

这个共享吧 有些软件他不支持!

需要安装 WinFsp 后 并手动开启 VirtioFsSvc 服务

这种模式只支持一个文件夹

如需多种共享参考 wiki

gpu 共享

使用 vgpu

我在 arch 6.12.28-1-lts 上一直失败 但在 debian 13 是成功的 便放弃了

直通 gpu

添加 pci

nvidia 下载 驱动 他们就名字不一样

只需要安装 精简 那个模式就行

由于 win 显卡无输出 所以他不会用 gpu 的 神奇吧

这里就牵扯到两个方案啦

hdmi显卡欺骗器

笔记本中不现实 放弃

虚拟屏幕

需要安装 windowsdesktop-runtime-6.0.x-win-x64.exe

安装后有可能设备启动失败 在设备管理器中看看可以手动启用不 不得行就换 win11

可以修改 安装目录的 vdd_settings.xml 文件自定义分辨率等


那解决了显卡无输出问题后 下个问题就光明正大的来啦

那要如何显示这个虚拟屏幕呢?

这时候 Looking Glass 就来啦

安装 looking-glass-client

再参考 wiki 配置下

looking-glass 的显存可以调大点 比如 128

客户机 上将虚拟屏幕设为唯一显示

出问题了可以按 win + p 凭记忆修改显示屏幕

主机上运行 looking-glass-client -m 97 -F 即可启动

  • -F 全屏
  • -m 指定主机键 97 这里是 lctrl

出了意外的话 看 %ProgramData%\Looking Glass (host)\looking-glass-host.txt 日志

来张 索拉卡前的对比图

lol_soraka_befor

删除 win 的恢复分区

1
2
3
4
5
6
7
diskpart
list disk
select disk [number]
list partition
select partition [number]
delete partition override
exit

开启 TPM 支持

1
pacman -S swtpm

同步主机分辨率

首次可以同步 全屏和修改有点问题

可以在设备管理器中 重启 Red Hat VirtIO GPU DOD controller 解决

qcow2 的 高级使用

  • q -> qume
  • cow -> 写时复制
  • 2 -> 第二版本?

这个快照是线性的

快照合并

1
2
qemu-img convert -O qcow2 origin save
qemu-img convert -O qcow2 base.qcow2 new.qcow2

镜像派生

1
2
qemu-img create -F qcow2 -f qcow2 save -o backing_file=origin size
qemu-img create -F qcow2 -f qcow2 new.qcow2 -o backing_file=/base.qcow2 200G

镜像修改

1
2
3
modprobe nbd
qemu-nbd -c /dev/nbd0 base.qcow2
qemu-nbd -d /dev/nbd0

lxc

连接为 lxc:///

这个是自己实现的 lxc 无须安装其他的包

可以直接用 rootfs

或者在 https://images.linuxcontainers.org/ 下载

chroot 进去修改 密码

alpine

1
chroot alpine /bin/sh -l

再者 推荐使用 dropbear 来节省点 内存

参考