Я скомпилировал ZFS 0.8.1 для своего сервера, и он работает нормально. Я также могу создавать зашифрованные файловые системы, такие как mypool / myencfs.
Однако mypool также является файловой системой, и мне кажется, что я не могу включить в ней шифрование:
zfs set encryption=on mypool
cannot set property for 'mypool': 'encryption' is readonly
Пул должен быть расшифрован с помощью ключевого файла с другого зашифрованного диска, поэтому я хотел бы поставить наследуемые свойства как можно выше, а также не рисковать незашифрованными данными, когда я случайно копирую что-то в mypool /
Хотя я не нашел ничего по этому поводу непосредственно в сети (кажется, что все создают только зашифрованные подсистемы), у меня возникла идея узнать, как установить какие-либо свойства во время создания пула. Это -O
(верхний регистр) вариант.
Это работает
zpool create -o ashift=12 -o feature@encryption=enabled \
-O encryption=on -O keylocation=file:///root/keys/hdd256.key \
-O keyformat=raw \
mypool /dev/disk/by-id/mydisk
Для полноты картины, поскольку в сети, похоже, еще немного по этому поводу, вот как я настроил systemd для автоматического монтирования диска:
/etc/systemd/system/zfs-load-key@.service
[Unit]
Description=Import key for ZFS pool
Documentation=man:zfs(8)
DefaultDependencies=no
After=systemd-udev-settle.service
After=zfs-import.target
After=systemd-remount-fs.service
Before=zfs-mount.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/zfs load-key -r %i
[Install]
WantedBy=zfs.target
systemctl enable zfs-load-key@mypool