解决ESXi下飞牛NAS核显直通导致内存溢出的问题

最近在搭建基于ESXi的飞牛NAS系统时,遇到了一个让人头疼的问题:当使用核显直通功能后,系统运行一段时间,内存使用率会不断攀升,最终导致系统变得非常卡顿,甚至直接崩溃。经过反复尝试和探索,我终于找到了一个行之有效的解决办法,现在分享出来,希望能帮助到同样遇到这个问题的朋友们。

遇到的问题

在ESXi环境下安装并配置飞牛NAS系统,使用核显直通功能后,系统运行过程中内存占用会持续增加,最终引发系统卡顿甚至崩溃。这个问题困扰了我许久,而官方并没有提供针对性的解决方案。

解决办法

1. 选择EFI引导方式安装

在安装飞牛NAS系统时,引导方式一定要选择EFI。这一步非常关键,因为后续关闭虚拟显卡的操作只有在EFI引导方式下才能顺利进行。如果选择了BIOS引导,后续步骤将无法正常执行。

原始图片链接

2. 核显直通配置

按照常规流程完成核显的直通配置,确保核显能够被飞牛NAS系统正确识别并使用。具体的配置方法会因不同的硬件和ESXi版本而有所差异,大家需要根据自己的实际情况进行操作。

3. 关闭虚拟显卡功能

在ESXi的虚拟机设置中,找到虚拟机的配置参数,添加或修改参数:svga.present = FALSE。这个参数的作用是关闭虚拟显卡,防止虚拟显卡与直通显卡之间产生冲突。需要注意的是,这一步必须在选择了EFI引导的情况下才能生效,否则飞牛NAS系统将无法正常启动。关闭虚拟显卡后,飞牛NAS启动时可能会出现灰色界面,但SSH和Web界面仍然可以正常使用。

原始图片链接

原始图片链接

4. 安装915驱动程序

进入飞牛NAS系统后,通过应用商店安装915驱动程序。这是核显驱动的一部分,安装后可以更好地支持核显功能,提升系统的稳定性。

原始图片链接

5. 修改GRUB启动配置

通过SSH连接到飞牛NAS系统,运行以下命令:

nano /etc/default/grub

找到文件中的GRUB_CMDLINE_LINUX_DEFAULT这一行,将其修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.force_probe=7d55 quiet module_blacklist=xe quiet splash i915.enable_psr=0"

完成修改后保存并退出编辑器。

原始图片链接

6. 检查驱动加载状态

运行以下命令检查驱动是否成功加载:

dmesg | grep i915

如果看到类似以下的信息:

原始图片链接

这是一个报错信息:

i915 0000:02:02.0: [drm] *ERROR* VBT claims to have both internal and external displays on PHY A. Configuring for internal.

这表明驱动已经成功加载,但存在VBT(视频BIOS表)冲突的问题。

7. 禁用显示功能(可选)

如果你对上述报错信息感到困扰,可以通过以下命令进一步优化系统:

sudo nano /etc/modprobe.d/i915.conf

在文件中添加以下内容:

options i915 disable_display=true

保存并退出编辑器。

原始图片链接

8. 重启系统

完成以上所有步骤后,重启飞牛NAS系统。经过测试,内存占用情况已经恢复正常,系统运行稳定。

总结

这个问题困扰了我很久,主要原因是VBT(视频BIOS表)存在冲突。虽然直接修改VBT可以从根本上解决问题,但操作难度较大,且后续升级可能会比较麻烦。通过上述方法逐步测试,我找到了这个相对简单且有效的解决方案。希望我的经验能对大家有所帮助。如果还有其他问题,或者有更好的解决方案,欢迎在评论区交流讨论!祝大家都能顺利解决这个问题,享受稳定的NAS体验!