在启动时仅解锁特定的 ZFS 数据集

在启动时仅解锁特定的 ZFS 数据集

我的 ZFS 池中有以下数据集:

NAME                    USED  AVAIL  REFER  MOUNTPOINT
rpool                  3.68G   185G   192K  none
rpool/FOO              3.43M   185G   192K  none
rpool/FOO/ds           3.24M   185G  3.05M  /home/ds
rpool/FOO/ds/sdk        192K   185G   192K  /home/ds/sdk
rpool/ROOT             3.68G   185G  3.68G  legacy

我想在启动rpool/ROOT时安装/,因此我需要从用户提示符加载其加密密钥。我不想rpool/FOO/*在启动时安装,也不希望用户在启动时提示输入其加密密钥 - 我将加载其密钥并稍后通过其他进程安装它。

这看起来像是一份工作boot.zfs.requestEncryptionCredentials但我不知道如何使用它:

  • 如果我将其设置为(单例)列表["rpool/ROOT"],那么我在启动时不会收到密码提示,因此随后NixOS Stage 1会失败并显示Key load error: Keys must be loaded for encryption root of 'rpool/ROOT' (rpool).

  • 如果我将其设置为true,则会收到两个密码提示:一个为rpool/ROOT,另一个为rpool/FOO/ds。这正是我想要避免的。

选项文档中的示例有点奇怪,因为它看起来不像<pool>/<dataset>ZFS 的常用语法:

例子:

[   
  "tank"   
  "data" 
] 

所以我不确定我使用的"rpool/FOO"语法是否正确。

相关内容