Automatisches Einbinden verschlüsselter FS mit selbstkompiliertem ZFS

Automatisches Einbinden verschlüsselter FS mit selbstkompiliertem ZFS

Ich versuche gerade, einen Data Dump Server mit 19.04 von LUKS+btrfs auf ZFS umzustellen. Das Systemlaufwerk ist LUKS-verschlüsselt und kann per SSH entschlüsselt werden. Es enthält eine Schlüsseldatei, die die ZFS-Dateisysteme entschlüsseln soll. Ich bin auf halbem Weg, aber Automount funktioniert nicht.

  • Ich habe es geschafft, ZFS 0.8.1 zu kompilieren und ein DKMS-Paket zu erstellen, das demWiki. Durch das Lesen des Makefiles habe ich außerdem herausgefunden, dass ich auch Deb-Utils erstellen muss, um Zpool und dergleichen zu erhalten.
  • Ich habe einen Pool erstellt, der Verschlüsselung unterstützt

    zpool create -o ashift=12 dataint /dev/disk/by-id/mydrive zpool set feature@encryption=enabled dataint

  • Ich habe darin Dateisysteme erstellt, die mit der Schlüsseldatei verschlüsselt sind

    zfs create \ -o encryption=on \ -o keylocation=file:///root/keys/hdd256.key -o keyformat=raw\ dataint/test

  • Ich kann dies montieren mitzfs mount dataint -l

Die Probleme, die ich jetzt habe, sind:

  1. zfs wird beim Start nicht geladen. Nicht einmal das Kernelmodul und dementsprechend schon gar nicht der Pool.

  2. Verschlüsselte Volumes werden nur geladen, wenn der Pool importiert oder das Dateisystem mit der -lOption gemountet wird. Ich vermute, das muss irgendwie für das automatische Laden angegangen werden, wenn 1. gelöst ist?

Ich habe zwar einige ZFS-Systemd-Dienste, aber sie sind maskiert. Ich bin nicht sicher, ob es sich dabei um Überbleibsel einer früheren 0.7-Paketmanagerinstallation handelt, die ich entfernt habe.

Antwort1

Versuchen Sie, alle installierten Teile manuell zu aktivieren.

So sehen Sie, welche ZFS-bezogenen Dienste auf Ihrem System installiert sind:

sudo systemctl list-unit-files | grep zfs

Aktivieren Sie als Nächstes alle Dienste. Ich werde es ausführlich beschreiben:

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

Wenn auf Ihrem Terminal Beschwerden über maskierte Dinge auftauchen, erzwingen Sie die Entfernung aller Masken:

sudo systemctl unmask zfs-*

Sie benötigen dies wahrscheinlich nicht, aber der Vollständigkeit halber sei erwähnt, dass einige ältere Systeme weniger Dienste haben und Folgendes bevorzugen 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

Antwort2

Ich habe das Problem, das im Wesentlichen aus zwei Teilen besteht, jetzt vollständig gelöst.

  1. Die systemd-Dienste müssen in das Deb-Paket eingebaut werden. Leider ist das oben verlinkte Wiki-Paket sehr schlampig, wie bereits diskutierthier im Issue Tracker.

Kurz gesagt, die Build-Befehle für DKMS deb sollten sein

$ ./configure
$ make -j1 deb-utils deb-dkms
  1. Alte Installation muss bereinigt werden

Befehl:

sudo systemctl unmask zfs*

und die neuen Dienste müssen aktiviert und gestartet werden.

Ich habe auch beschrieben, wie mit verschlüsselten Datensätzen umzugehen istHier.

verwandte Informationen