首页

知乎直答
焕新

知乎知学堂

等你来答

​

提问

​
消息

​
2

私信

PVE核显虚拟化，一起All In One！！！

PVE核显虚拟化，一起All In One！！！

有梦想的年轮哦

知识来源于无穷的想象，兴趣是最好的老师

​ 关注他

55 人赞同了该文章

​
目录

收起

简介

前言

一、准备工作

二、虚拟化开始

1.关闭订阅提示

2.使用nano编辑更换源

3.更换内核版本

4.开启直通

5.编译i915驱动

6.设置虚拟核显的数量

三、Windows使用虚拟化核显

四、结尾

#参考资料

【#已不适用，新方法已在文中更新6月#】2025-02-11凌晨1点补充

简介

本文主要内容：

1.PVE核显虚拟化 的操作流程（二、）；

2.Windows核显驱动安装可能会遇到的问题：驱动安装后卡顿、利用率异常、远程桌面黑屏、掉驱动（三、）；

前言

最近也是玩上All In Boom了哈哈，VMware已经不太能满足我目前的使用场景，特别是VM17一言难尽的显卡，所以打算逐步从VM Workstation 转到PVE。期间也是遇到了不少问题。网上大部分都是直通的教程，而我手上的是MODT的129hk，笔记本的CPU核显虚拟化的教程就更少了。值得高兴的是，最后也是折腾成功了，现在和大家分享一下，也供大家做一个参考。

一、准备工作

我们首先要查询一下自己的CPU是否支持核显虚拟化。我手上只有12代的CPU能用于测试，所以虚拟化中用的是SR-IOV。后面如果有机会，再和大家一起玩一下GVT-g的虚拟化。

我的这颗129hk在官方文档中显示是支持SR-IOV虚拟化的，但在虚拟化的过程中一直失败，网上关于12代及以上的笔记本CPU核显虚拟化的教程少之又少，让我一度以为这文档是用于桌面端的。

接着在BIOS开启所有和虚拟化相关的选项。其实默认都是开启的，至少在我当前的平台是。

最后就是安装PVE，我用的是当前的最新版本PVE8.3.0 ，安装PVE的过程我就省略了。我刚开始首选的就是PVE8，但是在虚拟化失败多次之后，又尝试更换PVE6、PVE7，很奇怪的是，这两个版本在我当前的平台上都安装不了，最后又回到了PVE8。其实虚拟化的过程都是大同小异的，PVE的版本并不会有太大的影响，重要的是内核版本。

二、虚拟化开始

虚拟化的过程其实没有很困难，基本上都可以直接在PVE的shell界面跟着下面一路复制粘贴回车。

1.关闭订阅提示

在我们登录PVE后，会弹出一个订阅提示，输入下面的代码，shift+F5刷新一下即可。

# 关闭订阅提示
sed -i.backup -z "s/res === null || res === undefined || \!res || res\n\t\t\t.data.status.toLowerCase() \!== 'active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

2.使用nano编辑更换源

# 更换系统源
nano /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

# 更换企业源
nano /etc/apt/sources.list.d/pve-enterprise.list
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription

# 修复401错误
nano /etc/apt/sources.list.d/ceph.list
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription

# 更新源
apt update

用#注释掉原来的源后，Ctrl+X，再按Y，回车保存。如下图没有报错，换源成功。

3.更换内核版本

这一步非常重要，如果内核版本选择不对，后面的编译就会出问题。我开始先换的6.5版本，但是i915直接编译不了，又换了6.2也是一样的情况，6.8.8是只能编译一点点，然后就报错了。

##6.5编译错误返回内容##

Sign command: /lib/modules/6.5.13-6-pve/build/scripts/sign-file

Signing key: /var/lib/dkms/mok.key

Public certificate (MOK): /var/lib/dkms/mok.pub

Error! The /var/lib/dkms/i915-sriov-dkms/6.5/6.5.13-6-pve/x86_64/dkms.conf for module i915-sriov-dkms includes a BUILD_EXCLUSIVE directive which does not match this kernel/arch/config.

This indicates that it should not be built.

##6.8.8编译错误返回内容##

Building module:

Cleaning build area...

make -j20 KERNELRELEASE=6.8.8-4-pve -C /lib/modules/6.8.8-4-pve/build M=/var/lib/dkms/i915-sriov-dkms/6.8/build....(bad exit status: 2)

Error! Bad return status for module build on kernel: 6.8.8-4-pve (x86_64)

Consult /var/lib/dkms/i915-sriov-dkms/6.8/build/make.log for more information.

