В настоящее время я пытаюсь переключить сервер дампа данных, работающий под управлением 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
решение2
Теперь я полностью решил эту проблему, которая по сути состоит из двух частей.
- Службы systemd должны быть встроены в deb-пакет вообще. К сожалению, wiki-пакет, ссылка на который приведена выше, очень неряшлив, как обсуждалосьздесь в системе отслеживания проблем.
Короче говоря, команды сборки для DKMS deb должны быть такими:
$ ./configure
$ make -j1 deb-utils deb-dkms
- Старую установку необходимо очистить.
Команда:
sudo systemctl unmask zfs*
и новые службы должны быть включены и запущены.
Я также описал, как работать с зашифрованными наборами данных.здесь.