Windows 10 更新 1511 使用 DiskCryptor 整盘加密失败

Windows 10 更新 1511 使用 DiskCryptor 整盘加密失败

我在 Windows 10 上运行 DiskCryptor 全盘加密系统。最新的 Windows 10 更新安装失败。当我重新启动系统以安装更新时,我收到以下事件序列:

  • 我输入 DiskCryptor 密码来解锁磁盘
  • Windows 更新要求输入键盘布局
  • 不久后 Windows 更新失败

如果我继续推进该过程,我会收到一条消息,表明该过程无法继续,因为一个或多个文件已被锁定。

我的同事也在他的系统驱动器上使用 DiskCryptor,并且有相同的经历。

所以:

  • 这是否是整个磁盘加密的一个已知问题?
  • 这是 DiskCryptor 特有的问题吗?
  • 如果是这样,这是 MS 需要修复的一个错误还是需要解决方法?

答案1

这似乎是全盘加密软件普遍存在的问题(可能 MS 自己的 BitLocker 除外)。VeraCrypt 协调员本人表示:

Windows 10 版本 1511,内部版本 10586 更新失败

TrueCrypt 也会遇到同样的问题。这个特定的 Windows 更新似乎禁用了用于即时加密的过滤驱动程序,如果 Windows 使用 TrueCrypt 加密,它也会失败。TrueCrypt 驱动程序中没有什么神奇的东西可以阻止这种情况。

微软在更新安装程序中做了一些令人讨厌的事情。VeraCrypt 驱动程序按预期工作,但此安装程序在更新系统的过程中明确阻止了它。通过这样做,微软正在破坏 Bitlocker 和微软合作伙伴以外的 FDE 软件。

向 Microsoft 报告此问题的最佳方式是什么?显然,在 VeraCrypt 上,我们缺乏人力来进一步调查更新安装程序造成的这种深度内核阻塞。

解决方法在单独的论坛帖子

在执行任何操作系统升级之前,您必须解密系统加密。

此外,Windows 10 11 月更新需要解密操作系统才能应用 Windows 10 1511 更新。通常这不是必需的。

笔记:在开始操作系统升级之前,请卸载并断开连接到 PC 的任何外部加密卷。我过去曾看到用户抱怨 Windows 操作系统升级将加密驱动器/分区视为 RAW 格式,而 Windows 试图通过自动快速格式化分区并分配驱动器号使其可供 Windows 使用来提供帮助。


更新:为了结束循环,我执行了以下步骤,没有任何不良影响。一如既往,先备份!! 我不需要我的备份,但我不能保证你不需要你的备份;)。

  1. 解密系统驱动器(最有可能是 C:)
    • 我有一个辅助硬盘(D:)
    • 这个 D: 驱动器也已加密
    • 我没有解密我的 D: 盘
  2. 应用 Windows 更新
    • DiskCryptor 引导程序仍然会在每次重启时提示我输入密码
    • 我直接按了 [Enter] 键,不需要输入任何密码,机器就启动了
  3. 重新加密系统驱动器

关于加密的 D: 驱动器(辅助驱动器)的简要说明:

当 Windows 10 启动时,如果 C: 驱动器仍未加密,请务必小心。在这种情况下,D: 驱动器不会在启动时自动挂载。如果您双击 D: 驱动器,Windows 将无法识别它并会提示您对其进行格式化。要挂载驱动器,您需要打开 DiskCryptor,选择 D: 驱动器,单击 [挂载],然后输入密码。

Windows 没有自动地格式化我的辅助驱动器,但我很容易不小心这样做。请小心操作!

答案2

我意识到这个线程有点旧了,但是为了搜索者的利益...DiskCryptor 的存在会阻止 Windows (10) 1709(至少)更新,而不会报告任何特定的相关错误 - 最后只会出现蓝屏并重新安装旧版本...无论 DiskCryptor 驱动器是否实际安装都无关紧要。

简单的解决方案是卸载 DiskCryptor,运行更新并重新安装 - 在我研究了多天系统无法更新的原因后,这​​个解决方案对我来说很有效。

