PVE
本文记录时PVE最新版本为8.2.2,内核6.8.4;内容为安装后系统配置及核显SRIOV直通过程。
所用处理器:n100,很多n5105并不支持,我折腾过两个都不是很顺利,甚至直接直通也不太完美。
实现效果:pve底层,其下安装openwrt、黑群晖、飞牛nas、win10;并且将n100的核显通过sriov虚拟化分配给群晖、飞牛、win10同时调用。
其实n100的核显很弱,一分三已是极限,如果没有我这么多需求,直接直通或一分二更好些。
一、系统配置
首先确保BIOS的这些功能是否正确开启:
- Intel VMX虚拟化技术 (需要开启)
- VT-d (需要开启)
- SR-IOV (需要开启)
- IOMMU (需要开启)
有些主板这些内容是隐藏的,至于默认是否开启,购买之前要咨询好。我的n100买回来之后发现就不支持SR-IOV,我找售后要的支持sriov的bios自己刷的。
1,安装PVE(略)
pve安装极简单,直观
2,整合PVE存储空间(可选)
这一步请在刚装完PVE系统后进行操作,不建议已经组好All in One的用户进行操作。
loacl和local-lvm两个分区合二为一
查询当前local的大小
df -h
/dev/mapper/pve-root这个是系统自动给local的空间
进入到PVE节点的Shell输入以下命令(删除pve/data路径下的local-lvm逻辑卷)
lvremove pve/data
输入完之后会提示是否确定删除,此时按y回车
继续输入以下命令(将所有系统盘可用空间全部交由local这一个逻辑卷分配)
lvextend -l +100%FREE -r pve/root
继续输入以下命令(使其适应已经调整大小的逻辑卷)
resize2fs /dev/mapper/pve-root
查询是否扩容成功
df -h
成功扩容接下来删除local-lvm
点数据中心 ——> 存储 ——> local-lvm ——> 移除 ——> local ——> 编辑 ——> 内容(所有选项全部选上) ——> OK PVE系统基础配置
3,去除登录弹窗(即 无效订阅源)
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
执行完成后,浏览器Ctrl+F5强制刷新缓存
4,PVE更换软件源
cat <<'EOF' > /etc/apt/sources.list
deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
EOF
cat <<'EOF' > /etc/apt/sources.list.d/pve-enterprise.list
deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription
EOF
cat <<'EOF' > /etc/apt/sources.list.d/ceph.list
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription
EOF
5,更新软件包
仅更新软件包。不要更新内核!不要更新内核!不要更新内核!
apt update
二、SRIOV核显虚拟化
1,下载依赖包
apt install flex bison
2,安装header
apt update & apt install build-* pve-headers-$(uname -r) git dkms sysfsutils flex bison -y
3,下载i915所需二进制文件
mkdir -p /lib/firmware/updates/i915/
wget -O /lib/firmware/updates/i915/tgl_guc_70.9.1.bin https://mirror.ghproxy.com/https://raw.githubusercontent.com/intel-gpu/intel-gpu-firmware/main/firmware/tgl_guc_70.9.1.bin
4,下载需要的deb包
无法连接github下载的话,可点 击此处下载.deb文件 并解压后将上传到root目录,当然也可以自己加代理(比如kkgithub)。
wget https://github.com/MoetaYuko/intel-gpu-i915-backports/releases/download/I915MT65-24.1.19-3/intel-i915-dkms_1.24.1.19.240119.1.nodrm+i3-1_all.deb
5,安装deb包
sudo dpkg -i intel-i915-dkms_1.24.1.19.240119.1.nodrm+i3-1_all.deb
出现以下信息即说明安装成功
6,编辑 grub 配置文件
nano /etc/default/grub
在 quiet
后添加 intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=2
键盘组合键ctrl+x再输入y 回车保存退出
7,更新grub和initramfs
update-grub
update-initramfs -u
8,安装sysfsutils
对新手友好,方便对VF核显数量设置,比使用开机自启脚本rc.local更安全。
apt install -y sysfsutils
下面命令中sriov_numvfs = 3的代表SRIOV核显数量,可自定义设定,最多设置7,分得越多性能越弱!
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf
----------------
#有修改虚拟核显数量的需求
nano /etc/sysfs.conf
#将原来写入的参数注释掉
#devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3
#改成你需要的数量,例如改为5个
devices/pci0000:00/0000:00:02.0/sriov_numvfs = 2
9,重启pve,使配置生效
reboot
10,核实是否成功
执行 dkms status
出现以下信息说明安装成功,可以进行后续直通操作
root@pve:~# dkms status
intel-i915-dkms/1.24.1.19.240119.1.nodrm, 6.8.4-2-pve, x86_64: installed
执行 lspci | grep VGA
输出应如下图
root@pve:~# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]
00:02.1 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]
00:02.2 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]
00:02.3 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]
三、安装openwrt
我们点击PVE页面的PVE
展开,点击local(pve)
,选择ISO镜像
,点击上传
。
选择你下载的img结尾的Openwrt镜像并上传。
上传后我们会得到一个地址,下图所示红框内,复制出来记录下来。
我们创建虚拟机,点击右上角的创建虚拟机,弹窗出来的常规选项,节点默认,VM ID这里也默认,名称自定义。下面有一个开机自启动,打勾下一步。
操作系统这里选择不使用任何介质。
系统和磁盘这里默认下一步
CPU这里我们根据你设备性能分配。因为我只是拿来拨号和特殊上网等操作,所以不需要太大的CPU和内存使用,所以我只分了2核心足以。类别我们选择host,下一步
内存这里我用处不大,给了1024MB=1G足够
网络这里我们模型选择Intel E1000,下一步
最后确认,完成即可
选择Openwrt虚拟机,点击硬件,找到CD/DVD驱动器,选择,上面选择移除。
还是硬件,找到硬盘,选择点击上面的分离。分离后会多出一个未使用的磁盘0,选择,上面的移除即可
我们选择硬件上面的添加,PCI设备,出现弹框,点击原始设备,设备这里选择往下拉,找到除了第一个网卡,依次选择,勾选所有功能。添加。然后重复此步骤,把除了第一个网卡剩下的所有都直通分配给Openwrt.
以上操作完毕后,我们去ssh终端,输入下面命令,注意:这里的100就是前面创建Openwrt的VM ID,如果你是其他的自行替换,后面的/var/lib/vz/template/iso/xxxxx,这串就是让你前面上传镜像后红框内的地址,自行替换噢!!最后面加上空格,注意是空格local
qm disk import 100 /var/lib/vz/template/iso/xxxxx local
这里是local而不是local-lvm因为上面我们合并了存储。
回车后会跑进度,等完毕后会有如下图提示,我们可以找到PVE页面的Openwrt硬件选择,是否多出一个未使用的磁盘,且同名的信息。
我们编辑这个磁盘,把总线/设备,这个选择改成sata,添加就行
再接着我们去Openwrt点击选项,找到引导顺序,选择后点击上面的编辑。取消第一个选项,找到刚改的sata,打勾,OK
接着我们设置一下开机自启动,点击右上角的启动,这样就启动了Openwrt。
安装 群晖
1,上传引导文件
我安装的SA6400(支持12代及以上核显硬解),文件名SA6400.img,记录上传后文件路径(应为):
/var/lib/vz/template/iso/SA6400.img
2,新建虚拟机
一路默认到底,cpu选择host,网卡vmnext3或者半虚拟化都行。
3,分离存储
虚拟机创建成功,点击虚拟机→硬盘→分离;分离成功后移除此硬盘。
4,导入引导盘
qm importdisk 101 /var/lib/vz/template/iso/SA6400.img local
101是你的虚拟机编号;安装黑群晖的磁盘是local
,因为我上面删除了lvm分区,如果没有删除就是local_lvm
。
5,引导盘改为sata
再次回到虚拟机中可以看到引导导入成功,双击磁盘,将总线/设备修改为 “SATA”
6,添加数据盘
引导盘设置成功后我们还需要设置系统安装盘也就数据盘,有两种方式,一个是将硬盘直通给黑群晖,另外一个增加虚拟磁盘,我是直通了sata控制器。
7,添加虚拟显卡
原虚拟显卡设不设置无都可以。
0000:00:02.1,x-vga=1
是显卡,0000:05:00
是我的sata控制器。完成,开机!
安装 飞牛OS
这个最简单,下载飞牛系统iso镜像,添加16g-64g虚拟硬盘用来当系统盘,cpu为host,网卡vmnetx3或半虚拟化,一路安装下去就行。
进了系统开启ssh,然后关机添加虚拟显卡,开机。
安装皮蛋熊的驱动,驱动安装如下:
sudo -i # 输入密码
wget wget https://blog.kkk.rs/upload/intel-i915-v2.deb
dpkg -i intel-i915-v2.deb
重启后就可以硬解了。
安装 win10
安装win10也非常简单直观。
下载virtio,并和系统安装盘一起上传并添加到虚拟机。
在安装过程选择安装硬盘时,需要添加额外驱动才可以。
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
驱动添加界面如下:
下面是虚拟机的标准配置
机型选择,q35,bios选择ovmf
PCI设备虚拟核显:
1,安装Win时建议先不添加,Win系统装完并设置好过程访问
2,关机添加虚拟核显,此时不要勾选主GPU,安装驱动不报错,关机
3,添加sriov设备,此时勾选主gpu(也可勾上pcie),勾了主gpu之后,pve就不会显示画面了,可以尝试吧显卡改成virtio-gpu,这样就可以显示控制台。如果装驱动43,把显示该成无。
本文最后更新时间为 2024-10-11 13:54
本站仅用作个人记录,不交流、不讨论,留言板可以留言但无邮件回复。