I have a fairly large hierarchy of datasets that are all below one encryption root. I have transferred that hierarchy to my backup system (with some datasets excluded). I wanted to check whether the data was received correctly, so I did zfs load-key on the target system's encryption root. But this only decrypted the root. So I added zfs load-key -r, but now it literally asks me for every single dataset 🤯
Apparently, the datasets have all become their own encryption root. Is this expected behaviour? Can I somehow fix it without re-transferring everything?
I thought about using a script to load the key for every dataset and then use zfs change-key -i to re-attach all datasets below the root to the root. But I am afraid this might make the datasets appear "modified" and break future raw sends. Would this be the case? Do you know of any other workarounds?
Thank you!
edit:
These are my send settings:
send:
encrypted: true
raw: true
large_blocks: true
I am not sure why I needed to add encrypted, since raw should already imply that it send datasets in whatever state they are in, or not?
And these are my receive settings:
recv:
placeholder:
encryption: inherit
I am not sure why these settings are necessary.
I have a fairly large hierarchy of datasets that are all below one encryption root. I have transferred that hierarchy to my backup system (with some datasets excluded). I wanted to check whether the data was received correctly, so I did
zfs load-keyon the target system's encryption root. But this only decrypted the root. So I addedzfs load-key -r, but now it literally asks me for every single dataset 🤯Apparently, the datasets have all become their own encryption root. Is this expected behaviour? Can I somehow fix it without re-transferring everything?
I thought about using a script to load the key for every dataset and then use
zfs change-key -ito re-attach all datasets below the root to the root. But I am afraid this might make the datasets appear "modified" and break future raw sends. Would this be the case? Do you know of any other workarounds?Thank you!
edit:
These are my send settings:
I am not sure why I needed to add
encrypted, sincerawshould already imply that it send datasets in whatever state they are in, or not?And these are my receive settings:
I am not sure why these settings are necessary.