接着在Github论坛里一顿翻，跟着换了6.8.12-2-pve版本的内核试了试，编译竟然成功了。结果后面测试，安装完PVE后的默认内核版本6.8.12-4-pve就能编译，给我整得又高兴又无语又气的。

大家可以先用安装完PVE后的内核版本试一下先，所以其实这一步可以暂时跳过。i915支持的最高内核版本为6.8，我实测6.8目前最高的6.8.12-5-pve版本是没问题的，我就用这个版本了。

# 查看当前内核
pveversion

# 查看当前PVE有没有合适的内核，其实一般新安装的PVE就一个内核版本
proxmox-boot-tool kernel list

# 查看所有可下载安装的內核
apt-cache search pve-kernel

# 安装该版本头文件以及内核
apt install proxmox-headers-6.8.12-5-pve proxmox-kernel-6.8.12-5-pve -y

# 更新引导
update-grub

# 固化内核版本
proxmox-boot-tool kernel pin 6.8.12-5-pve

# 检查固化情况
proxmox-boot-tool kernel list
固化成功会显示:
"""
Pinned kernel:
6.8.12-5-pve
"""

4.开启直通

# 开启直通，更换GRUB_CMDLINE_LINUX_DEFAULT为下面这个
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 pcie_acs_override=downstream,multifunction"

# 添加模块
nano /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

# 更新
update-grub
update-initramfs -u -k all

# 重启
reboot

5.编译i915驱动

# 安装git及dkms
apt install -y git build-* dkms

# 克隆i915-sriov-dkms
git clone https://github.com/strongtz/i915-sriov-dkms.git

# 进入i915-sriov-dkms目录
cd i915-sriov-dkms

# 编辑dkms.conf
# 其实PACKAGE_VERSION可以不用改，只是后面的代码中的-v要和这个对应，更换之后方便一点
nano dkms.conf
PACKAGE_NAME="i915-sriov-dkms"
PACKAGE_VERSION="6.8"

# 安装i915-sriov
dkms add .
dkms install -m i915-sriov-dkms -v 6.8 --force

# 如果安装错误，就用这个移除后重新安装其他内核版本再试 #
dkms remove -m i915-sriov-dkms -v 6.8

成功后的返回内容如下图。

6.设置虚拟核显的数量

最高一般是设置7个，我这里就设置5个，大家可以根据自己的需求和核显的性能来设置虚拟核显的数量。

核显的地址一般都是0000:00:02.0，所以大家可以直接套用下面的代码。

# 安装sysfsutils
apt install -y sysfsutils

# 设置虚拟核显的数量，
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 5" > /etc/sysfs.conf

# 重启
reboot

# 查看是否开启成功
lspci | grep VGA

虚拟化成功！00:02.0是主核显，另外五个就是我们虚拟出来的核显了。

三、Windows使用虚拟化核显

这里使用Win10来演示，显示选择默认，机型q35或i440fx都可以，下图是各项的参数。

接着添加PCI设备，设备就选择我们前面虚拟出来的核显1-5的其中一个即可。选项按照下面进行勾选，如果你的虚拟机是i440fx机型，PCI-Express是勾选不了的，不用管它。

然后在控制台照常安装windows。

进入系统后，我们把所有驱动都安装上，包括显卡驱动。

2025-06-05晚上11点修改

原先使用虚拟化核显的时候，发现Win11是安装不了的，会导致核显利用率异常，一下百分百一下百分百的，哪怕重启PVE也不行。Win10的话倒是可以，但是真的觉得很奇怪，明明一月份安装的时候，直接重启系统就可以了，后面才过了一个月，到了二月份，竟然要重启整个PVE系统才行，很奇怪。

当然，以上这些都不是重点，碎碎念一下。

使用PVE也差不多半年了，中途意外断电也试过几次，比我想象中的要耐造，一点事没有。

扯远了些，那么Windows使用虚拟化核显的话，经过几个月的使用，后面也是逐渐熟练了许多。到6月份终于有时间更新了，现在和大家分享一下方法：

首先，原先的“显示”设置的是无，其实现在有些没必要了，我更建议大家使用“VirtIO-GPU ”，这样可以在网页上去进行一些操作，方便，不用总是远程连接。

然后，安装好系统进入桌面，在网页上操作，正常安装显卡驱动（远程桌面操作会出现黑屏，可能会卡死），安装完成后可能会出现显卡利用率一下百分百一下百分百电脑非常卡的情况，这个没关系，显示安装成功后，重启PVE，注意是重启PVE。

好的，PVE重启完成，在PCI设备那里勾选“主GPU”，启动Win，这时候，基本上Win10已经可以正常使用核显了，小概率会出现开机任务管理器没有核显，重启windows百分之99可以解决，不行重启整个PVE，再不行再重新安装一次驱动，再不行。。。没辙了。

对于Win11以及Server，大部分情况下有问题的话重复Win10的操作即可。小概率会出现掉驱动的情况，你会发现计算机管理器里显示安装的显卡驱动是竟然是旧版本的，这时候点击卸载设备，勾选“尝试删除此设备的驱动程序”，然后重启，再在属性界面的“更新驱动程序”—“浏览我的电脑以查找驱动程序”—“从我计算机上XXX”，一般只有一个驱动程序了（如下图），选它即可，这样基本可以解决，再不济就重新安装显卡驱动。

有时候的话，Windows开机会出现任务管理器看不到显卡的情况，重启Win基本能解决。

【#以下处理显卡的操作已不适用#】

安装完显卡驱动重启后，在设备管理器会看到显卡代码43，任务管理器上也不显示核显，我在这一步卡了一段时间，结果是因为pve的显卡和核显不兼容。

这时候我们打开Windows的远程桌面功能，关机。在硬件那里把显示设置为无，并在核显那勾选主GPU，开机。

显示设置为无之后，我们就不能在控制台控制这台虚拟机了。等待windows开机完成，使用远程桌面连上虚拟机，打开任务管理器就可以看到核显了。

一般来说，使用Windows自带的远程桌面也够用了，如果你想串流玩游戏，Sunshine和Moonlight是用不了的，哪怕是下载了Parsec -vdd来虚拟屏幕。使用Parsec串流倒是没问题。

四、结尾

那么以上就是本文的全部内容啦，非常感谢各位朋友能看到这里，希望能给大家提供一些参考，谢谢大家！

#参考资料

1.图形虚拟化技术支持每个英特尔®图形家族

2.一条命令去除PVE8烦人的无有效订阅提示_pve无有效订阅-CSDN博客

3.GitHub - strongtz/i915-sriov-dkms: dkms module of Linux i915 driver with SR-IOV support

4.dkms status: i915-sriov-dkms/6.8.12-2, 6.8.12-2-pve, x86_64: installed，but not ok · Issue #214 · strongtz/i915-sriov-dkms · GitHub

5.2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

6.PVE8.x开启intel 11-14代SRIOV核显虚拟化/intel 6-10代开启GVT-g核显虚拟化 - July's Blog

7.「教程」N100 SR-IOV PVE显卡拆分直通注意事项 解决 代码43 代码45 显卡消失 死机等问题_哔哩哔哩_bilibili

【#已不适用，新方法已在文中更新6月#】2025-02-11凌晨1点补充

Intel核显驱动下载地址：英特尔® Arc™ 和锐炬® Xe 显卡 - Windows*

最近重新安装了PVE，然后虚拟化核显，虚拟化的操作一直很顺利。直到创建Windows虚拟机，打了显卡驱动之后，核显就一直在抽风，利用率一下100%一下100%的，Web画面很卡。把PVE默认的显卡设置为无之后，远程桌面连接黑屏。

之前虚拟化操作的时候还好好的。。。

好在最后也是解决了：显示依旧设置为无，然后在PCI设备那里勾选主GPU就好了。

不过有一点需要注意，虚拟机一定要打上显卡驱动之后再关机勾选主GPU，否则会导致其他的虚拟机核显出问题，远程连接会黑屏！！！

编辑于 2025-06-06 00:05・广西

虚拟化

PVE

显卡

​ 赞同 55​ ​ 38 条评论

​ 分享

​ 喜欢​ 收藏​ 申请转载

​

理性发言，友善互动

38 条评论

默认

最新

二愣大少爷呀

佬！拆分后直通到Windows没有问题，到Debian之后lspci能识别出来显卡，但是貌似没有用因为/dev/dri没设备，不知道大佬有没有什么思路能不能指点一下我，跪谢！

05-08 · 辽宁

​ 回复​ 1

有梦想的年轮哦

作者

驱动安装了嘛？

06-05 · 广西

​ 回复​ 喜欢

开心鬼

怪事了，按你的方法我又试了一遍，虚拟核显还是无法成功，显示还是只有单独的一个显卡，版本是PVE8.4.1，CPU是13900H。

04-23 · 江苏

​ 回复​ 2

傻乎乎笨兮兮

12500,8.4只有单独一个，准备退回8.3了

06-20 · 河南

​ 回复​ 喜欢

有梦想的年轮哦

作者

毕竟溺水三千

我还是用着8.3，目前很稳定，不打算升

05-26 · 广西

​ 回复​ 喜欢

展开其他 1 条回复​

神龍

11代支持么？上面那个Intel的链接里写11代不支持呀，下面参考的教程里写支持

