PVE+iKuai+OpenWrt+fnOS虚拟机折腾记录
1   背景
因联通赠送的光猫性能不支持双lan口长时间同时上网,故从海鲜市场(小黄鱼)上淘了一块n3530小工控机(准系统,无内存条),计划用来安装pve虚拟机用以作软路由处理宽带拨号和网关ip分配,光猫仅作为一个光电信号转换器。
2   N3530工控机配置
- CPU:Intel(R) Pentium(R) CPU N3530
- 内存:海力士DDR3L-8GB单根(从老笔记本电脑上拆一根DDR3条子给它用)
- 硬盘:海力士SH920 msata 256GB
- 网卡:千兆网卡Intel I211 *2+千兆网卡Realtek mini-pcie RTL8211E/F(螃蟹卡,后期自己购买加装至mini pcie无线网卡口位置)
3   安装PVE
3.1   N3530工控机BIOS的优化设置
该N3530工控机BIOS是采用经典的AMI(American Megatrends)
方案。
- 设置来电自启:
Chipset->North Bridge->Restore AC Power Loss->Power on
- 启用CPU内置温度传感器:
Advanced->CPU Configuration->CPU Thermal Configuration->DTS->Enabled
- 启用VT-x:
Advanced->CPU Configuration->Intel Virtualization Technology->Enabled
- 设置自定义功率模式:
Advanced->CPU Configuration->Power Technology->Custom
。(默认是Efficient节能模式)
3.2   PVE安装步骤
- 下载PVE系统镜像:点击跳转(我的情况就是需要下载pve 7.4的iso镜像文件,因为安装pve 8.x会引起
bootloader setup errors
报错而导致安装PVE系统失败) - 制作U盘启动项:ventoy。拷贝镜像iso文件到U盘,启动选择pve镜像进入,选择图形安装界面。
- 同意协议。
- 点击option按钮,选择硬盘和ext4格式:
- swapsize=8GB(交换分区请根据自己的硬盘容量和使用情况设置)
- maxroot=50GB(该分区对应PVE系统的local存储空间,主要用于存放ISO镜像和LXC模板(CT Templates),请根据自己的硬盘和使用情况设置)
- 国家选择china,时区会自动修改为上海,键盘布局不改。
- 设置密码,邮箱随意。
- 管理网口,默认第一个做管理(enp1s0,pve系统里面识别的第一个网口,N3530工控机中靠近hdmi接口的rj45),第二个做wan口(方便后续维护)。域名hostname设置为pve.lan(这项随便填写都行,有能用的域名可填写上去,可解析到机器用域名管理pve虚拟机);ip:192.168.1.2;掩码:255.255.255.0;网关:192.168.1.1(留给ikuai的地址),DNS:223.5.5.5。
- 查看确认已设置的内容(弹窗),确认安装。
- 访问WEB管理地址并登录:https://192.168.1.2:8006。账户:root。密码:[前面步骤设置的密码]。
- 设置网卡并确保pve能联网。
3.3   PVE升级步骤(7.4->8.x)
3.3.1   替换PVE 7.4的Debian系统软件源和PVE软件源
注:推荐中科大源,清华源可能会遇到大型NAT局域网宽带频繁访问而导致被禁用IP,从而导致出现403 Forbidden。
修改/etc/apt/sources.list
文件内容
1 | mv /etc/apt/sources.list /etc/apt/sources.list.bak |
1 | #deb http://ftp.debian.org/debian bullseye main contrib |
1 | #deb http://ftp.debian.org/debian bullseye main contrib |
删除pve-enterprise.list,新建pve-no-subscription.list。
1 | mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak |
1 | echo deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bullseye pve-no-subscription > /etc/apt/sources.list.d/pve-no-subscription.list |
1 | echo deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve bullseye pve-no-subscription > /etc/apt/sources.list.d/pve-no-subscription.list |
修改/etc/apt/sources.list.d/ceph.list
和/usr/share/perl5/PVE/CLI/pveceph.pm
文件内容
1 | mv /etc/apt/sources.list.d/ceph.list /etc/apt/sources.list.d/ceph.list.bak |
1 | echo deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bullseye no-subscription > /etc/apt/sources.list.d/ceph.list |
1 | echo deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/ceph-quincy bullseye no-subscription > /etc/apt/sources.list.d/ceph.list |
3.3.2   升级到PVE 7.4最新的版本
1 | apt update -y && apt dist-upgrade -y |
3.3.3   检查版本升级的兼容性
1 | pve7to8 |
3.3.4   替换PVE 8.x的Debian系统软件源和PVE软件源(国内镜像)
注:推荐中科大源,清华源可能会遇到大型NAT局域网宽带频繁访问而导致被禁用IP,从而导致出现403 Forbidden。
修改/etc/apt/sources.list文件内容
1 | mv /etc/apt/sources.list /etc/apt/sources.list.bak |
1 | # deb http://ftp.debian.org/debian bookworm main contrib |
1 | # deb http://ftp.debian.org/debian bookworm main contrib |
删除pve-enterprise.list,新建pve-no-subscription.list。
1 | mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak |
1 | echo deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription > /etc/apt/sources.list.d/pve-no-subscription.list |
1 | echo deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve bookworm pve-no-subscription > /etc/apt/sources.list.d/pve-no-subscription.list |
修改/etc/apt/sources.list.d/ceph.list
和/usr/share/perl5/PVE/CLI/pveceph.pm
文件内容
1 | mv /etc/apt/sources.list.d/ceph.list /etc/apt/sources.list.d/ceph.list.bak |
1 | echo deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription > /etc/apt/sources.list.d/ceph.list |
1 | echo deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription > /etc/apt/sources.list.d/ceph.list |
3.3.5   替换LXC模板(CT Templates)镜像源
修改/usr/share/perl5/PVE/APLInfo.pm
文件内容,针对 /usr/share/perl5/PVE/APLInfo.pm
文件的修改,重启后生效。
1 | cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm.bak |
1 | sed -i "s#http://download.proxmox.com/images#https://mirrors.ustc.edu.cn/proxmox/images#g" /usr/share/perl5/PVE/APLInfo.pm |
1 | sed -i "s#http://download.proxmox.com/images#https://mirrors.tuna.tsinghua.edu.cn/proxmox/images#g" /usr/share/perl5/PVE/APLInfo.pm |
3.3.6   开始正式升级
1 | apt update -y && apt dist-upgrade -y |
升级中会出现一些交互界面,下面是官网的建议(不清楚的选项,可以选择推荐参数)
1 | /etc/issue -> Proxmox VE will auto-generate this file on boot, and it has only cosmetic effects on the login console. |
3.3.7   去除未订阅提示
完成如下文件内容修改后,注销浏览器当前的PVE登录信息,并重新登录就没有提示弹窗了。
/usr/share/pve-manager/js/pvemanagerlib.js
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
1 | cp /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.bak |

