/OFFBOOTDIR SFC 选项中的“脱机启动目录”指的是什么?

/OFFBOOTDIR SFC 选项中的“脱机启动目录”指的是什么?

有很多教程/说明在那里如何对除启动之外的 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 /verifyonlysfc /scannow也没有出现任何错误或麻烦。

但是指向OFFWINDIRBCD 驱动器或“死”的 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 离线发生了什么。

相关内容