前段时间在PVE上增加了一个WIN10虚拟机,没有硬盘接口,就虚拟了100G的硬盘,测试速度300+M,虽然只用来看片,但心理总是觉得不爽,还是直通一块硬盘比较好。物理机上一共三条PCIE插槽,两条X16已经用上了,只剩下一条X1,远远够不着NVME的速度,SATA是够的,勉强用一下吧。
买了一块PCIE X1转SATA的转接卡,接上硬盘,直通开机,死机了。重启PVE,查看PCIE设备,发现安装PVE的硬盘和新买这块硬盘都在IOMMU的第6组里。IOMMU分组是打开的,在网上找办法,好像只有重新编译内核了。第一次编译内核,还是遇到了些问题。
在网上找教程,建虚拟机,安装UBUNTU22.04,安装依赖时出错,又安装20.04,还是不行。想到PVE8是基于DEBIAN12,于是再安装DEBIAN12,这次行了。
下面记录一下过程。
1、安装DEBIAN12,开SSH
这个很简单,没什么说的。
2、安装v2raya
git下载速度白天只有三四十K,如果可以等的话半夜下载速度也挺快的。我是急性子,必须安装。教程参见2024最新 v2rayA 安装与配置教程。不过我是先把v2ray-core和v2raya下载下来,再传到debian后安装的。
v2ray-core下载下来是zip文件,先解压,再安装:
unzip /tmp/v2ray-linux-64.zip -d /usr/local/v2ray-core
cd /usr/local/share/
mkdir v2ray
cp /usr/local/v2ray-core/*dat /usr/local/share/v2ray/
v2raya是deb文件,直接安装:
apt install installer_debin_x64_2.2.5.1.deb
修改配置:
nano /etc/default/v2raya
下面两处地方:
V2RAYA_V2RAY_BIN=/usr/local/v2ray-core/v2ray
V2RAYA_V2RAY_CONFDIR=/usr/local/v2ray-core
再启动:
systemctl enable --now v2raya
systemctl status v2raya
然后花几块钱订阅一个月的机场,git下载速度能够达到近百M,比晚上下载还快点:)。订阅后需要做一些设置才能加速,上面文章都有写。
下面几步根据这篇文章操作:PVE8.0 编译内核支持IOMMU拆分
3、安装依赖
apt install devscripts asciidoc-base automake bc bison cpio dh-python bison flex git kmod libdw-dev libelf-dev libiberty-dev libnuma-dev libslang2-dev libssl-dev libtool lintian lz4 perl-modules rsync sphinx-common xmlto zlib1g-dev dwarves net-tools htop vnstat python3-dev
还有个包libpve-common-perl在安装的时候总是出错,找了下原因,原来需要密钥,这个我在UBUNTU里面的时候费了不少时间,各种问题,最后两个版本都没有成功。下面是密钥安装方式(注意PVE8和debian12都是bookworm,其他版本不是这个,别搞错了):
wget http://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
echo "deb http://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription" >/etc/apt/sources.list.d/pve-no-subscription.list
apt update
apt dist-upgrade -y
上面步骤没有出错的话就可以安装libpve-common-perl了。
apt install libpve-common-perl
4、下载PVE源码
cd /root
git clone --recursive https://git.proxmox.com/git/pve-kernel.git
--recursive参数建议添加,把子模块一起下载下来。
如果需要切换别的分支的话用下面命令:
git checkout bookworm-6.5
切换到bookworm-6.5,这是PVE8的内核版本,我编译的master 6.8.4。
也可以直接下载分支:
git clone -b bookworm-6.5 https://git.proxmox.com/git/pve-kernel.git
5、修改补丁文件
cd /root/pve-kernel
nano patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch
删除pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS)判断,保存。
修改前:
修改后:
6、编译
make
还是出错了:gcc fatal error killed signal terminated program cc1。
再百度,发现是系统资源不足,把内存从2G加到6G,CPU4核加到8核后,再次编译,用了差不多一个半小时,总算成功了。
7、安装切换内核,重启,再看分组
安装内核 :
dpkg -i *.deb
查看安装的所有内核 :
dpkg --get-selections |grep kernel
切换内核 :
proxmox-boot-tool kernel pin 6.8.4-2-pve
proxmox-boot-tool refresh
reboot
内核从6.5.13切换成6.8.4。
两块硬盘已经从第6组变成了13和14,成功拆分。
内核链接,有需要朋友请自行下载: