有很多教程/说明在那里如何对除启动之外的 Windows (Vista+) 安装进行 SFC 扫描,例如
Sfc.exe /ScanNow /OffBootDir=E:\ /OffWindir=D:\Windows /OfflogFile=E:\OffBoot.log
我的问题是,文档对于以下内容的含义不太清楚/OffBootDir
:
/OFFWINDIR For offline repair, specify the location of the offline windows directory
/OFFBOOTDIR For offline repair, specify the location of the offline boot directory
我明白OFFWINDIR
,但这到底OFFBOOTDIR
应该指向什么?BCD 存储所在的驱动器?还是其他?
(有一个看似相关问题楼主把 DISM 和 SFC 搞混了。DISM 和 SFC不要做同样的事情;我不想用 DISM 扫描图像。我这样做了,没问题。我实际上是在问 SFC 扫描“完全提取”的文件,所以请不要用 DISM 回答。)
更具体地说,我有两个 Win 10 安装,版本相同但分区/驱动器号不同,并且它们的 BCD 位于第三个驱动器号/分区上。其中一个 Win 10 安装不再启动,它处于 [in] 著名的黑屏,鼠标箭头可移动但光标无限旋转(并且大写锁定每 10 秒左右闪烁一次)。我正在尝试从健康/正常工作的 Win 10 安装对其进行 SFC 扫描。
我可以从内部扫描正在运行的 Win 10 安装,没有问题sfc /verifyonly
,sfc /scannow
也没有出现任何错误或麻烦。
但是指向OFFWINDIR
BCD 驱动器或“死”的 Win 10 安装驱动器,我在(两个)日志(模数日期)中得到了完全相同的错误,例如
0000129a@2020/7/1:16:02:35.036 (F) onecore\base\wcp\sil\fs_rerooted.cpp(424): Error c0000039 [Error,Facility=(system),Code=57 (0x0039)] originated in function Windows::Rtl::SystemImplementation::CRerootedFileSystemProvider::SysCreateFile expression: (null)
通过比较两个日志发现。由于它抱怨CRerooted
,我怀疑它offbootdir
不喜欢... (我懂了其他人遇到了同样的错误,但没有真正的答案,那是什么。)否则驱动器安装正常,我可以看到文件。
对于chkdsk
“死机”(意味着永远旋转)的安装驱动器,只会出现一些(主要是 AppCrash)错误,毫无疑问这是由于我不得不强制关闭电源造成的:
62386 reparse records processed.
Index entry Report.wer in index $I30 of file C801 is incorrect.
Index entry Report.wer in index $I30 of file C831 is incorrect.
Index entry Report.wer in index $I30 of file C8A1 is incorrect.
Index entry Report.wer in index $I30 of file C8BF is incorrect.
Index entry Report.wer in index $I30 of file C915 is incorrect.
Index entry Report.wer in index $I30 of file C9A3 is incorrect.
Index entry Report.wer in index $I30 of file C9B5 is incorrect.
Index entry Report.wer in index $I30 of file C9C3 is incorrect.
Index entry AP1CC0~1.EXE in index $I30 of file 662D5 is incorrect.
Index entry AP1D30~1.EXE in index $I30 of file 662D5 is incorrect.
Index entry AP4032~1.EXE in index $I30 of file 662D5 is incorrect.
Index entry APA3A9~1.EXE in index $I30 of file 662D5 is incorrect.
Index entry APA768~1.EXE in index $I30 of file 662D5 is incorrect.
Index entry AppCrash_dwm.exe_602785ff1ad84b4251fd4d4d968a49205c4997_25529819_50b89d74-3097-4aa9-b867-7c9c3c5dae6a in index $I30 of file 662D5 is incorrect.
Index entry AppCrash_dwm.exe_602785ff1ad84b4251fd4d4d968a49205c4997_25529819_58d875dd-29ab-429e-ba1f-82d14fd237d5 in index $I30 of file 662D5 is incorrect.
Index entry AppCrash_dwm.exe_602785ff1ad84b4251fd4d4d968a49205c4997_25529819_e0e33150-ba5c-471f-98be-c25484e60dae in index $I30 of file 662D5 is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_29c4cfb1-f7d8-4751-819a-ed51573d6a5e in index $I30 of file 662D5 is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_37ed6e37-8e90-4d53-b676-414831b028a4 in index $I30 of file 662D5 is incorrect.
Index entry AP29BE~1.EXE in index $I30 of file 662FC is incorrect.
Index entry AP2A31~1.EXE in index $I30 of file 662FC is incorrect.
Index entry AP4213~1.EXE in index $I30 of file 662FC is incorrect.
Index entry AP5D1D~1.EXE in index $I30 of file 662FC is incorrect.
Index entry AP6F64~1.EXE in index $I30 of file 662FC is incorrect.
Index entry AP8027~1.EXE in index $I30 of file 662FC is incorrect.
Index entry AP8B28~1.EXE in index $I30 of file 662FC is incorrect.
Index entry APB701~1.EXE in index $I30 of file 662FC is incorrect.
Index entry APD8D4~1.EXE in index $I30 of file 662FC is incorrect.
Index entry APD90D~1.EXE in index $I30 of file 662FC is incorrect.
Index entry AppCrash_dwm.exe_602785ff1ad84b4251fd4d4d968a49205c4997_25529819_3c6809aa-e39d-4112-80ed-d9c20f6429b4 in index $I30 of file 662FC is incorrect.
Index entry AppCrash_dwm.exe_602785ff1ad84b4251fd4d4d968a49205c4997_25529819_ebccbc17-b8e5-4ab9-a4f5-738a3378fdf7 in index $I30 of file 662FC is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_08a0074d-89ad-4ae3-a2fe-cc8d74833eb9 in index $I30 of file 662FC is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_195a3824-35fa-4eeb-90f5-cd80e543becf in index $I30 of file 662FC is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_1c50c522-08b8-460e-8f9e-e0d0d09202ac in index $I30 of file 662FC is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_74d589b1-3d92-49fe-bf0b-e6d62a4912b8 in index $I30 of file 662FC is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_8a604bac-dde8-4835-bfb4-c0006a6af03c in index $I30 of file 662FC is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_db10a313-935a-4127-b193-d9fa596ee322 in index $I30 of file 662FC is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_eccb09a4-0826-4648-a1ac-418df36f1328 in index $I30 of file 662FC is incorrect.
Index entry AppCrash_LogonUI.exe_663467edba6d197a625e1e79c1e876af21ec6c_6f8885ad_f1607dcd-f286-4ce4-abbe-a923d06cb11b in index $I30 of file 662FC is incorrect.
662946 index entries processed.
我能够使用AppCrashView
加载崩溃的操作系统报告(带有/ReportsFolder
并/ProfilesFolder
指向“死机”的 Win10 上的相应目录)。看来这是\WINDOWS\system32\sihost.exe
导致 appcrash(报告)错误代码为 的原因0x80270234
。实际上,这只是成功进入存档的一个,其他的都在 中WER\ReportQueue
,一大堆,因为 dwm 周期性崩溃:
但是,当其他工具似乎都可以运行的时候,这对于弄清为什么sfc
拒绝在“死”操作系统上运行并没有多大帮助。
好的,我已修复了启动时出现的几个磁盘错误chkdsk /f
。但这并没有说服 sfc 完成其工作。
最有趣的是,我现在修复了底层问题,所以两个 Win 10 实例现在都可以正常启动了……但是 sfc仍然无法扫描离线安装,即使它 100% 正常且可启动。
无法正常工作的安装有一个错误的 HKLM/MountedDevices,我通过加载配置单元并更改映射“离线”修复了该问题。(我意识到 appcrash 报告中的自映射不是 C:。)但即使这样做了,“离线”sfc 仍然拒绝工作(出现相同的错误),尽管更改后安装可以正常启动,我可以sfc /scannow
从其中运行。(未报告任何错误。)
所以在我看来,离线 sfc 扫描更多的是理论性的,而不是实际可用的。我把这个问题留作一个开放的问题,以防有人确切知道 sfc 离线发生了什么。