ZFS on Linux >= 0.8
の既存のデータセット(スナップショットを含む)を暗号化することは可能ですか? send | recv
を使用して、元のデータセットを破棄しますか?
はい、そうです。この簡単な例を参照してください(ZoL 0.8.3でテスト済み)。
(パスフレーズではなく)生のキーファイルを使用する場合:
dd if=/dev/urandom of=/path/to/keyfile bs=32 count=1
chmod 000 /path/to/keyfile
最初にスナップショットを作成します。
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
else
zfs list -rH -o name tank/home | xargs -L 1 zfs mount
(または単にzfs mount -a
マウントすべきでない他のデータセットがない場合)。
そしてそれはそれについてでした!
最後に、必要に応じてスナップショットを破棄します。
zfs destroy -r tank/home@transfer