以root身份挂载GEOM_ELI加密的ZFS池

时间:2015-06-14 21:17:09

标签: unix encryption freebsd boot zfs

我有一个3磁盘RAIDz1池,在GEOM_ELI中使用AES128加密,我从版本8开始就在FreeNAS中使用。 有很多zpool升级,总而言之,我对ZFS非常满意。

然而,最近我对FreeNAS感到沮丧。多年来一直没有修复的大量漏洞。但总的来说,我的 INSISTING 使用闪存驱动器作为他们的操作系统,尽管其中大部分都是只读的。 它仍然是单点故障,并且始终将启动时间延长几分钟。最重要的是,我只想在这个池中使用Vanilla FreeBSD。 我正在寻找更多的灵活性,我希望通过这个非常棒的操作系统来教育自己。

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

Tutorial I used

我使用VMWare工作站创建了一个VM,有三个2TB驱动器,作为物理磁盘传递,并且每一步都执行到T,一切都很顺利。现在我已经更好地掌握了我正在做的命令以及我为什么这样做,我想这样做已经存在已经存在大量数据的已经存在的池。

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

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

现在是我的问题。 在最终重新开始测试所有内容之后,内核开始启动,然后我在一个mountroot终端上吐口水。似乎geom_eli没有试图解密我的根音量。我怀疑为什么。如果我错了,请纠正我。 在本教程开始时,我获得了为加密卷创建新geoms的命令:

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个小时我一直在研究这个问题。我真的很喜欢有头脑清醒的人来看看这个。

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

1 个答案:

答案 0 :(得分:0)

原来我是对的。 daXp4.eli文件是必需的,因为它是每个磁盘的元数据。如果你愿意,可以参考。

执行:

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

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

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