硬件是一台具有 BIOS/MBR 和 UEFI 启动功能的 DELL 工作站,但不支持 NVMe。有问题的驱动器是带有 4 个 U.2 SSD 驱动器的硬件 RAID 卡 Highpoint SSD7120。主板还具有可用的普通 SATA 端口,其中一个端口路由到 CFast2.0 插槽。SSD7120 的驱动程序适用于 Windows 和 Linux(以及 OSX),但控制器没有本机启动支持。
我在 Fedora 下成功进行了虚拟化测试,操作系统驻留在 CFast 卡上,并且以 SSD7120 作为虚拟机的主存储,包括不同的 Windows 版本以及 OSX 和 Linux,包括 GPU 虚拟化。
虽然 VM 测试很有趣,并且绝对是服务器的必经之路,但我想满足于裸机 Windows 10 安装,以供日常用作工作站,并想知道如何才能最大限度地利用非常快的 SSD7120 控制器,并尽可能少地在 SATA 驱动器上安装 Windows。
显然,直接安装在 RAID 卷上是不可能的。我最初认为应该可以只将 Windows 引导加载程序与硬件 RAID 控制器的驱动程序一起放在可启动的 SATA 驱动器上,但这似乎不是 Windows 启动过程的工作方式。如果我错了,请纠正我。那么问题是,您可以将多少 Windows(C:\ProgramData、C:\Program Files、C:\Users、C:\Windows,...)放在单独的驱动器上,您将如何分配驱动器号(C:\Windows 与 D:\Windows),以及如何做到这一点?我也愿意接受其他想法、替代引导加载程序等。
TLDR:我想将尽可能少的 Windows 放在可启动的 SATA 驱动器上,以便从作为主磁盘的非常快的非可启动驱动器中获得最大的好处。
答案1
最后,我接受了 Windows 需要位于可启动分区(而不仅仅是引导加载程序)的事实,并通过连接将大多数目录重定向到辅助驱动器。
为此,我制作了一个 Windows USB 安装媒体,使用它来访问命令提示符,使用 pnputil -a driver.inf 来加载 RAID 驱动程序并执行以下命令:
xcopy C:\Users\ D:\Users\ /S /E /Y /O /K /H /B
rename C:\Users C:\_Users
mklink /J C:\Users D:\Users
同样适用于 C:\Program Files、C:\Program Files (x86)、C:\ProgramData。通过 powercfg -H OFF 禁用休眠并将页面文件移动到辅助驱动器,C:\ 几乎只是 Windows 安装本身。之后我不得不手动修复“默认用户”和“ProgramData”中的几个连接点。
还可以将 C:\Windows 内的选定文件夹连接到辅助驱动器,只要它们在启动期间不是必需的,即使没有辅助驱动器,机器仍然可以正常运行。
虽然它不是最干净的解决方案,但它非常灵活,并且使用符号链接而不是目录连接可能也可以与 UNC 路径一起使用。