Windows/Linux 双启动全盘加密

Windows/Linux 双启动全盘加密

我在 256Gb SSD 上安装了未加密的 Windows10/Manjaro 双启动系统,外加一个 1Tb HDD,用于存储大部分数据。

分区的组织方式如下:

1Tb HDD :    
 |_ sda1 : exFAT partition, readable by both W$ and Linux

256 Gb SSD : 
 |_ sdb1 : EFI system boot partition
 |_ sdb2 : Microsoft reserved partition
 |_ sdb3 : NTFS Windows system partition
 |_ sdb4 : NTFS Windows recovery partition
 |_ sdb5 : ext4 / partition for Linux
 |_ sdb6 : ext4 /home partition for Linux
 |_ sdb7 : linux swap

引导加载程序是 GRUB,允许我在两个系统之间进行选择。

我正在寻找一种方法来加密两个硬盘驱动器,并通过在 GRUB 之前输入密码来解密它们。当然我想保留现有的分区,事实上两个系统都可以读取 1Tb HDD 的内容,并且不会破坏 GRUB(如果可能的话)

我已经检查过适用于 Windows 的 Veracrypt 和适用于 Linux 的 LUKS,但 Veracrypt 似乎会破坏 GRUB 并仅加密 Windows,而 LUKS 仅适用于 Linux。

答案1

您将需要使用不同的 Windows/Linux 系统加密,然后使用带有 veracrypt 的通用数据分区,可能还有 fat 或 ntfs(据我所知,由于强制驱动程序签名,Windows 不再有 ext 驱动程序。NTFS 不是最好的) Linux 的选择,但在 Windows 中可能有优势)。

如果您想使用 veracrypt 加密 Windows,则需要将其安装在分区而不是硬盘驱动器引导加载程序部分,并从 grub 链加载它。

另一种可能更容易的选择是对一个系统进行 FDE,然后将另一个系统(带或不带 FDE)放入虚拟机中。

答案2

加密软件在操作系统内部运行。您不能在操作系统之前加载磁盘加密软件。可能存在在 Linux 和 Windows 上运行的同名软件(例如 TrueCrypt/VeraCrypt),但它不是相同的代码。所以加密代码不能在Grub之前加载。只有在您选择操作系统并开始启动后才能加载它。

理论上,可以有一个引导加载程序阶段提示输入密码,然后通过内存将该密码传递给每个操作系统。但据我所知,这样的机制并不存在;它无法工作,因为传递参数的方法将使该参数在启动后可供用户使用,这对于密码来说是不利的。

只需在操作系统出现 Grub 提示后询问您时输入密码即可。无论如何,每次启动时您只需输入一次。

如何加密磁盘在 Windows 和 Linux 中的工作方式完全不同。如果您在安装时执行此操作,则最简单,但是在 Linux 上您可以使用卢克西普克(看是否有任何实用程序或程序可用于对我现有的实时数据进行 dm-crypt 以进行全磁盘加密)。如果您使用 luksipc,然后在 Linux 上设置加密,您需要运行sudo update-grubsudo update-initramfs,否则您的系统将无法启动。手边准备一张救援磁盘,因为很容易犯错误并导致系统无法启动。

相关内容