我已经为我的服务器编译了 ZFS 0.8.1,并且运行良好。我还可以创建加密文件系统,如 mypool/myencfs。
但是,mypool 也是一个文件系统,而且我似乎无法在其上启用加密:
zfs set encryption=on mypool
cannot set property for 'mypool': 'encryption' is readonly
该池将使用来自另一个加密驱动器的密钥文件进行解密,因此我希望将可继承属性设置得尽可能高,这样当我意外将某些内容复制到 mypool/ 时也不会冒未加密数据的风险
答案1
虽然我在网上没有直接找到任何关于此事的信息(似乎每个人都只创建加密的子文件系统),但我还是想找出如何在创建池期间设置任何属性。它是-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/系统/[电子邮件保护]
[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