1

我有一个 3 磁盘 RAIDz1 池,在 GEOM_ELI 中使用 AES128 加密,自版本 8 以来我一直在 FreeNAS 中使用它。有很多 zpool 升级,总的来说,我对 ZFS 非常满意。

但是最近我对 FreeNAS 越来越失望。多年来没有修复的大部分错误。但总的来说我坚持使用闪存驱动器作为他们的操作系统,尽管其中大部分是只读的。它仍然是单点故障,并且总是将启动时间延长几分钟。底线,我只想在这个池中使用 Vanilla FreeBSD。我正在寻找更多的灵活性,并且我希望通过这个很棒的操作系统来教育自己。

做一些更深入的研究,我发现了许多关于将 FreeBSD 天真地安装到 ZFS 卷并将其挂载为 / 的教程直到我做了更多的研究并找到了一篇关于将 zfs 加密卷挂载为 root 的文章。后来我发现 FreeBSD 10 在安装过程中会这样做,这至少可以说是很棒的。

我用的教程

我用 VMWare 工作站制作了一个虚拟机,带有三个 2TB 驱动器,作为物理磁盘通过,每一步都执行到 T,一切都运行良好。现在我更好地掌握了我正在执行的命令以及执行这些命令的原因,我想对已经存在的池执行此操作,其中已经有很多数据。

默认情况下,FreeNAS 在每个数据磁盘的前面创建一个 2GB 的 SWAP 分区。我删除了交换空间,并将其设置为每个驱动器上的 1.5GB 分区,剩余 512MB 用于交换。我遵循每一步,根据需要改变事情。(我有 3 个磁盘,教程说 4 个,我的池名称是 foxhole,教程是 zroot。)我成功地使用 geom_eli 解密我的卷并成功安装它。

我没有跳过提供的任何步骤。我什至复制了我收到的每个命令,并在一个文本文件中对其进行了更改,以便它们适合我的情况。

这是我现在的问题。最终重新启动以测试所有内容后,内核开始启动,然后我在 mountroot 终端吐口水。geom_eli 似乎没有尝试解密我的根卷。我怀疑为什么。如果我错了,请纠正我。在教程开始时,我收到了为加密卷创建新几何图形的命令:

geli init -b -B /boot/zfs/bootdir/da0p4.eli -e AES-XTS -K /boot/zfs/bootdir/encryption.key -l 256 -s 4096 /dev/da0p4
geli init -b -B /boot/zfs/bootdir/da1p4.eli -e AES-XTS -K /boot/zfs/bootdir/encryption.key -l 256 -s 4096 /dev/da1p4
geli init -b -B /boot/zfs/bootdir/da2p4.eli -e AES-XTS -K /boot/zfs/bootdir/encryption.key -l 256 -s 4096 /dev/da2p4

由于我的卷已经存在,我无法执行那些会创建“/boot/zfs/bootdir/daXp4.eli”文件的命令。

我真的只是在猜测这是原因。当我尝试执行时,我注意到了这一点:

mv bootdir/*.eli bootdir/boot/

给我“不匹配”。

我假设那些会在池被解密时创建。

我为这篇文章道歉。我试图在不提供太多信息的情况下提供尽可能多的信息。在过去的 18 个小时里,我一直在为此工作。我真的很喜欢头脑清醒的人来看看这个。

如果我错过了任何有用的信息,请告诉我。

4

1 回答 1

0

事实证明我是对的。daXp4.eli 文件是必要的,因为它是每个磁盘的元数据。如果您愿意,可以作为参考点。

通过执行:

geli backup /dev/daXp4 /boot/daXp4.eli

它创建了 geom 在启动时尝试解密所需的元文件。

我希望这可以帮助其他对这些东西感兴趣的人。我现在有一个 23 个磁盘的 NAS。3 个 ZFS 卷,全部使用 geom_eli 加密

于 2015-06-17T15:59:43.460 回答