我想将 dm-crypt 与 btrfs 一起使用,因为这个文件系统的 bitrot 保护。我担心的是 RADI1 位于 dm-crypt 之上的文件系统级别,所以如果我写一个文件,它将被加密两次。
HDD.x ⇄ dm-crypt.x ↰
btrfs-raid1 ⇒ btrfs
HDD.y ⇄ dm-crypt.y ↲
有没有办法只加密一次数据,例如通过dm-crypt.x
在两个 HDD 上存储完全相同的副本?(根据btrfs FAQ我需要 encryptfs 来做这样的事情:
HDD.x ↰
btrfs-raid1 ⇒ btrfs ⇄ ecryptfs
HDD.y ↲
但如果使用 btrfs RAID1 可能不会获得额外的性能损失,我宁愿使用 dm-crypt。
对于 BTRFS,目前没有直接集成这样的选项。过去在 BTRFS 邮件列表上曾讨论过添加对 VFS 加密 API 的支持(ext4 和 F2FS 用于透明文件加密的相同东西),但似乎从未有过。
目前,实现您想要的唯一方法是将复制放在 BTRFS 之外,这消除了 BTRFS 中校验和的大部分好处。eCryptFS 是一个选项,但它几乎总是比在 BTRFS 下使用 dm-crypt 慢。EncFS 可能是一种选择,但我对它的性能一无所知(虽然它也是基于 FUSE 的,并且作为一般规则,BTRFS 之上的 FUSE 层非常缓慢)。
作为所有这一切的替代方案,您可以考虑在常规 RAID 之上(通过 MD 或 LVM)使用更传统的文件系统,将其放在 dm-integrity 目标之上(它对存储的数据进行加密验证,本质上像 Android 和 ChromeOS 用于完整性检查其系统分区的 dm-verity 目标的可写版本一样工作),然后将其放在 dm-crypt 之上。这样做需要一个支持 dm-integrity 的内核(我不记得它是什么时候添加的,但它是在过去一年内),以及一个支持它的 cryptsetup 版本。这将为您提供与 AEAD 样式加密相同级别的完整性检查。不幸的是,为了提供与 BTRFS 相同的纠错能力,
以下设置描述了如何在同一驱动器上的单个 LUKS 容器内设置 RAID 1。
视频说明: https ://youtu.be/PWxxV98DB4c
根据需要卸载(使用磁盘)
查看我们正在与哪个开发人员合作
假设我们正在使用 sdb - 仔细检查 - 备份所有数据以防出现问题。
创建 luks 容器
打开容器
您可以将 mount_name 更改为您喜欢的名称。
可选的:
LVM2 PV 创建:
可选检查是否创建了 PV:
创建卷组
创建逻辑卷
更改
%
为需要的内容。将 part_one part_two 更改为您喜欢的转到磁盘:它们将安装为:
创建突袭:
laptop_backup_c 是一个标签。换成你喜欢的。
使用 gnome 磁盘挂载其中任何一个。会出现在
user 是你的用户名
或者,创建挂载文件夹,挂载它,然后删除挂载文件夹
卸载:
关闭组中所有打开的卷
关闭 luks 容器
现在,当您插入驱动器时,它只会询问一次密码。
/media/<user>/laptop_backup_c
如果您使用 gnome 磁盘或 CLI(此处未显示)挂载任何一个逻辑卷,您的 raid 1 将被挂载。