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 mit
zfs mount dataint -l
Die Probleme, die ich jetzt habe, sind:
zfs wird beim Start nicht geladen. Nicht einmal das Kernelmodul und dementsprechend schon gar nicht der Pool.
Verschlüsselte Volumes werden nur geladen, wenn der Pool importiert oder das Dateisystem mit der
-l
Option 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.
- 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
- 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.