Kenton Varda Asked: 2019-07-14 12:04:16 +0800 CST2019-07-14 12:04:16 +0800 CST 2019-07-14 12:04:16 +0800 CST 从 iSCSI 网络驱动器启动 Windows 10 时的 PAGE_FAULT_IN_NONPAGED_AREA 772 我正在尝试将 Windows 10 设置为通过 iSCSI 进行无盘启动,例如此处或此处所述。 我能够运行 Windows 10 安装程序以在目标 iSCSI 驱动器上安装 Windows。但是,在第一次从驱动器启动时,我得到一个带有错误代码的蓝屏死机PAGE_FAULT_IN_NONPAGED_AREA。不幸的是,没有产生崩溃转储(也许是因为引导加载程序从未达到可以写入驱动器的地步?)。 我该如何诊断和解决这个问题? storage-area-network 2 个回答 Voted Best Answer Kenton Varda 2019-07-14T12:04:16+08:002019-07-14T12:04:16+08:00 当系统页面文件位于 iSCSI 设备上时,就会出现这种情况。虽然在 iSCSI 上定位页面文件在 Windows 7 下工作正常,但在 Windows 10 中似乎已损坏。不幸的是,Windows 默认在主磁盘上设置页面文件,因此当主磁盘是 iSCSI 时,它会损坏 -开箱即用。 (请注意,尽管包含“page”一词,但停止代码通常不一定PAGE_FAULT_IN_NONPAGED_AREA与系统页面文件相关。这个停止代码更像是NT内核版本的“Segmentation Fault”,一般是无效的内存访问。但是,在我的具体情况下,巧合的是它与页面文件有关。) 我能够通过完全禁用页面文件来解决问题。(它也可以在本地磁盘上找到页面文件,如果存在的话,但是在没有页面文件的情况下启动并运行操作系统后,这更容易配置。) 离线禁用页面文件 由于您的机器不可启动,因此您无法通过 UI 禁用页面文件。幸运的是,通过注册表禁用页面文件很容易。为此,请找到以下注册表项,并将其值设置为空: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Memory Management\PagingFiles 如果您的注册表包含ControlSet002和/或CurrentControlSet除了ControlSet001,请确保对它们进行相同的更改。 脱机编辑注册表 但是我们如何在不启动的情况下编辑注册表呢?有多种方法。您可以从现有的工作 Windows 机器或从 USB 甚至从 PXE 引导的 Windows 预安装环境 (WinPE) 临时挂载 iSCSI 卷。存在许多描述这些选项的指南。 为了脱机编辑注册表(即,编辑除运行 regedit 的系统之外的注册表): 正常运行regedit(“注册表编辑器”)。 点击HKEY_LOCAL_MACHINE。 转到“文件 > 加载 Hive...”。 浏览到离线 Windows 安装,然后选择文件Windows\System32\config\SYSTEM. 出现提示时,键入任意名称,例如“OFFLINE_SYSTEM”。 脱机注册表文件将出现在HKEY_LOCAL_MACHINE您选择的名称下的树中。您对其中的键所做的编辑通常会自动保存,但建议您在关闭 regedit 之前明确卸载脱机配置单元以确保(请参阅下面的 Harry Johnston 的评论)。这是一个非常奇怪的 UI,但显然它是这样完成的。 Domel 2020-11-18T06:43:48+08:002020-11-18T06:43:48+08:00 值得一提的是,页面文件在 Windows 10 上运行没有任何问题,直到编译 1703。不过,更新到较新版本或全新安装较新版本默认失败 - 如上所述。 @KentonVarda 关闭页面文件的建议是有效的,但我采取了另一种方式,而不是离线注册表编辑。 我已经设法通过首先将 Windows 安装到本地 SSD 驱动器来解决这个问题。然后我启动它,禁用虚拟内存并使用 SysInternals 的名为 Disk2VHD 的工具(可在 Microsoft 网站上获得https://docs.microsoft.com/en-us/sysinternals/downloads/disk2vhd)在工作时从实时系统中创建 VHDX 文件。然后在 iSCSI 目标上使用生成的 VHDX,瞧,它通过 iSCSI 引导没有问题。 我目前知道的在 iSCSI 引导的机器上拥有工作页面文件的唯一解决方法是拥有一个仅用于页面文件的本地物理磁盘。
当系统页面文件位于 iSCSI 设备上时,就会出现这种情况。虽然在 iSCSI 上定位页面文件在 Windows 7 下工作正常,但在 Windows 10 中似乎已损坏。不幸的是,Windows 默认在主磁盘上设置页面文件,因此当主磁盘是 iSCSI 时,它会损坏 -开箱即用。
(请注意,尽管包含“page”一词,但停止代码通常不一定
PAGE_FAULT_IN_NONPAGED_AREA
与系统页面文件相关。这个停止代码更像是NT内核版本的“Segmentation Fault”,一般是无效的内存访问。但是,在我的具体情况下,巧合的是它与页面文件有关。)我能够通过完全禁用页面文件来解决问题。(它也可以在本地磁盘上找到页面文件,如果存在的话,但是在没有页面文件的情况下启动并运行操作系统后,这更容易配置。)
离线禁用页面文件
由于您的机器不可启动,因此您无法通过 UI 禁用页面文件。幸运的是,通过注册表禁用页面文件很容易。为此,请找到以下注册表项,并将其值设置为空:
如果您的注册表包含
ControlSet002
和/或CurrentControlSet
除了ControlSet001
,请确保对它们进行相同的更改。脱机编辑注册表
但是我们如何在不启动的情况下编辑注册表呢?有多种方法。您可以从现有的工作 Windows 机器或从 USB 甚至从 PXE 引导的 Windows 预安装环境 (WinPE) 临时挂载 iSCSI 卷。存在许多描述这些选项的指南。
为了脱机编辑注册表(即,编辑除运行 regedit 的系统之外的注册表):
regedit
(“注册表编辑器”)。HKEY_LOCAL_MACHINE
。Windows\System32\config\SYSTEM
.脱机注册表文件将出现在
HKEY_LOCAL_MACHINE
您选择的名称下的树中。您对其中的键所做的编辑通常会自动保存,但建议您在关闭 regedit 之前明确卸载脱机配置单元以确保(请参阅下面的 Harry Johnston 的评论)。这是一个非常奇怪的 UI,但显然它是这样完成的。值得一提的是,页面文件在 Windows 10 上运行没有任何问题,直到编译 1703。不过,更新到较新版本或全新安装较新版本默认失败 - 如上所述。
@KentonVarda 关闭页面文件的建议是有效的,但我采取了另一种方式,而不是离线注册表编辑。
我已经设法通过首先将 Windows 安装到本地 SSD 驱动器来解决这个问题。然后我启动它,禁用虚拟内存并使用 SysInternals 的名为 Disk2VHD 的工具(可在 Microsoft 网站上获得
https://docs.microsoft.com/en-us/sysinternals/downloads/disk2vhd
)在工作时从实时系统中创建 VHDX 文件。然后在 iSCSI 目标上使用生成的 VHDX,瞧,它通过 iSCSI 引导没有问题。我目前知道的在 iSCSI 引导的机器上拥有工作页面文件的唯一解决方法是拥有一个仅用于页面文件的本地物理磁盘。