是否可以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