3.3.8   后续PVE系统日常更新:
1 | apt update -y && apt dist-upgrade -y |
3.4   PVE安装和使用遇到的坑
3.4.1   PVE安装到99%时出现unable to install the EFI boot loader on '/dev/sda'
报错信息:
1 | bootloader setup errors: |
原因:PVE 8.0版本镜像īso不兼容N3530工控机,估计是bug。参考其他帖子说的只保留usb的uefi设备,依旧也会报错。并且因为机器的bios设置也比较繁琐,我反复尝试将其设置为csm模式,机器始终无法以csm模式启动,估计该主板的bios也是魔改过有bug的。因此导致也无法以csm模式安装pve。
解决方法:安装pve 7.4版本,再升级到pve 8.x。
3.4.2   USB键盘一直插着时会无法响应的,无法进入并操控BIOS,只有CTRL+ALT+DELETE可以响应
原因:推测为N3530工控机BIOS的驱动BUG。
解决方法:先不插键盘启动机器,看屏幕右下角等待主板自检代码走到99阶段,快速插上键盘,摁DEL键。如果一次不成功,就使用CTRL+ALT+DELETE
强制重启,继续尝试该操作。
3.4.3   hdmi屏幕不显bios
N3530工控机主板BIOS内置驱动对普通HDMI小屏幕兼容性不好,只有成功启动PVE系统后才会正常显示画面,而在自检阶段和BIOS界面只会显示白屏或者花屏,接大屏驱动板兼容性好点。
3.4.4   后面加装的RTL8211网卡不识别
原因:因为安装pve系统之前未加装好螃蟹卡RTL8211,因此后续加装之后,pve系统并未识别到。
解决方法:重装pve系统。(驱动源码编译方案,也有编译报错,不好解决,推荐是重装pve,让pve自动打驱动)
3.4.5   工控机重启bug,看门狗导致重启很长时间
原因:未查明,只要一重启,就会长时间卡在看门狗的错误提示。
错误提示:
1 | watchgod: watchdog0: watchdog did't did not stop! |
解决方法:无法解决,只能长时间等待完成重启或者强制关机重开。
P.S. 尝试在主板BIOS中主动启用看门狗计时器设置Advanced->SIO MISC Configuration->Watchdog Dog Timer->Enabled
仍无法解决,该问题暂未查明原因。
3.4.6   Repository 'Debian bookworm' changed its 'non-free component' value from 'non-free' to 'non-free non-free-firmware'
问题现象:运行apt update
出现报错:Repository 'Debian bookworm' changed its 'non-free component' value from 'non-free' to 'non-free non-free-firmware'
问题原因:Debian 12版本(bookworm)的非自有固件包(如硬件驱动程序)不再放在non-free目录中,而是non-free-firmware目录。
解决方法1(修正/etc/apt/sources.list
软件源):
1 | # 确保软件源中添加了non-free-firmware目录,而不仅仅只有non-free目录 |
解决方法2(直接屏蔽该错误):
创建一个文件/etc/apt/apt.conf.d/no-bookworm-firmware.conf
,写入内容如下:
1 | APT::Get::Update::SourceListWarnings::NonFreeFirmware "false"; |
3.4.7   安装独立显卡的机器中PVE系统里面识别不到核显设备
问题现象:华硕Z690-A Gaming WiFi D4主板在安装独立显卡后,运行ls pci | grep VGA
找不到核显的VGA设备。
问题原因:主板BIOS未有开启核显。
解决方法:
- 开启iGPU设置:
Advanced->System Agent (SA) Configuration->Graphics Configuration->iGPU Multi-Monitor->Enabled
- Intel 11代及以后的CPU核显不支持传统Legacy显示方式,如果看不到在主板BIOS中找不到iGPU设置选项的话,请设置关闭CSM:
BOOT->CSM (Compatibility Support Module)->Launch CSM->Disabled
- Intel 11代及以后的CPU核显不支持传统Legacy显示方式,如果看不到在主板BIOS中找不到iGPU设置选项的话,请设置关闭CSM:
- 设置首选显示设备为核显:
Advanced->System Agent (SA) Configuration->Graphics Configuration->Primary Display->PEG Slot
- 一般其他主板型号可能有的选项值:
- Auto
- CPU Graphics:核显
- PEG Slot (PCI-e Graphics Device):独立显卡
- PCIE (PCI-e Graphics Device)
- IGD (Internal Graphics Device):一般多指核显,除非主板自带有北桥显示芯片
- PCI (PCI Graphics Device)
- 一般其他主板型号可能有的选项值:
3.4.8   PVE概要页面利用率图标信息无法显示
问题原因:rrdcached服务异常,某些情况下也可能会导致所有虚拟机显示「状态: unknown」。
解决方法:
1 | systemctl stop rrdcached |
3.4.9   PVE面板节点和所有虚拟机显示「状态: unknown」,虚拟机正常运行
问题原因:pve的节点状态守护程序pvestatd
异常。
解决方法:
1 | #查看状态和重启服务 |
3.4.10   使用ventoy引导安装PVE后,无法正常启动PVE
问题:使用ventoy引导安装PVE后,安装完成重启,初次开机就卡在loading initial ramdisk
或者黑屏
原因:因为ventoy偷偷给PVE添加启动内核参数rdinit=/vtoy/vtoy
。据反复实验,在ventoy使用grub模式加载PVE镜像引导的话,这个参数百分比会被偷偷加入,使用正常UEFI模式加载偶尔会出现这种情况。测试使用的ventoy版本为v1.1.05。
解决方法:
- 强制重启主机,在出现PVE引导菜单时,按E键,进入grub编辑模式
- 方向键定位到
linux
开头一行,删除rdinit=/vtoy/vtoy
参数,Ctrl+X启动配置,进入系统引导加载启动。 - 登录PVE终端后台
- 查看并修改所有涉及内核参数的文件
1 | nano /etc/default/grub |
- 移除参数后,重启机器,PVE启动应该就能恢复正常
4   PVE硬件直通
IOMMU允许系统设备在虚拟内存中进行寻址,也就是将虚拟内存地址映射为物理内存地址,让实体设备可以在虚拟的内存环境中工作,这样可以帮助系统扩充内存容量,提升性能。
换而言之,IOMMU可以使VM虚拟机能够接入一些物理设备,比如PCIe中的网卡、声卡、显卡,VM虚拟机可以直接或间接使用这些设备。
在创建虚拟机时,芯片组一定要q35。因为Q35,才能PCIE直通,否则就是PCI直通。
4.1   检查硬件是否支持直通(BIOS内查看Advanced高级选项)
- 开启CPU虚拟化:Intel: VT-X(Intel Virtual Technology)。AMD: AMD-V(SVM, Secure Virtual Machine)。
- 开启硬件直通功能:Intel: Intel VT-d。AMD: IOMMU。
- 部分主板会有和Intel VT-d/IOMMU相关联的
Memory Remap Feature
设置。
4.2   PVE提示No IOMMU detected
当pve未启用IOMMU或者硬件不支持直通(即使手动设置PVE开启IOMMU)时,在ProxmoxVE(PVE)的VM/VPS中添加PCI设备时候提示:No IOMMU detected, please activate it.See Documentation for further information
.
解决方法:请确认自己的机器是否支持VT-X和VT-d等CPU虚拟化和直通硬件功能,并是否已开启IOMMU。若硬件不支持,建议更换支持这些功能特性的硬件设备。
4.3   PVE启用IOMMU
- 编辑grub文件:
nano /etc/default/grub
- 找到GRUB_CMDLINE_LINUX_DEFAULT这一行:
1 | ... |
- 根据CPU类型修改
1 | ... |
1 | ... |
- 编辑cmdline:
nano /etc/kernel/cmdline
。(若不存在,则新建该文件) - 根据CPU类型在第一行末尾添加:
1 | quiet intel_iommu=on |
1 | quiet amd_iommu=on |
4.4   验证PVE的IOMMU是否启用
- 查询命令:
dmesg | grep -e DMAR -e IOMMU
。输出显示DMAR: IOMMU enabled
或者DMAR: Intel(R) Virtualization Technology for Directed I/O
证明已启用。 - 实操验证:虚拟机分配PCI设备时可见。
4.5   PVE启用PT模式
- 编辑grub文件:
nano /etc/default/grub
- 找到GRUB_CMDLINE_LINUX_DEFAULT这一行:
1 | ... |
- 附加参数iommu=pt,Intel和AMD芯片均可使用这个参数。
- 添加模块设置(5.4内核需自行添加,现行版本自带有添加):
nano /etc/modules
。没有如下内容需添加。
1 | vfio |
- 刷新 initramfs:
update-initramfs -u -k all
- 更新 grub:
update-grub
4.6   直通i9-13900K核显UHD770给虚拟机Windows11
4.6.1   Intel 核显直通 optionROM方案
- 访问igd仓库,在仓库代码根路径下,下载
gen12_gop.rom
和gen12_igd.rom
两个文件。 - 将这两个文件复制到
/usr/share/kvm/
目录下。 - 编辑Windows虚拟机配置文件(示例Windows虚拟机ID为103):
1 | nano /etc/pve/qemu-server/103.conf |
- 注意在启动前,将虚拟机->硬件->显示->设置为「无 (none)」,即对应虚拟机配置文件的参数:
vga: none
- 通过远程桌面连接RDP接入虚拟机系统,下载并安装最新的Intel的核显驱动(已测试正常的驱动版本
32.0.101.6732
,驱动程序日期:2025/4/1)。
5   创建PVE虚拟机
若机器硬件性能不太足够的话,不建议安装win系统,win系统极度消耗硬件性能(即便是空载待机状态也消耗很大),而这影响openwrt的性能。比如我的情况:安装了tiny10系统,千兆网线,宽带500M实测不到300Mbp/s(这里是指用广东联通宽带测速平台测试的结果,实际ikuai主路由测试速率却又正常),局域网速率最高只能到700Mbp/s的速率。关闭后tiny10后,实测宽带速率恢复正常,局域网速率跑到900Mbp/s出头)
5.1   PVE基础设置
- 访问WEB管理地址并登录:https://192.168.1.2:8006,账户:root。密码:[前面安装步骤设置的密码]。
- 根据硬件网卡情况,添加并设置好虚拟网桥Linux Bridge:创建>Linux Bridge>桥接接口填写物理网口地址名称。以我的机器为例,机器三个物理网口,PVE新建5个网桥,前三个网桥和物理网口绑定,第四个网桥用作iKuai和OpenWrt之间的传输,第五个网桥用作其他虚拟机系统的传输。
5.2   安装爱快iKuai
- 下载iKuai镜像:点击跳转
- local-内容-上传:iKuai的安装镜像文件。
- 创建虚拟机,命名虚拟机名称ikuai,VM编号100。
- CD/DVD光盘镜像文件选择刚上传的ISO镜像。
- 主硬盘分配2G,额外添加EFI磁盘(不勾选添加密钥),CPU给4核(KVM64),内存分配4G(64位iKuai要求4G内存),网卡模型选择VirtIO(半虚拟化)。
- 完成新建后,在硬件标签页中继续完成添加所有网桥,网桥的防火墙全部关掉(使用iKuai的),模型都选择半虚拟化。
- 在选项标签页中把「开机自启动」开启,启动顺序设置为1,引导顺序只开disk‘xxxx’磁盘,把网络启动关掉,CD启动上移到第一位。
- 点击启动虚拟机,完成安装即可。
- iKuai内识别的第一个网卡设置为lan1。
- 输入字母o回车进入其「其他选项」,开启外网访问web。
- 访问WEB管理地址并登录:http://192.168.1.1:80。默认账户:admin。默认密码:admin。
5.3   安装OpenWrt
5.3.1   OpenWrt镜像的选择
- Bleach OpenWrt:推荐(本教程使用该固件)。内置SmartDNS,软件包空间设置为1G,剩余五百多兆。
- eSir GDQ 高大全:eSir的高大全固件。不推荐。没有内置SmartDNS拓展(我测试时安装SmartDNS并未出现有服务项,无效)。并且相较于Blench版本,较为繁琐。软件包空间只剩余几兆,需自己手动扩盘。
5.3.2   安装步骤
- 创建虚拟机,命名虚拟机名称openwrt,VM编号101。
- CD/DVD光盘镜像文件设置为无介质。
- 主硬盘随便分配(后续会删除),额外添加EFI磁盘(不勾选添加密钥),CPU给4核(KVM64),内存分配4G,网卡模型选择VirtIO(半虚拟化)。
- 网桥只选择第四个网桥(用作iKuai和OpenWrt之间的传输),网卡的防火墙全部关掉(使用iKuai的),模型选择半虚拟化。
- 下载OpenWrt镜像:见上一小节
- local-内容-上传:OpenWrt的镜像文件。
- 向虚拟机导入OpenWrt镜像:
qm importdisk 101 /var/lib/vz/template/iso/bleach-plus-20230826-openwrt-x86-64-generic-squashfs-combined-efi.img local-lvm
。(直接写盘即可,无需安装)。 - 在pve管理页面中,加载刚才导入镜像生成的磁盘。
- 在选项标签页中把「开机自启动」开启,启动顺序设置为2,引导顺序只开disk‘xxxx’磁盘,把网络启动关掉。
- 点击启动虚拟机。
- pve中用shell:
vi /etc/config/network
,将lan口ip改为192.168.1.3
,reboot
重启。vim编辑:按i进入修改模式,按esc退出编辑模式,输入 :wq回车保存修改。 - 访问WEB管理地址并登录:http://192.168.1.3。默认账户:root。默认密码:password。
5.4   安装飞牛私有云fnOS
- 下载飞牛私有云fnOS镜像:点击跳转
- local-内容-上传:fnOS的安装镜像文件。
- 创建虚拟机,命名虚拟机名称fnOS,VM编号102。
- CD/DVD光盘镜像文件选择刚上传的ISO镜像。
- 主硬盘分配64G,额外添加EFI磁盘(不勾选添加密钥),CPU给4核(KVM64),内存分配6G(fnOS系统内存需求还是有点大的),网卡模型选择VirtIO(半虚拟化)。
- 其他硬盘后续自行根据需求添加。
- 网桥只选择第五个网桥(用作iKuai和fnOS之间的传输),网卡的防火墙全部关掉(使用iKuai的),模型选择半虚拟化。
- 在选项标签页中把「开机自启动」开启,启动顺序设置为3,引导顺序只开disk‘xxxx’磁盘,把网络启动关掉,CD启动上移到第一位。
- 点击启动虚拟机。
- 选择
Graphical Install
进行图形化安装流程。 - 选择系统主硬盘进行安装。
- 系统分区大小:64GB;Swap大小:0GB。(有论坛帖子反馈开启
Swap cache
时,某些下载应用例如QBittorrent
可能会引导硬盘持续读取和CPU的异常占用。永久禁用Swap还需要修改fstab文件。) - 点击确认安装,选择网卡界面,直接默认选项确认即可。
- 安装完成后,点击确认开始重启。摁
ESC
键,进入虚拟机BIOS设置界面,重新选择硬盘分区作为启动项启动。(否则默认启动CD) - 出现
Debian GNU/Linux
系统引导选项就是安装成功了 - 进入到传统Linux登录界面(无GUI),这里能看到WEB管理地址。若需要固定IP地址,在
ikuai
中找到对应MAC地址加入静态分配表即可。 - 访问WEB管理地址并登录:http://192.168.1.5:5666/。首次访问会提示创建NAS
设备名称``超级管理员账号``密码``确认密码
。
5.5   创建虚拟机遇到的坑
5.5.1   添加EFI磁盘后,启动无法引导磁盘,出现shell界面。
原因:创建EFI磁盘时,勾选了添加密钥。
解决方法:创建EFI磁盘时,取消勾选添加密钥。
5.5.2   安装windows镜像,无法识别找到磁盘
原因:scsi不适合windows镜像,windows安装解决识别不到硬盘。
解决方法:创建硬盘时,总线/设备选择:SATA硬盘或者IDE。
5.5.3   安装windows镜像,网卡无驱动
现象:当网卡设置为virtio模型时,安装并进入到windows系统后,网卡无驱动。
原因:windows系统自带的驱动无此虚拟硬件的驱动。
解决方式:加载virtio镜像,并运行x64程序安装驱动即可。
VirtIO镜像下载地址:点击跳转
5.5.4   创建的Windows虚拟机运行一段时间自动挂起进入suspended状态
问题:创建的Windows虚拟机运行一段时间后,会自动挂起进入suspended状态,并且恢复resume系统状态会导致虚拟机内存占用瞬间吃满,然后无响应。
原因:虚拟机Windows系统自身有自动睡眠和关闭屏幕等设置,导致PVE的QEMU自动进入到挂起状态。
解决方法:关闭虚拟机Windows系统内电源设置的自动睡眠和自动关闭屏幕功能。
5.6   创建LXC容器遇到的坑
5.6.1   使用debian-12
的CT模板创建LXC容器SSH终端中文乱码
1 | apt install locales -y |
5.6.2   非特权(unprivileged)LXC容器无法设置vm.max_map_count
内核参数
报错提示:error: permission denied on key 'vm.max_map_count'
报错原因:因为非特权的LXC容器的/proc/sys
是以只读方式挂载到容器里面,无法修改sysctl内核参数。
解决方法:在PVE宿主机上,使用sysctl -w vm.max_map_count=2000000
命令设置vm.max_map_count
内核参数。max_map_count
默认值是262144。
5.6.2.1   补充知识点:namespace化的sysctl内核参数
vm.max_map_count
属于内核参数,而vm.*
参数并没有namespace化。只有namespace化的sysctl内核参数在容器内直接修改设置的时候,不会影响宿主机和其他容器。
已经namespace化的sysctl内核参数:
- kernel.shm*
- kernel.msg*
- kernel.sem
- fs.mqueue.*
- net.*
- net.netfilter.nf_conntrack_max(Linux 5.12.2之前并未namespace化)
- net.netfilter.nf_conntrack_expect_max(Linux 5.12.2之前并未namespace化)
给LXC容器单独设置sysctl内核参数的方式:
- 为LXC容器开启特权选项
--privileged
,对应/proc
目录的挂载方式为rw
,可以直接在容器内使用命令修改参数了。若修改的是namespaced
参数,则不会影响宿主机和其他容器。 - 把
/proc/sys
bind到容器里面,该方式和--privileged
效果类似。
给docker容器单独设置sysctl内核参数的方式:
--privileged
:docker run --privileged -it ubuntu bash
,该方式启动后,可以通过命令任意修改sysctl参数。- 把/proc/sys bind到容器里面,再具体写值,和上面的效果类似。
docker run -v /proc/sys:/writable-sys -it ubuntu bash
echo 62 > /writable-sys/net/ipv4/ip_default_ttl
--sysctl
:docker run -it --sysctl 'net.ipv4.ip_default_ttl=63' ubuntu sysctl net.ipv4.ip_default_ttl
。- 只有namespaced参数才可以。否则会报错"invalid argument..."
- 这种方式只是在容器初始化过程中完成内核参数的修改,容器运行起来以后,/proc/sys仍然是以只读方式挂载的,在容器中不能再次修改sysctl内核参数。
5.6.3   创建的LXC容器debian-12
系统时间与宿主机时间不一致
使用debian-12
的CT模板默认使用的是世界时设置,因此需要手动设置时区。
- 方法1:timedatectl set-timezone Asia/Shanghai
- 方法2:dpkg-reconfigure tzdata
验证修改是否成功:timedatectl
6   iKuai +OpenWRT 做旁路由网络拓扑
iKuai作为主路由,负责拨号及DHCP,OpenWRT做旁路由。SmartDNS+AdGuardHome设置分流与去广告。SmartDNS作为DNS管理并提供DNS缓存,实现国内国外DNS分流,彻底解决DNS污染问题、实现秒开网页。同时搭配AdGuardHome实现整个局域网去广告。
DNS转发流程:设置最核心的部分就是DNS转发端口的衔接,就是把DNSMASQ、Adguardhome、SmartDNS三个插件里的DNS服务器功能分成三个层级,实现层层转发。依次是第一级DNSMASQ,第二级Adguardhome,第三级SmartDNS,第四级OpenClash。
6.1   iKuai的设置
系统设置>重启关机>添加一个重启计划:每天05:00时重启。- 网络设置>内外网设置
- 外网接口(选择iKuai识别到的第二个网口):填入宽带拨号信息。
- 内网接口(iKuai识别到的第一个网口,IP地址192.168.1.1):链路桥接(选择剩余的其他全部接口)
- DHCP设置>DHCP服务端
- 单iKuai版:
- 客户端地址:192.168.1.10-192.168.1.254(1-9留给专用设备的管理地址)
- 子网掩码:255.255.255.0
- 网关:192.168.1.1
- 首选DNS:223.5.5.5
- 备选DNS:114.114.114.114
- iKuai+OpenWrt版本:
- 客户端地址:192.168.1.10-192.168.1.254(1-9留给专用设备的管理地址)
- 子网掩码:255.255.255.0
- 网关:192.168.1.3
- 首选DNS:192.168.1.3
- 备选DNS:192.168.1.3
- 单iKuai版:
- DNS设置>DNS设置
- 单iKuai版:
- 首选DNS:223.5.5.5
- 备选DNS:114.114.114.114
- iKuai+OpenWrt版本:
- 首选DNS:192.168.1.3
- 备选DNS:192.168.1.3
- 单iKuai版:
- UPnP设置>UPnP设置
- UPnP即插即用服务:开启
- 允许内网IP映射:0.0.0.0-255.255.255.255
- 默认线路设置:任意
- 掉线检测:开启
- 检测周期:2
- 定时重启:开启
- 重启周期:全选
- 重启时间:05:00。
6.2   OpenWrt设置
6.2.1   定时重启
系统>定时重启:启用,设置每天05:00。
6.2.2   网络
6.2.2.1   接口>LAN
- IPv4地址:192.168.1.3。管理OpenWrt的地址。
- 和ikuai一致保证同一个网段。
- IPv4网关:指向iKuai的网关。保证OpenWrt的上网数据传输到iKuai再传输到外网。
- 使用自定义的DNS服务器:223.5.5.5(初始先设置阿里云DNS保证设置过程的上网)。后面等设置好SmartDNS之后改由OpenWrt代理,即输入192.168.1.3。
- 关闭DHCP服务,统一由iKuai分配。
- 禁用掉IPv6服务。
- 物理设置:桥接接口。(因为选用的也是)
- lan高级设置:不勾选IPv6,勾选【开启开机自动运行】和【强制链路】。
6.2.2.2   Turbo ACC 加速
只开启前三个即可,DNS缓存后面由SmartDNS来管理。
6.2.2.3   防火墙设置
- SYN-flood 防御:关闭(此项开启关闭都行)
- 丢弃无效数据包:启用(此项开启关闭都行)
- 启用FullCone-NAT:高性能模式
- 入站数据、出站数据、转发都设置为接受。
- lan口开启:IP 动态伪装(只保留lan口的规格,其他接口全部删除)
- 防火墙自定义规则(一般默认就有前四条规则,没有需加上)
1 | iptables -t nat -A PREROUTING -p udp —dport 53 -j REDIRECT —to-ports 53 |
6.2.3   SmartDNS
- 基本设置
- 启用
- 本地端口6053
- 高级设置
- 开启TCP服务器
- 勾选域名预加载
- 勾选缓存过期服务
- 缓存大小设为:1000000
- 域名TTL最大值设为:3600
- 第二DNS服务器
- 启用
- 本地端口5335
- TCP服务器
- 服务器组:oversea
- 跳过测速
- 跳过address规则
- 跳过address SOA(#)规则
- 跳过双栈优选
- 跳过cache
- 停用IPV6地址解析
- 上游服务器(添加DNS的设置里面可以设置服务器组)
- 服务器组名称:china(10条左右,包含iKuai路由宽带拨号返回的两个宽带供应商提供的DNS)
- iKuai路由宽带拨号返回的宽带供应商提供的DNS1,udp协议
- iKuai路由宽带拨号返回的宽带供应商提供的DNS2,udp协议
- 114dns,114.114.114.114,udp协议
- 114dns,114.114.115.115,udp协议
- opener dns,42.120.21.30,udp协议
- 阿里dns,223.5.5.5,udp协议
- 阿里dns,223.6.6.6,udp协议
- 腾讯dns,119.29.29.29,udp协议
- 百度dns,180.76.76.76,udp协议
- 华为dns,122.112.208.1,udp协议
- 服务器组名称:oversea(10条左右)
- google dns,8.8.8.8,udp协议
- google dns,8.8.4.4,tls协议
- CloudFlare,1.1.1.1,udp协议
- IBM Quad9,9.9.9.9,udp协议
- Norton ConnectSafe,199.85.126.10,udp协议
- Norton ConnectSafe,199.85.127.10,udp协议
- OpenDNS,208.67.222.222,tls协议
- OpenDNS,208.67.220.220,udp协议
- V2EX DNS,199.91.73.222,tls协议
- V2EX DNS,178.79.131.110,tls协议
- 服务器组名称:china(10条左右,包含iKuai路由宽带拨号返回的两个宽带供应商提供的DNS)
- 域名规则
- 服务器组:china
- 域名分流设置:跳过测试
- 自定义设置(只设置两条,其他全部注释掉)
1 | bind:6053 -group china |
- 保存&应用
6.2.4   AdGuard Home
6.2.4.1   手动更新内核
- 下载最新的AdGuardHome内核(AdGuardHome_linux_amd64.tar.gz):点击跳转
- 解压获取「AdGuardHome」文件。
- 使用WinSCP登录openwrt虚拟机,进入到路径
/usr/bin/AdGuardHome/
,上传「AdGuardHome」文件。右击属性,分配权限0755(rwxr-xr-x)。
6.2.4.2   设置AdGuard Home
- 启用
- AdGuardHome重定向模式:作为dnsmasq的上游服务器
- 详细日志
- 开机后网络准备好时重启
- 在关机时备份工作目录文件(所有的选项)
- 打开192.168.1.3:3000地址并配置
- 网页管理界面>监听接口>所有接口,端口号设置为默认的3000
- DNS 服务器>监听接口>所有接口,端口号设置为5351
- 网页管理界面登录密码
- 设置>常规设置>使用过滤器和Hosts文件以拦截指定域名(其他选项全部关闭)
- 设置>DNS设置
- 上游 DNS 服务器
1
2127.0.0.1:6053
127.0.0.1:5335- 并行请求
- Bootstrap DNS:
127.0.0.1:6053
- 应用
- DNS服务配置
- 速度限制:0
- DNS 缓存配置:都空着(采用上游DNS服务器,让SmartDNS来管理)
- 上游 DNS 服务器
- 设置>过滤器>DNS黑名单设置(将阻止匹配 DNS 拦截清单的域名):综合性的规则列表启用几个即可。
6.2.5   DNSMASQ设置
打开网络>DHCP/DNS。主要是解除DNSMASQ的DNS功能,只保留转发功能,让DNSMASQ作为AdGuard Home的下级服务生效。
- DNS转发:
127.0.0.1#5351
。如果未自动设置成这个,手动强制改成这个。 - HOSTS 和解析文件:忽略掉解析文件,不用DNSMASQ的解析。
- 高级设置
- DNS服务器端口:53
- DNS查询缓存的大小:0
- 最大并发查询数:1500
- 保存&应用
6.2.6   OpenClash
6.2.6.1   更新客户端
- 下载客户端安装包:点击跳转
- 使用WinSCP登录openwrt虚拟机,进入到路径家目录home,上传安装包,运行安装
opkg install ./luci-app-openclash_0.46.014-beta_all.ipk
。如果报错,尝试opkg update
。
6.2.6.2   手动更新内核
内核下载地址:
更新步骤:
- 下载内核。
- 使用WinSCP登录openwrt虚拟机,进入到路径
/etc/openclash/core
,上传内核文件。右击属性,分配权限0755(rwxr-xr-x)。
内核对应的名称(压缩包解压出来的名称不一定对应,需手动修改):
- Dev 内核: clash
- Tun 内核: clash_tun
- Meta 内核: clash_meta
6.2.6.3   OpenClash设置
- 运行状态:启动OPENCLASH
- 插件设置
- 模式设置>运行模式:Fake-IP(TUN-混合)模式【UDP-TUN,TCP-转发】
- DNS设置>本地DNS劫持:停用
- GEO数据库订阅:设置自动更新
- 大陆白名单订阅:设置自动更新
- 配置订阅:设置自动更新,更新间隔60分钟
6.2.7   扩容Overlay软件安装空间
- 关闭openwrt虚拟机。
- 硬件>硬盘>更多,调整磁盘大小(只能增加大小,按需增加所需硬盘的空间大小)。
- 打开openwrt虚拟机。
- 系统>磁盘管理L:将新增磁盘大小新建一个分区并格式化为ext4,保存并应用
- 挂载刚才新增的分区,举例sda3:
mount /dev/sda3 /mnt/sda3
,保存并应用。 - 拷贝源overlay目录的文件到新分区内:
cp -r /overlay/* /mnt/sda3
。 - 系统>挂载点:添加sda3挂载点为「作为外部overlay使用(/overlay)」,保存并应用。
- 重启openwrt虚拟机,检查扩容情况。
- 根据情况可能需手动移除之前挂载的
/mnt/sda3
状态。
7   PVE总结
7.1   (强烈推荐)PVETOOLS脚本程序推荐
- PVETOOLS仓库地址:点击跳转
- 安装步骤(PVE SHELL执行命令):
1 | export LC_ALL=en_US.UTF-8 |
- 执行脚本程序后,可以一键执行「安装配置CPU省电」「配置PVE的web界面显示传感器温度」「去除订阅提示」等功能。
7.2   PVE虚拟机各硬件模型总结
TODO
8   iKuai总结
8.1   iKuai爱快内网测试
iKuai爱快内置支持iperf3内网测试工具,但服务端默认并未开启。
开启服务端设置和测试的步骤
- 在iKuai爱快中设置:应用工具->吞吐测试->服务端功能开关(勾选启用)
- 下载iperf3到客户端机器。
- 运行测试命令:
iperf3 -c 192.168.1.1
客户端机器作为服务端的设置步骤:
- 下载iperf3到客户端机器。
- 运行测试命令:
iperf3 -s -p 5201
- 在iKuai爱快的客户端工具连接客户端IP测试。
9   飞牛私有云fnOS(NAS总结)
9.1   下载应用例如QBittorrent
在后台上传时可能会引导硬盘持续读取和CPU的异常占用。
问题原因:系统Swap cache功能引起引起硬盘持续读取和CPU的异常占用。
解决方法:永久禁用Swap cache
功能。
- 访问fnOS虚拟机控制台。
- 登录fnOS账户。
sudo vim /etc/fstab
- 摁
I
键进入vim编辑器编辑模式 - 找到
/swapfile none swap sw 0 0
一行内容并注释掉,即在行头加上#
。 - 摁
ESC
键,摁:
键然后输入wq!
保存退出。 cat /etc/fstab
可以查看文件内容是否修改成功,输出内容如下:
1 | UUID=ea545bcc-cd3f-479f-902a-ab2b02db25 / ext4 errors=remount-ro 0 1 |
10   宽带网络总结
10.1   会话数(连接数)
会话数(连接数)在线测试工具:https://qps.itzmx.com
连接数为应用产生的网络连接数,例如在爱快首页上看到连接数。并发连接数为 qps ,即每秒发起请求,等于在同一秒内,产生了 250 个请求。
会话数(连接数)的限制,一般普通线路带宽会有会话数限制,专线则没有该限制。触发限制的常见现象为:超过并发连接数上限后,此前已建立连接数的软件和网络请求可正常通信,并且期间ping一切正常,延迟没有任何抖动现象,但是新开软件则连不上网络。
11   后记
这光猫还是有断流情况,估计是过热导致掉线,后续考虑下加装小风扇。
断流降速故障已查明:虚拟网卡模型设置为Intel E1000
导致的故障,重设为VirtIO (半虚拟化)
即可解决。
12   All in One (All in Boom) 机器硬件选型总结
12.1   CPU选型对比
CPU型号 | 内核/线程 | 功耗/W | 频率/GHz | 核显最大分辨率 | 最大内存规格/GB | VT-x | VT-d |
---|---|---|---|---|---|---|---|
赛扬®J1900 | 4/4 | 10 | 2~2.42 | 未知 | 2×8 DDR3L 1333MT/s | 支持 | 不支持 |
奔腾®N3530 | 4/4 | 4.5~7.5 | 2.16~2.58 | 未知 | 2×8 DDR3L 1333MT/s | 支持 | 不支持 |
奔腾®J4205 | 4/4 | 10 | 1.5~2.6 | 未知 | 2×8 LPDDR4 2400 MT/s DDR3L/LPDDR3 1866 MT/s; | 支持 | 支持 |
赛扬®J4125 | 4/4 | 10 | 2~2.7 | DP:4096x2160@60Hz HDMI:4096x2160@30Hz eDP:4096x2160@60Hz | 2×8 DDR4/LPDDR4 2400MT/s | 支持 | 支持 |
赛扬®J6412 | 4/4 | 10 | 2~2.6 | DP:4096 x 2160@60Hz eDP:4096 x 2160@60Hz | 4x32 LPDDR4/x 3733MT/s 2x64 DDR4 3200MT/s | 支持 | 支持 |
N100 | 4/4 | 6 | 3.4 | DP:4096 x 2160@60Hz HDMI:4096 x 2160@60Hz | 16 DDR5 4800 MT/s 16 DDR4 3200 MT/s 16 LPDDR5 4800 MT/s | 支持 | 支持 |
酷睿™ i7-1255U | 10/12 | 12~55 | E核3.5 P核4.7 | DP:7680 x 4320 @ 60Hz HDMI:4096 x 2304 @ 60Hz eDP:4096 x 2304 @ 120Hz | 64 LDDR5 4800 MT/s 64 DDR4 3200 MT/s 64 LPDDR5 5200 MT/s 64 LPDDR4x 4267 MT/s | 支持 | 支持 |
酷睿™ i3-12100 | 4/8 | 60~89 | 无E核 P核3.3~4.3 | DP:7680 x 4320 @ 60Hz HDMI:4096 x 2160 @ 60Hz eDP:5120 x 3200 @ 120Hz | 128 DDR5 4800 MT/s 128 DDR4 3200 MT/s | 支持 | 支持 |
酷睿™ i3-12300 | 4/8 | 60~89 | 无E核 P核3.5~4.4 | DP:7680 x 4320 @ 60Hz HDMI:4096 x 2160 @ 60Hz eDP:5120 x 3200 @ 120Hz | 128 DDR5 4800 MT/s 128 DDR4 3200 MT/s | 支持 | 支持 |
酷睿™ i5-12400 | 6/12 | 65~117 | 无E核 P核2.5~4.4 | DP:7680 x 4320 @ 60Hz HDMI:4096 x 2160 @ 60Hz eDP:5120 x 3200 @ 120Hz | 128 DDR5 4800 MT/s 128 DDR4 3200 MT/s | 支持 | 支持 |
酷睿™ i3-13100 | 4/8 | 60~110 | 无E核 P核3.4~4.5 | DP:7680 x 4320 @ 60Hz HDMI:4096 x 2160 @ 60Hz eDP:5120 x 3200 @ 120Hz | 192 DDR5 4800 MT/s 192 DDR4 3200 MT/s | 支持 | 支持 |
酷睿™ i3-14100 | 4/8 | 60~110 | 无E核 P核3.5~4.7 | DP:7680 x 4320 @ 60Hz HDMI:4096 x 2160 @ 60Hz eDP:5120 x 3200 @ 120Hz | 192 DDR5 4800 MT/s 192 DDR4 3200 MT/s | 支持 | 支持 |
酷睿™ i7-12700K | 12/20 | 125-190 | E核2.7~3.8 P核3.6~4.9 | DP:7680 x 4320 @ 60Hz HDMI:4096 x 2160 @ 60Hz eDP:5120 x 3200 @ 120Hz | 128 DDR5 4800 MT/s 128 DDR4 3200 MT/s | 支持 | 支持 |
酷睿™ i7-1265U | 10/12 | 12~55 | E核3.6 P核4.8 | DP:7680 x 4320 @ 60Hz HDMI:4096 x 2304 @ 60Hz eDP:4096 x 2304 @ 120Hz | 64 DDR5 4800 MT/s 64 DDR4 3200 MT/s 64 LPDDR5 5200 MT/s 64 LPDDR4x 4267 MT/s | 支持 | 支持 |
12.2   主板选型对比
主板型号 | 内存插槽 | 供电 | 网口情况 | SATA支持 | M.2支持 | PCIe通道 | 显示接口 | PCB设计板层 |
---|---|---|---|---|---|---|---|---|
云星Matx-Z690 NAS主板 | 4 x DDR4内存槽 最大支持4 x 32G=128G | 8+1+1相 | 4 x Intel I226-V 2.5G | 8 x SATA 3.0 | 2 x PCIe4.0 x4正面 2 x PCIe3.0 x4反面 | 2 x PCIe4.0 x16插槽(x8带宽) PCIe4.0 x4插槽(x4带宽) | HDMI2.0 DP1.4 | 6层 |
13   参考文献
[1] Installation Failing: "Failed to prepare EFI boot using Grub"[EB/OL]. https://forum.proxmox.com/threads/installation-failing-failed-to-prepare-efi-boot-using-grub.122002/.
[2] 软路由科普系列 篇二:PVE安装iKuai OpenWrt 旁路由 基础设置 保姆级全教程[EB/OL]. https://post.smzdm.com/p/awrx4lxm/.
[3] ProxmoxVE 7.4 升级到 8.0,详细步骤[EB/OL]. https://blog.margrop.net/post/pve-7-upgrade-to-8/.
[4] PVE 联网及更换国内源[EB/OL]. https://www.cnblogs.com/pdblogs/p/16218543.html.
[5] Force update from unsigned repository[EB/OL]. https://askubuntu.com/questions/732985/force-update-from-unsigned-repository.
[6] ProxmoxVE(PVE) 启用 IOMMU[EB/OL]. https://www.insilen.com/post/501.html.
[7] Enable IOMMU or VT-d in your motherboard BIOS[EB/OL]. https://us.informatiweb.net/tutorials/it/bios/enable-iommu-or-vt-d-in-your-bios.html.
[8] ProxmoxVE(PVE) 使用 IMG 镜像文件,img 转 qcow2[EB/OL]. https://www.lxtx.tech/index.php/archives/65/.
[9]『软路由踩坑指南』篇三:ESXi 8.0 虚拟机安装 iKuai 主路由及保姆级配置[EB/OL]. https://post.smzdm.com/p/a5op28x7/.
[10]『软路由踩坑指南』篇四:ESXi 8.0 虚拟机安装 openWrt 路由系统终极指南[EB/OL]. https://post.smzdm.com/p/a7ngxeel/.
[11]『软路由踩坑指南』篇五:OpenWrt 旁路由进阶篇 SmartDNS+AdGuardHome 设置 DNS 分流、秒开网页、去广告[EB/OL]. https://post.smzdm.com/p/axz6z7w9/.
[12] [openwrt(x86)] OPenWRT 旁路由 +MosDNS+OpenClash+AdGuard Home 傻瓜配置图文教程[EB/OL]. https://www.right.com.cn/forum/thread-8284982-1-1.html.
[13] OpenWrt 扩容 Overlay 和 Docker 软件安装空间教程(内置硬盘版)附:Samba 网络共享设置[EB/OL]. https://www.right.com.cn/forum/thread-7470757-1-1.html.
[14] [OpenWrt] 使用 OpenClash 科学上网[EB/OL]. http://suyu0925.github.io/blog/2022/07/25/openwrt-openclash/.
[15] 镜像站使用帮助-Proxmox 软件仓库[EB/OL]. https://mirrors.tuna.tsinghua.edu.cn/help/proxmox/.
[16] 开启直通[EB/OL]. https://skyao.io/learning-pve/docs/pass-through/enable/.
[17] [经验分享] 在线连接数测试网页,简单一键测试宽带并发连接数限制[EB/OL]. https://bbs.ikuai8.com/thread-87196-1-1.html.
[18] 禁用Swap cache[EB/OL]. https://club.fnnas.com/forum.php?mod=viewthread&tid=2492.
[19] 镜像站使用帮助-Debian 软件源[EB/OL]. https://mirrors.tuna.tsinghua.edu.cn/help/debian/.
[20] 第 5 章 bookworm 中需要注意的问题[EB/OL]. https://www.debian.org/releases/bookworm//amd64/release-notes/ch-information.zh-cn.html.
[21] 【装机帮扶站】第881期:BUG处理器能选否?聊聊12代ES处理器[EB/OL]. https://zhuanlan.zhihu.com/p/458166029.
[22] 爱快ikuai和windows电脑使用iperf3测试内网传输速度[EB/OL]. https://www.mulingyuer.com/archives/1073/.
[23] PVE8.3.0折腾记(一)——PVE初次安装后更换国内源[EB/OL]. https://blog.csdn.net/weixin_52626278/article/details/144147244.
[24] 解决PVE安装独显后,核显消失,无法直通的问题。[EB/OL]. http://157.0.230.2:8090/archives/owKXsHkN.
[25] PVE下LXC ubuntu 中文乱码解决[EB/OL]. https://blog.csdn.net/zyr920425/article/details/131126045.
[26] Proxmox VE常见问题以及解决办法(持续更新)[EB/OL]. https://blog.csdn.net/qq_40858216/article/details/106784329.
[27] Proxmox VE面板节点和虚拟机提示问号,节点状态 unknown,储存一直打不开,虚拟机正常的诊断思路[EB/OL]. https://www.wjxy.net.cn/?p=2629.
[28] 给容器设置内核参数[EB/OL]. https://cloud.tencent.com/developer/article/1583736.
[29] Using sysctls in a Kubernetes Cluster[EB/OL]. https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/#listing-all-sysctl-parameters.
[30] setting key "vm.max_map_count": Read-only file system[EB/OL]. https://forum.proxmox.com/threads/setting-key-vm-max_map_count-read-only-file-system.28720/.
[31] After installation with Ventoy rdinit=/vtoy/vtoy[EB/OL]. https://forum.proxmox.com/threads/after-installation-with-ventoy-rdinit-vtoy-vtoy.153979/.
[32] 升级至QEMU 9.2.0后直通失败[EB/OL]. https://github.com/gangqizai/igd/issues/27.