ZFS 中现有数据集的加密 (ZoL 0.8)

ZFS 中现有数据集的加密 (ZoL 0.8)

是否可以ZFS on Linux >= 0.8通过使用send | recv和销毁原始数据集来加密现有数据集(包括快照)?

答案1

是的。请参阅这个简单的示例(在 ZoL 0.8.3 上测试)。

如果您想使用原始密钥文件(而不是密码):

( umask 777
dd if=/dev/urandom of=/path/to/keyfile bs=32 count=1 )

首先创建一个快照:

zfs snapshot -r tank/home@transfer

然后,按照建议send | recv(使用复制选项-R),但在接收端提供您的加密选项:

zfs send -R tank/home@transfer |
    zfs receive \
        -o encryption=aes-256-gcm \
        -o keyformat=raw \
        -o keylocation=file:///path/to/keyfile \
        tank/newhome

如果安装了原始数据集,则不会立即安装新数据集:

无法挂载“/tank/home”:目录不为空

销毁未加密的数据集并将其替换为新数据集:

zfs destroy -r tank/home
zfs rename tank/newhome tank/home

如果您的数据集没有任何子数据集,则安装很容易:

zfs mount tank/home

别的

zfs list -rH -o name tank/home | xargs -L 1 zfs mount

(或者只是zfs mount -a如果您没有其他不应安装的数据集)。

就是这样!

最后,如果您愿意,可以销毁快照:

zfs destroy -r tank/home@transfer

相关内容