01-15 · 上海

​ 回复​ 1

有梦想的年轮哦

作者

11代CPU代号为Rocket Lake的，也就是11代的桌面端，支持GVT-g的虚拟化

01-15 · 广西

​ 回复​ 喜欢

了凡四训

我还使用过PVE，一直都使用exsi 7.0，不知道8.0有没有什么进步

04-22 · 内蒙古

​ 回复​ 喜欢

Michael

ms-01机器安装pev8.3成功虚拟出7个核显，安装Windows11能不能直通给显示器输出画面？

03-03 · 山西

​ 回复​ 喜欢

开心鬼

你的是什么CPU？

04-23 · 江苏

​ 回复​ 喜欢

有梦想的年轮哦

作者

这个是虚拟化核显，相当于把一个核显分成多个，不是直通，所以不能输出画面的，直通就可以。

03-03 · 广西

​ 回复​ 喜欢

Simon

内核我12.4和12.8都启动不了

03-02 · 浙江

​ 回复​ 喜欢

有梦想的年轮哦

作者

bios的各项虚拟化选项开启了嘛？

03-03 · 广西

​ 回复​ 喜欢

梅林听风

第一次虚拟成功了。然后到第二天的时候，虚拟机通过网络直接无法访问了。但是直接键盘还是可以登录的。重启之后，自动进入高级模式了，在回来直通的显卡就不能用了。硬件里只有一个原本的显卡了，没有分出来的显卡了

02-26 · 江苏

​ 回复​ 喜欢

有梦想的年轮哦

作者

这种情况很难判断问题，检查一下bios里的各项虚拟化选项开启情况吧

03-03 · 广西

​ 回复​ 喜欢

梅林听风

有梦想的年轮哦

6.8.12-5-pve，i7-13620H

02-28 · 江苏

​ 回复​ 喜欢

展开其他 1 条回复​

fanxianshi

up的资料相当专业！谢谢up主，我13的u也搞定了

01-17 · 湖南

​ 回复​ 喜欢

fanxianshi

PVE核显虚拟化，从安装到配置全过程_哔哩哔哩_bilibili up主的视频

01-17 · 湖南

​ 回复​ 喜欢

旭小旭

amd 是不是不行。。。。

01-14 · 北京

​ 回复​ 喜欢

有梦想的年轮哦

作者

旭小旭

好吧，我手上没有amd的CPU我也不太确定能不能虚拟化了。我搜了一下，只有Intel的能虚拟化核显，amd只能直通核显使用。amd核显直通是有相关教程的，可以去搜搜看呢，重点也是提取vbios

01-15 · 广西

​ 回复​ 1

旭小旭

有梦想的年轮哦

直接直通显卡设备也不行，会报这个报警，虽然虚拟机能起来，但是在虚拟机里使用不了直通的显卡

01-14 · 北京

​ 回复​ 1

查看全部 8 条回复​

取名算我输

为什么没有hyper-V加istoreos docker的方案，更适合小白，熟悉的系统 简单的环境 图形化操作

01-06 · 湖北

​ 回复​ 喜欢

有梦想的年轮哦

作者

直通显卡的话，hyperV也能实现，就是系统更新或者显卡更新之后，又需要重新配置一下虚拟机的驱动。hyperV的网卡有点抽象，设置桥接之后，物理机的网卡也由hyperV接管了，不是那么方便。其他的看个人吧，适合自己就行。

01-06 · 广西

​ 回复​ 喜欢

点击查看全部评论

理性发言，友善互动

关于作者

有梦想的年轮哦

知识来源于无穷的想象，兴趣是最好的老师

回答
12

文章
9

关注者
34

​ 关注他​ 发私信

推荐阅读

一文读懂GPU虚拟化：除了直通、全虚拟化 (vGPU)，还有谁？

大家伙，我是老猫，今天我们来聊聊GPU虚拟化。 随着AI、加密货币等技术的发展， GPU在市场上“一卡难求”，这也导致GPU售价非常昂贵，而且供货周期也不稳定。对于有GPU需求的企业用户，不但…

老猫发表于企业IT技...

CPU硬件辅助虚拟化技术

目前主要有Intel的VT-x和AMD的AMD-V这两种技术。其核心思想都是通过引入新的指令和运行模式，使VMM和Guest OS分别运行在不同模式（ROOT模式和非ROOT模式）下，且Guest OS运行在Ring 0下。通…

启迪云

PVE虚拟机安装教程

七七超爱玩

Linux云计算底层技术之 CPU 虚拟化

Linux云计算网络

想来知乎工作？请发送邮件到 [email-masked]

下载

投屏

高速下载