Автоматическое монтирование зашифрованной файловой системы с помощью самокомпилированной ZFS

Автоматическое монтирование зашифрованной файловой системы с помощью самокомпилированной ZFS

В настоящее время я пытаюсь переключить сервер дампа данных, работающий под управлением 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

Проблемы, с которыми я столкнулся сейчас:

  1. zfs не загружается при запуске. Даже модуль ядра и соответственно, тем более пул.

  2. Зашифрованные тома загружаются только тогда, когда пул импортирован или файловая система смонтирована с -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

Теперь я полностью решил эту проблему, которая по сути состоит из двух частей.

  1. Службы systemd должны быть встроены в deb-пакет вообще. К сожалению, wiki-пакет, ссылка на который приведена выше, очень неряшлив, как обсуждалосьздесь в системе отслеживания проблем.

Короче говоря, команды сборки для DKMS deb должны быть такими:

$ ./configure
$ make -j1 deb-utils deb-dkms
  1. Старую установку необходимо очистить.

Команда:

sudo systemctl unmask zfs*

и новые службы должны быть включены и запущены.

Я также описал, как работать с зашифрованными наборами данных.здесь.

Связанный контент