之前我的电脑启动突然出现inaccessible boot device,而且系统还是新安装的,所以这事情显得非常诡异。
出现故障后,我随即用DISM++检查了下系统映像完整性,结果没有任何问题。既然报错是启动设备不可访问,那么就说明大概是从EFI启动之后就被停止了,根本不能正确访问系统分区。不过在PE里面能用DISM++访问,说明实际上设备是没问题的。
比较有趣的是,我发现用Windows自带的磁盘检查功能,会导致DISM++再也无法识别系统为有效的系统映像。
既然两个“硬”的都没问题(磁盘和系统文件本身),显然那就是文件里面的配置有问题了。
既然是磁盘设备不可访问,这时候我就怀疑是NVME磁盘驱动故障了。在中文网络上用NVMe驱动搜索了一圈,基本上是给Windows7添加NVMe驱动,或者如何如何操作注册表,然后我发现至少之前的文章对我没什么用处。
但是这个思路是绝对没问题的。
现在说下更多背景信息。
在这次系统之前的几天,电脑上安装过Acronis True Image 2025,然后我选了iobit卸载。iobit提示需要重启之后才能卸载,于是等了两天我才重启。再次重启就立即出现不可访问启动设备错误。
所以很明显吧,是否有办法操作让NVMe驱动正常化呢?或者是否有其他方法呢?
我将我的背景和思路输入哈基米,果然马上就得到了方案。这次也算是写下来,对其他人也许有点启发。
核心思路:#
ATI会默认给磁盘加载他们的自定义驱动,这个驱动如果缺失或者出问题,就会导致系统无法读取(NVMe)磁盘,报错inaccessible Boot Device是非常正常的。
解决思路,是从注册表中删除ATI相关驱动的引用,让Windows重新使用默认NVMe驱动即可。
具体方法#
在PE启动盘中,选择注册表编辑器,选择HKEY_LOCAL_MACHINE,选择菜单加载配置单元,输入某个挂载点,然后读取原来磁盘系统盘的\Windows\System32\config ,在该文件夹中寻找SYSTEM 文件。
该文件是注册表数据库的实体文件。
在这份注册表数据库中定位到:HKEY_LOCAL_MACHINE\OfflineSys\ControlSet001\Control\Class{4d36e967-e325-11ce-bfc1-08002be10318}
在右侧窗口寻找名为 UpperFilters 和 LowerFilters 的多字符串值。
如在这两项的值里面发现:snapman、fltsrv、vsflt、tib_mounter 任一,或者其他ATi相关,直接删除,注意每行一个值。
如果发现:partmgr ,这是系统默认值,必须保留。
再次定位到:HKEY_LOCAL_MACHINE\OfflineSys\ControlSet001\Control\Class{71a27cdd-812a-11d0-bec7-08002be2092f} 在右侧寻找 UpperFilters 和 LowerFilters 两项。
如在这两项的值里面发现:snapman、fltsrv、vsflt、tib_mounter 任一,或者其他ATi相关,直接删除,注意每行一个值。
必须保留的默认值:volsnap
以下值也是系统默认值,不可删除:
fvevol: BitLocker 驱动器加密过滤驱动。
iorate: I/O 速率控制过滤驱动。
rdyboost: ReadyBoost 过滤驱动(用来做缓存加速的)。
现在点击注册表编辑器的“卸载配置单元”,保存重新开机。
如果出现Windows RE,选择继续启动试试。如果还是不行,进入Windows RE,选择“卸载更新”,卸载功能更新之后重启继续点 继续启动“等等试试。
我就是这样顺利进入了系统,希望对你有帮助。
注意:修改注册表之前建议直接备份system注册表实体文件。如果出了问题直接回滚文件即可。