我发现了很多相互矛盾的信息,而且到目前为止还没有发现任何人试图将我正在尝试做的所有组件组合在一起,所以我希望有人了解 SSD、加密 LVM 和等可以过来帮忙。
基本上,我的系统是一台笔记本电脑,具有:
- /dev/sda:32 GB SSD
- /dev/sdb:256 GB SSD
- /dev/sdc:1000 GB 高清
一般来说,我的 Linux 安装由三个分区组成:
- ~50 MB /启动
- 大/家
- ~30 GB“其他所有内容”
所以有效地我想
/dev/sda1 -> /boot
/dev/sda2 -> /
/dev/sdb1 -> /home
/dev/sdc1 -> /swap
/dev/sdc2 -> /mnt/storage
问题是我想加密所有这些(除了/boot
和/mnt/storage
可以保持未加密状态)。我读过,在加密 SSD 时,可能会出现 TRIM 之类的问题,理想情况下我希望使用带有某些特定选项集的 EXT4,而且我必须非常小心分区对齐,有些人只是声称加密LVM 确实不能很好地与 SSD 配合使用,我应该只使用 EncFS 或 eCryptfs(尽管人们似乎不清楚和/或对这些是否应该用于加密“启动时挂载”分区(如 / 和 /home)存在两极分化)。
有这方面的规范信息吗?
答案1
我现在在 dm-crypt 之上运行 btrfs 一段时间了。由于 btrfs 是一个支持多设备的动态(增长、收缩等)文件系统,因此我实际上并不需要 LVM 层来实现我的目的。
除此之外,使用具有--allow-discards
功能的最新 dm-crypt、3.1+ 内核和还允许丢弃的文件系统(btrfs、ext*、...)。
完成这一切需要阅读一些内容:
- https://code.google.com/p/cryptsetup/wiki/Cryptsetup140(--允许丢弃)
- http://thread.gmane.org/gmane.linux.kernel.device-mapper.dm-crypt/4075/
- http://asalor.blogspot.com/2011/08/trim-dm-crypt-problems.html(Milan Broz,dm-crypt 开发者)
随着时间的推移,当我从书签深渊中找到更多链接时,我会更新它们:>
我没有对我的设置进行太多的基准测试。对我来说,它的性能表现绰绰有余,即仍然领先于 HDD。我现在不知道我的SSD到底处于什么状态,也不知道多层丢弃系统是否真的100%工作。更重要的是我有足够的性能和足够的安全模型来抵御高概率的问题,例如忘记设备、设备被随机的人偷走等。
因此,要准确找出我的 SSD 寿命可能缩短了多少,或者性能因 TRIM 的丢弃系统无法 100% 正确工作而降低了多少,或者 dm-crypt 丢弃了多少削弱了其固有的安全性 - 我无法收集信息来值得高度重视这些问题。我写这个答案的原因之一可能是我错得太多,把它放在这里是目前我尝试找出答案的最佳方式。