双引导系统下的 VeraCrypt 配置 (original) (raw)

对于笔记本电脑这种时常会携带外出的电子设备,基本的安全考量是必不可少的,而应用全盘加密(Full Disk Encryption)便是其中一个避免个人资料泄漏的重要措施。本文将简述如何在 Win Linux 双引导系统下使用 VeraCrypt 的配置技巧。

注意事项

开源的 VeraCrypt 继承自 TrueCrypt ,支持 Win、OSX、Linux 和 FreeBSD 系统,且包含适用于 Raspberry Pi 的 ARMv7 版本。本文以常见的 Win 和 Linux 双引导系统配置为例说明,但其思路同然适用于其他多系统共存时的组合。 由于当前所有主流 Linux 发行版配置的 GRUB2 引导器并不支持从 VeraCrypt 加密的根分区上引导系统,且主流 Linux 发行版都推荐使用 Linux 系统分区将使用 LUKS dm-crypt 的加密框架实现全盘加密方案,所以 VeraCrypt 将仅用于 Win 系统分区以及共享数据分区的加密。

另本文着眼于场景和目的为“普通民众在设备遗失的情况下避免未授权的第三方对于私人数据的访问”,不涉及 VeraCrypt 包含的为其他场景设计的高级功能。

VeraCrypt 与 BitLocker 比较

Win 系统本身提供了 BitLocker 的加密方案,和第三方提供的 VeraCrypt 有和不同呢?

值得提醒的是搜索引擎中相关主题结果排名靠前的教程、提问和视频中的情况多为三四年前的状况,其中结论已经不再能反映当下情况了。VeraCrypt 近些年来增加了对于 Secure Boot 和 UEFI 的支持,对于近期的设备来说进行多系统引导的支持已经不是问题了。经过笔者几日来使用虚拟机和物理机多次实践,下面为加密 Win 系统分区时所需要注意的配置要求。

在 UEFI 系统上的推荐步骤

VeraCrypt Dualboot configure

在 UEFI 系统上修复引导错误

如果在上述系统分区加密向导过程中,在"操作系统数目"步骤参考了网上视频教程选择了“单系统”的话,在重启之后将无法使用 GRUB2 启动菜单的 Win 项目正确进入系统。究其原因,是 VeraCrypt 安装的 EFI 启动器以单系统下“先 VeraCrypt 后 Win 启动器”的方式配置。于是这里需要为 GRUB2 创建指向 VeraCrypt 启动器的条目。由于 os-probe 并不能正确识别加密的 Win 分区和 VeraCrypt 启动器,这个步骤需要手动完成:

之后重新启动后,便可在 GRUB 菜单中看到新近添加的条目,选择其将先启动 VeraCrypt 启动器,输入密码后再引导 Win 系统开机。

在 Linux 系统下自动挂载 VeraCrypt 加密分区

无论是使用 VeraCrypt 加密的 Win 系统分区还是共享数据分区,都可以通过 Linux 下的 VeraCrypt 客户端进行在登录系统后进行手动挂载。如果有需要的话,也可以配置自动挂载以方便使用。

使用 cryptsetup 和 fstab 进行自动挂载

在 cryptsetup 1.6.7 之后的版本增添了对于 VeraCrypt 格式的加密分区的有限支持,对于常用的单次 AES 加密和 SHA 哈希算法支持良好。这意味着可以复用 Linux 原生的 LUKS 框架实现自动挂载,这里带来的便利是若 VeraCrypt 加密分区与 Linux LUKS 加密分区使用同样的密码,无需在启动后再次输入。

由于 systemd 已经包含了针对 fstab 的自动生成器,无需像部分网上教程再额外为此声明。

使用 VeraCrypt 客户端文本模式和 systemd 进行自动挂载

如果使用非 cryptsetup 支持的加密或者哈希算法,或者使用了层叠式加密的话,启动时自动挂载便只能使用 VeraCrypt 客户端的文本非交互模式实现了。为了实现该目的,需要利用的 VeraCrypt 命令行参数有:

组织好 veracrypt 的参数后只需要将其以任意方式在开机时执行即可,最简单的方法是利用 systemd 的 SystemV 的兼容模式,创建 /etc/rc.d/rc.local 文件并放入其中,这样借助 systemd 自动生成器的帮助它会在所有启动项目的最后执行。然而相信大多数采取此种方式的都是使用非常见算法或者层叠式加密的,这些算法在大多数硬件上由于没有硬件指令集的协助,处理速度都比较慢,所以最好是在启动过程中更早的阶段开始执行了,于是这里推荐创建 system unit 文件并安装至 multi-user.target 的方式实现自动时自动挂载,参考其 systemd.unit man 手册实现即可,不再赘述。

使用 VeraCrypt 客户端 GUI 模式在登录桌面后自动挂载

借鉴其 Win 系统下的思路,对于以图形界面为主且未使用 LUKS 对系统盘加密的工作站环境配置,可以配置在登录后的自动挂载使用 VeraCrypt 加密的数据卷:

这样在下次登录至图形界面后,VeraCrypt 会自动启动并询问管理员密码和密码以挂载加密卷。

总结

其实如果追求安全的话,不使用 Win 系统是最省心的,或者在全盘加密的 Linux 系统下使用虚拟机了。不过如果您无论出于什么原因仍需要维护一个双引导的环境的话,那么通过本文的介绍使得您能有效的运用 VeraCrypt 来保护个人数据安全。

# Tagged as grub, veracrypt · Edit on GitHub