我目前正在尝试将运行 19.04 的数据转储服务器从 LUKS+btrfs 更改为 ZFS。系统驱动器是 LUKS 加密的,可以通过 SSH 解密。它包含一个应该解密 ZFS 文件系统的密钥文件。我已经完成了一半,但自动挂载不起作用。
- 我已经成功编译了 ZFS 0.8.1,并按照以下说明构建了一个 DKMS 包维基百科通过阅读 makefile,我还发现我还需要制作 deb-utils 来获取 zpool 等。
我创建了一个支持加密的池
zpool create -o ashift=12 dataint /dev/disk/by-id/mydrive zpool set feature@encryption=enabled dataint
我在其中创建了使用密钥文件加密的文件系统
zfs create \ -o encryption=on \ -o keylocation=file:///root/keys/hdd256.key -o keyformat=raw\ dataint/test
我可以安装它
zfs mount dataint -l
我现在遇到的问题是:
启动时不会加载 zfs。甚至内核模块也不会加载,因此池当然也不会加载。
仅当导入池或使用该选项挂载文件系统时,才会加载加密卷
-l
。我猜当 1. 解决后,必须以某种方式解决自动加载问题?
我确实有一些 zfs systemd 服务,但它们被屏蔽了。不确定它们是否是之前安装的 0.7 包管理器留下的,我已将其删除。
答案1
尝试手动启用所有已安装的部分。
要查看系统安装了哪些与 zfs 相关的服务:
sudo systemctl list-unit-files | grep zfs
接下来,启用所有服务。我来详细说一下:
sudo modprobe zfs
sudo systemctl enable zfs-import-cache
sudo systemctl enable zfs-import-scan
sudo systemctl enable zfs-import.target
sudo systemctl enable zfs-mount
sudo systemctl enable zfs-share
sudo systemctl enable zfs-zed
sudo systemctl enable zfs.target
如果您的终端上出现有关被屏蔽的内容的投诉,请强制删除所有屏蔽:
sudo systemctl unmask zfs-*
您可能不需要这个,但为了完整性,一些较旧的系统具有较少的服务并且更喜欢update-rc.d
:
update-rc.d zfs-import enable
update-rc.d zfs-mount enable
update-rc.d zfs-zed enable
update-rc.d zfs-share enable