Я скомпилировал 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