0

As a newbie to zfs, I am having trouble getting an encrypted dataset mounted during boot. The dataset is protected with a raw key and not a passphrase.

This is how I created the zpool and the dataset:

# zpool list
no pools available

# zpool create ZPOOL -m /media/ZPOOL -o autotrim=on -o failmode=continue /dev/sdb

# zpool list
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
ZPOOL   238G   126K   238G        -         -     0%     0%  1.00x    ONLINE  -
    
# dd if=/dev/random of=/key bs=32 count=1
# zfs create -v -o encryption=on -o keyformat=raw -o keylocation=file:///key -o canmount=on -o dedup=on ZPOOL/ZFS
create ZPOOL/ZFS
        encryption=on
        keyformat=raw
        keylocation=file:///key
        canmount=on
        dedup=on

# df
[...]
ZPOOL                         241762176        128  241762048    1% /media/ZPOOL
ZPOOL/ZFS                     241762176        128  241762048    1% /media/ZPOOL/ZFS

After a reboot only the pool is present. The dataset is gone:

# reboot

# df
[...]
ZPOOL                         241762176        128  241762048    1% /media/ZPOOL

It can be retrieved by hand:

# zfs mount -l ZPOOL/ZFS

# df
[...]
ZPOOL                         241762176        128  241762048    1% /media/ZPOOL
ZPOOL/ZFS                     241762176        128  241762048    1% /media/ZPOOL/ZFS

So it looks like the key is not passed to zfs mount during boot.

As a workaround I found in the net the hint to include the parameter -l in the boot scripts during the boot process. I hoped that this is possible under Debian in /etc/default/zfs:

# Any additional option to the 'zfs mount' command line?
# Include '-o' for each option wanted.
MOUNT_EXTRA_OPTIONS="-l"

But this did not help at all.

Do any of you have a solution? Thanks a lot for your support!

th0masrad
  • 43
  • 4

0 Answers0