我发现DiscCryptor和GPT磁盘还有另一个问题。
我在同一GPT磁盘上有多个Windows 32位(从Vista到10的所有家用版本)(仅有的一个,它是一台仅具有BIOS的笔记本电脑,没有U-EFI);是的,是的,它仅是BIOS,磁盘是具有4个以上主分区的GPT,所有分区都是GPT,只有一个用于Grub2 core.img的小型8MiB RAW GrubBIOS。请记住,Windows不会从不是MBR的任何磁盘启动,我不喜欢Hybrid GPT + MBR,我更喜欢Grub2 + MemDisk + VHD小文件(32MiB或更小)。
我的磁盘是100%GPT,系统的每个Windows都有一个GPT NTFS分区(其中WINDOWS文件夹在其中,但NT60引导代码和BCD不在其中),它也有一个额外的NTFS分区,用于Grub2,MemDisk和VHD文件(否则无法从GPT磁盘启动32位窗口,也就是BIOS + GPT磁盘上的32位)。VHD文件是固定大小的(只是为了让memdisk在ram上模拟它们),并且内部有一个MBR磁盘,只有一个32MiB NTFS分区,其中有该特定Windows的NT60启动代码和BCD;每个Windows 1个VHD。
这是我在GPT磁盘上进行测试的示例(所有窗口均为32Bits和Home版本,没有Pro,No Enterprise,No Server,100%合法的东西):
- 第一个扇区= Grub2引导代码+ GPT保护
- GPT1 = 8MiB RAW GrubBIOS(其中Grub2将core.img放入RAW)
- GPT2 = 1 GiB NTFS用于Grub2文件+ MemDisk + VHD文件
- GPT3 =用于32位Windows Vista SP2系统的NTFS(Windows文件夹等)
- GPT4 =用于32位Windows 7 SP1系统的NTFS(Windows文件夹等)
- GPT5 =用于32Bits Windows 8系统的NTFS(Windows文件夹等)
- GPT6 =用于32Bits Windows 8.1系统的NTFS(Windows文件夹等)
- GPT7 =用于32Bits Windows 10系统的NTFS(Windows文件夹等)
- GPT ...等等
每个VHD都是arround 32MiB虚拟MBR磁盘,如下所示:
- 第一个扇区= Nt60引导代码+ MBR分区表
- MBR.1 =主NTFS 32MiB(BCD所在的位置)
- MBR.2 =-空-
- MBR.3 =-空-
- MBR.4 =-空-
每个窗口一个VHD文件(以隔离引导程序和BCD)。
如果我想将所有内容放到MBR(限于3个主要对象+ 1个扩展)上,我只能放3个Windows(Grub2可以放在扩展内部的Logical上),那3个主要对象将是每个BCD内容(隔离每个窗口的BCD)...如果我允许所有Windows BCD都位于同一分区上,则我可以放置任意数量的Windows,但是它们都将共享BCD,因此启动菜单将是一个通过Windows,它们将不会被隔离,如果其中一个接触到这样的BCD,则其中的一个失败将破坏所有其余部分的启动,等等,更不用说我也想要加密。
有了我想要的GPT + Grub2 + MemDisk + VHD文件(除了encyption),每个Windows与其余Windows 100%隔离。
我想要BIOS而不是U-EFI,主要有以下三个原因:
- 我希望100%的HDD(磁盘末尾的第一个扇区,GPT表和GPT表的第二个副本除外)进行加密...仍在研究如何对我用于Grub2 + MemDisk + VHD文件的分区进行加密...我曾考虑为每个VHD文件创建一个额外的分区...,以便将其按系统加密,然后使用LUK将Grub2加密(在执行grub2-install时使用modules参数)。
- 我的笔记本电脑没有U-EFI,仅BIOS
- 我的硬盘大于2TiB(MBR仅允许使用2TiB,其余部分丢失)
回到DiskCryptor的问题,如果我对启动的Windows GPT分区(WINDOWS文件夹所在的位置)进行加密,则在启动后,将启动代码放在另一个Virtual MBR磁盘(位于VHD文件内)中,要求输入密码,但是始终显示“无效密码”错误。
但是,如果我不对启动的Windows GPT分区(WINDOWS文件夹所在的位置)进行加密,而我仅对BCD所在的分区(VHD文件中的虚拟MBR磁盘中的分区)进行加密,则在启动时会要求输入密码如果正确,它将完美地引导Windows(除非它不会自动挂载BCD的虚拟磁盘分区,我必须手动挂载...必须查看是否可以将其自动挂载),但是Windows可以很好地工作。
而且,如果我用相同的密码对它们两者进行加密,则将加载Windows bootmbr,但它会告诉您在带有白色文本图形屏幕的蓝光背景下找不到winload.exe。
当我仅加密MBR部分时,可能会导致未自动挂载,因为VHD文件未及早连接...也许在登录时缓存密码并运行DisckCryptor可以解决该问题,因为VHD连接是在登录前的任务计划中完成的...我必须测试一下是否有时间。
DiskCryptor似乎不支持在其他磁盘上拥有“系统保留”或您想调用的名称(NT60引导代码和BCD所在的位置),或者如果Windows 32Bits位于GPT分区(其中WINDOWS文件夹)上,则至少不支持是)。由于已加密了虚拟MBR效果很好,但是已加密GPT分区会导致不同类型的错误!
我将重试更多的选项,例如创建一个ISO并以此启动等等。
谢谢,我已经使用Windows了,我用另一个启动,安装DiskCryptor,重新启动并尝试安装GPT,安装成功,所以我将其解密,并修复了无法启动thar的大问题,直到我找到一个解决方案,我将在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然后加载内存磁盘并将相应的VHD映像放入虚拟硬盘中并跳至该硬盘,运行该MBR上的代码(NT60代码),然后加载并运行bootmgr,然后运行winload.exe,等等...正常的Windows启动...然后在SYSTEM帐户上启动了我的Schedule任务,连接了相同的VHD,现在可以访问,登录了BCD出现提示,我选择用户,等等。。。普通的Windows继续。。。
所有引导均从同一HDD完成,并且采用GPT风格,诀窍是在引导Windows之前,我先安装了虚拟MBR磁盘(其中装有Grub2 + memdisk + VHD文件),其中nt60引导代码和BCD就是Windows实际上是从已知的MBR磁盘启动,但它是存储在文件中,存储在GPT分区中的虚拟磁盘,另一个不错的窍门是由于Grub2允许在仅BIOS的PC上从GPT磁盘启动。
希望有人可以重现我的启动过程并测试DiskCryptor。也希望有一天VeraCrypt不会假设GPT = U-EFI。
要创建VHD,我从Windows使用DiskPart。从Windows Install Media引导并进入控制台(选择语言后为Shif + F10)并使用DiskPart之后,还可以创建,安装,访问它。
谢谢DiskCryptor,我有点接近我想要的东西了,但是还不在那里,只有一点点...启动Windows!
下一部分将是从SystemRescueCD(Linux Live发行版)安装DiskCryptor,但这将是一个非常艰难的尝试。