我有一个 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 个小时里,我一直在为此工作。我真的很喜欢头脑清醒的人来看看这个。
如果我错过了任何有用的信息,请告诉我。