但在安装更新后,至少在 Creators 更新中,已安装驱动器的行为发生了变化。关闭 Windows 时,已安装的卷不再被卸载。事实上,如果安装了任何 DiskCryptor 驱动器,DiskCryptor 似乎会阻止 Windows 关闭,并且工作站只是进入睡眠状态(如果您不注意,可能不会注意到)- 唤醒时,驱动器仍然处于安装状态!我在两台装有 Win 10 家庭版的联想笔记本电脑和一台装有 Win 10 企业版的台式机上对此进行了测试 - 没有区别。希望这对某些人有所帮助,我希望 Windows 能快速修补这个问题 - 除非意图强制移动到 BitLocker :( 顺便说一句,当我用 TrueCrypt 测试它时,这种新行为并不存在。驱动器在关机时自动卸载。

答案3

我发现了 DiscCryptor 和 GPT 磁盘的另一个问题。

我在同一个 GPT 磁盘上安装了多个 Windows 32 位(从 Vista 到 10 的所有家庭版本)(唯一存在的磁盘,它是一台只有 BIOS 而没有 U-EFI 的笔记本电脑);是的,是的,它只有 BIOS,并且磁盘是 GPT,有 4 个以上的主分区,所有分区都是 GPT,除了一个用于 Grub2 core.img 的小 8MiB RAW GrubBIOS……是的,是的,Windows 32 位;请记住,Windows 不会从任何非 MBR 磁盘启动,我不喜欢混合 GPT+MBR,我更喜欢 Grub2+MemDisk+VHD 小文件(32MiB 或更少)。

我的磁盘是 100% GPT,系统的每个 Windows 都有一个 GPT NTFS 分区(其中有 WINDOWS 文件夹,但没有 NT60 启动代码和 BCD),它还有一个额外的 NTFS 分区用于 Grub2、MemDisk 和 VHD 文件(否则 32 位 Windows 将无法从 GPT 磁盘启动,又名 BIOS + GPT 磁盘上的 32 位);VHD 文件是固定大小的(只是为了让 memdisk 在 RAM 上模拟它们),内部有一个 MBR 磁盘,该磁盘只有一个 32MiB NTFS 分区,其中包含该特定 Windows 的 NT60 启动代码和 BCD;每个 Windows 一个 VHD。

这是我在 GPT 磁盘上进行测试的一个示例(所有 Windows 都是 32 位和家庭版,没有专业版,没有企业版,没有服务器版,100%合法):

  • 第一个扇区 = Grub2 启动代码 + GPT 保护
  • GPT1 = 8MiB RAW GrubBIOS(其中 Grub2 将 core.img 放在 RAW 中)
  • GPT2 = 1GiB NTFS 用于 Grub2 文件 + MemDisk + VHD 文件
  • GPT3 = 适用于 32 位 Windows Vista SP2 系统的 NTFS(Windows 文件夹等)
  • GPT4 = 适用于 32 位 Windows 7 SP1 系统的 NTFS(Windows 文件夹等)
  • GPT5 = 适用于 32 位 Windows 8 系统的 NTFS(Windows 文件夹等)
  • GPT6 = 适用于 32 位 Windows 8.1 系统的 NTFS(Windows 文件夹等)
  • GPT7 = 适用于 32 位 Windows 10 系统的 NTFS(Windows 文件夹等)
  • GPT...等等...

每个 VHD 大约有 32MiB 的虚拟 MBR 磁盘,如下所示:

  • 第 1 扇区 = Nt60 引导代码 + MBR 分区表
  • MBR.1 = 主 NTFS 32MiB(BCD 内容所在位置)
  • MBR.2 = -空-
  • MBR.3 = -空-
  • MBR.4 = -空-

每个窗口一个 VHD 文件(用于隔离引导加载程序和 BCD)。

如果我想将所有这些都放在 MBR 上(它限制为 3 个主窗口 + 1 个扩展窗口),我只能放 3 个 Windows(Grub2 可以放在扩展窗口内的逻辑窗口上),这 3 个主窗口将是具有每个 BCD 内容的窗口(隔离每个窗口的 BCD)...如果我允许所有 Windows BCD 放在同一个分区上,我可以放置任意数量的 Windows,但它们都将共享 BCD,因此启动菜单将是由 Windows 呈现的菜单,它们不会被隔离,其中一个触及这样的 BCD 的故障将破坏所有其余窗口的启动,等等,更不用说我还想要加密。

通过 GPT + Grub2 + MemDisk + VHD 文件,我得到了我想要的东西(加密除外),100% 将每个 Windows 与其余 Windows 隔离。

我想要 BIOS 而不是 U-EFI,主要有三个原因:

  1. 我希望 100% 的 HDD(除了第一个扇区、GPT 表和磁盘末尾的 GPT 表的第二个副本)都加密...仍然在研究如何加密我用于 Grub2 + MemDisk + VHD 文件的分区...我曾考虑为每个 VHD 文件创建一个额外的分区...这样一个分区将像系统一样加密,然后使用 LUK 对 Grub2 进行加密(在执行 grub2-install 时使用模块参数)。
  2. 我的笔记本电脑没有 U-EFI,只有 BIOS
  3. 我的硬盘大于 2TiB(MBR 仅允许使用最多 2TiB,其余部分将丢失)

回到 DiskCryptor 的问题,如果我加密启动的 Windows GPT 分区(WINDOWS 文件夹所在的位置),将启动代码放在另一个虚拟 MBR 磁盘上(位于 VHD 文件内),启动后它会要求输入密码,但总是显示“密码无效”的错误。

但是,如果我不加密启动的 Windows GPT 分区(WINDOWS 文件夹所在的分区),而只加密 BCD 所在的分区(位于 VHD 文件内的虚拟 MBR 磁盘内的分区),则在启动时它会要求输入密码,如果密码正确,它会完美启动 Windows(除了它不会自动挂载 BCD 的虚拟磁盘分区,我必须手动挂载它...必须看看我是否让它自动挂载),但 Windows 运行良好。

如果我对它们两个都进行加密(使用相同的密码),那么 Windows bootmbr 就会加载,但它会显示在蓝色背景和白色文本图形屏幕中无法找到 winload.exe。

当我仅加密 MBR 部分时,可能无法自动挂载,因为 VHD 文件连接不够早...也许缓存密码并在登录时运行 DiskkCryptor 可以解决这个问题,因为 VHD 连接是在登录前的任务计划中完成的...如果有时间我一定要测试一下。

似乎 DiskCryptor 不支持在不同的磁盘上拥有“系统保留”或任何你想叫它的名字(NT60 启动代码和 BCD 内容所在的位置),或者至少在 Windows 32 位位于 GPT 分区(WINDOWS 文件夹所在的位置)时不支持...因为加密虚拟 MBR 效果很好,但加密 GPT 分区会导致不同类型的错误!

我将重新尝试更多选项,例如创建 ISO 并使用它来启动等。

谢谢,我有多个 Windows,我用另一个启动,安装 DiskCryptor,重新启动并尝试安装 GPT,它安装正常,所以我解密它,并修复无法启动它的大问题,直到我找到解决方案,我会在 VirtualBOX 机器上做更多测试,然后再用我的笔记本电脑引导...我希望 DiskCryptor 在我这样做之前会警告我...但至少我知道我在做什么,我知道从其他窗口启动我可以解密,我还有克隆备份等。

也许我错过了什么!也许我没有完全理解如何启动或将 DiskCryptor 引导程序放在哪里、如何配置它等等。

请记住,我想在同一个 GPT 磁盘上安装 4 个以上的不同 Windows Home 32 位,我希望它们 100% 隔离,包括启动代码、BCD 和类似的东西……没有其他选择……GPT 是强制性的……我还希望使用不同的密码加密它们,不仅是系统(Windows 文件夹所在的位置),还有启动分区(BCD 所在的位置),加密 Grub2 对我来说很容易,所以为了不让事情变得复杂,我会使用它而不加密,直到我找到可行的解决方案。

我以为保护启动分区(BCD 所在的位置)比保护系统(WINDOWS 文件夹所在的位置)本身要困难得多,但我发现事实恰恰相反。

我必须测试、测试、再测试……也许我找到了方法。

是的,如果有人想到它们,我尝试过 TrueCrypt 和 VeraCrypt,两者都有更大的问题,TrueCrypt 不允许 GPT 系统加密,而 VeraCrypt 假设 GPT 磁盘仅用于 U-EFI,因此在尝试备份 U-EFI 内容时会失败,无论我是否放置 EFI 分区,由于机器没有 EFI 变量(仅 BIOS,没有 U-EFI)它都会失败。

启动(未加密)如下,开机,BIOS 运行,BIOS 读取磁盘第一个扇区,找到 Grub2 引导加载程序代码,运行它,读取 RAW GrubBIOS(core.img)并运行它,Grub2 执行其工作(读取 grub.cfg 文件)并显示菜单,我选择要启动的系统,然后 Grub2 加载 memdisk 并在虚拟硬盘中放入相应的 VHD 映像并跳转到它,运行 MBR 上的代码(NT60 代码),然后加载并运行 bootmgr,然后 winload.exe,等等... 正常的 Windows 启动...然后我的计划任务在 SYSTEM 帐户上启动,连接了同一个 VHD,现在可以访问 BCD,出现登录提示,我选择用户,等等... 正常的 Windows 继续...出现桌面。

所有启动都是从同一个 HDD 完成的,它采用 GPT 样式,诀窍是在启动 Windows 之前我安装(使用 Grub2 + memdisk + VHD 文件)一个虚拟 MBR 磁盘,其中包含 nt60 启动代码和 BCD,这样 Windows 实际上是从它所知道的 MBR 磁盘启动,但它是一个存储在文件中的虚拟磁盘,存储在 GPT 分区中,另一个好技巧要感谢 Grub2,它允许在仅有 BIOS 的 PC 上从 GPT 磁盘启动。

希望有人能重现我的启动过程并测试 DiskCryptor。也希望有一天 VeraCrypt 不会假设 GPT = U-EFI。

为了创建 VHD,我使用了 Windows 中的 DiskPart;从 Windows 安装媒体启动并进入控制台(选择语言后按 Shif+F10)并使用 DiskPart 后,也可以创建、安装、访问等。

感谢 DiskCryptor,我离我想要的有点近了,但仍然没有到达,只差一小步......启动 Windows!

下一部分将从 SystemRescueCD(Linux Live 发行版)安装 DiskCryptor,但这将是一个非常困难的故事。

相关内容