往Gen8上加了一块 PCIe 转 NVMe 转接卡,装上了固态硬盘打算做系统,但是Gen8是不支持UEFI引导,BIOS也没有nvme驱动,隧折腾~
 至于为什么不把PVE装到其他地方,把虚拟机放在NVME里面,是因为我打算把整个SATA控制器直通给虚拟机管理,如果PVE装在SATA上就没办法直通控制器了

前言

面临的挑战:

不支持 UEFI:Gen8 只能用传统的 Legacy 模式启动

认不出 NVMe:BIOS 自检阶段根本看不见 PCIe 槽位上的 SSD,无法直接引导

尝试方案:

利用USB或SD(TF)卡插一个轻量级的引导器(Clover 或 Grub),让它先启动,再去寻找并引导 NVMe 上的 PVE 系统

安装前的准备

  • PCIe 转 NVMe 转接卡 + NVMe SSD
  • USB U盘
  • PVE 9.x 安装镜像

第一阶段:将 PVE 安装到 NVMe

  1. 虽然 BIOS 不认 NVMe,但 PVE 的安装程序(基于 Debian)内核是可以认出的
    得益于iLO可以直接把PVE镜像挂在到Gen8上,然后开始安装
  2. 我选择用Terminal UI 安装 (不知道为啥iLO Console图形交互会很卡)
    Terminal UI 安装PVE

3.在选择目标磁盘(Target Harddisk)时是可以识别出 NVMe SSD的

SSD只有512G所以我打算

root分配 150G
data分配 250G
Free冗余 50G
swap分配 剩下的零头

4.正常配置 IP、主机名,开始安装
我尝试了很多次,Gen8每次安装PVE都一定会中途出现报错,但不影响最后安装
询问过AI和查阅相关资料后,判断是虚拟化的问题,目前对之后的使用好像也没影响(无视)
PVE安装报错.png

5.安装完重启后,机器进不去系统这是正常的,因为 BIOS 找不到引导记录

第二阶段:制作引导U盘

我们需要在内置优盘里做一个向导,告诉 CPU 去哪里找 NVMe
引导方式参考:浅谈几种常见的引导方式
这里有2个方案:

方法 A:使用 Clover 镜像

原装Gen8是不支持的,不加显卡是没办法使用Clover引导的,即便是改成纯文本也不行

以前也用过Clover装黑苹果,觉得Clover界面挺好看的,网上也有很多方便的工具,值得尝试
按网上的教程,制作好启动盘,加入NVME驱动,BIOS引导后就卡死了,只显示一个6
在网上搜寻后发现,有相同问题的人,原文:惠普gen8系列服务器从nvme硬盘启动的方法
原因是没有显卡作为输出设备,详细原文都有写,这里不再重复赘述。
我服务器不打算上显卡,隧放弃A方案

方法 B:配置 GRUB(grub4dos)

理论上GRUB就可以了,但是我做主引导的时候没搞好,导致没成功引导,隧换了grub4dos

前期准备

Diskgenius软件:格式化U盘设置MBR,标记主分区
FirPE(非必要,下载BOOTICE也行):这里面有很多工具,包括BOOTICE(设置主引导记录),模拟BIOS引导的环境,还能制作PE
grub4dos0.4.6a压缩包

制作引导U盘

  1. 用Diskgenius格式化U盘,设置MBR,并指定主分区
  2. 使用FirPE里面的BOOTICE
    BOOTICE
  3. 设置主引导记录
    设置主引导记录
  4. 从grub4dos0.4.6a压缩包里拷贝grldr和menu.lst两个文件到U盘里面
    grldr在/grub4dos-0.4.6a根目录里面
    menu.lst在/grub4dos-0.4.6a/sample文件夹里面
  5. 从PVE的安装盘里面把/boot 目录复制到 U盘里面
    至于怎么搞,安装虚拟机,或者把nvme拔下来用其他电脑提取都行
    PVE更新了需要手动从新复制一份到U盘,或者将U盘挂载到/boot上
  6. 编辑menu.lst
    设置短一点的timeout时间
    并将下面内容复制到第一个title的前一行,其他项目可以删除可以保留

    根据 /boot 下面的文件修改对应的bvmlinuz和initrd版本

    title Proxmox VE (Gen8 NVMe Boot Bridge)
     # 1. 在/boot 中寻找内核文件    
     # 根据 /boot 下面的文件设置对应的bvmlinuz版本
     find --set-root /boot/vmlinuz-6.xx.xx-1-pve
    
     # 2. 加载内核本体 intel_iommu=on,relax_rmrr iommu=pt 
     # 参数 intel_iommu=on,relax_rmrr iommu=pt 是Gen8硬件直通用的(非必要,之后有其他启动参数也要加到这里)
     kernel /boot/vmlinuz-6.xx.xx-1-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on,relax_rmrr iommu=pt 
     # 3. 加载初始化驱动包 (内含 NVMe 驱动)
     initrd /boot/initrd.img-6.xx.xx-1-pve
  7. 把修改好的U盘插到Gen8上,不出意外就能正常启动NVMe里面的PVE了
    识别NVMe里面PVE

结语

通过U盘跳板曲线救国,让Gen8这一代神鸡跑上了现代化的NVMe存储
NVME能跑PCIe3.0,虚拟机测速如下:
虚拟机下NVME测速

Last modification:February 14, 2026
If you think my article is useful to you, please feel free to appreciate