Verschlüsseltes ZFS-Dataset kann nicht gemountet werden: Berechtigung verweigert

Verschlüsseltes ZFS-Dataset kann nicht gemountet werden: Berechtigung verweigert

Ich verwende NixOS und versuche, eine Festplattenpartition (in Zukunft möglicherweise auch mehr) mit ZFS zu verschlüsseln. Ich habe versucht,dieser Leitfaden, also fügte ich hinzu

boot.zfs = {
  enableUnstable = true;
  requestEncryptionCredentials = true;
};
boot.supportedFilesystems = [ "zfs" ];

zu meinem configuration.nix, und erstellte den Pool und den Datensatz zrootund zroot/gencmit mountpoint=legacy acltype=posixacl xattr=sa. Ich verschlüsselte den Pool mit

$ sudo zfs create -o acltype=posixacl -o xattr=sa -o encryption=aes-256-gcm -o keyformat=passphrase -o mountpoint=none zroot/genc

Ich wurde nach einer Passphrase gefragt und dann habe ich

$ sudo zfs set mountpoint=legacy zroot/genc
$ sudo mount -t zfs zroot/genc /home/gecku/genc
$ sudo chown gecku:users ~/genc
$ touch ~/genc/hello
$ sudo nixos-generate-config

Das hat alles gut funktioniert (ich konnte die Datei erstellen ~/genc/hello). Nach nixos-rebuild switchwurde ich jedoch in eine Notfall-Shell geworfen und konnte nichts tun. Ich kehrte zu einer früheren Version von NixOS zurück und entfernte die zfsEinträge aus /etc/nixos/hardware-configuration.nix, damit das System nicht versuchte, die ZFS-Pools zu importieren (weil dies anscheinend fehlschlug). Mit dieser neuen Konfiguration habe ich

$ sudo zfs import zroot
$ sudo mount -t zfs zroot/genc ~/genc
> filesystem 'zroot/genc' can not be mounted: Permission denied

Ich bin nicht an den Punkt gekommen, an dem ich nach meiner Passphrase gefragt wurde. zroot/genchat die Attribute canmount=on keylocation=prompt.

Wie kann ich das also beheben? Wie kann ich den verschlüsselten Datensatz mounten?

Antwort1

Dieser Leitfadenfasst den Mount-Prozess gut zusammen. Kurz gesagt, Sie sollten wahrscheinlich zfs mountanstelle von verwenden mount -t zfs, da es dann weiß, dass es Verschlüsselungsschlüssel laden/anfordern muss. Um dies beim Booten zu tun, können Sie auch das -lFlag to verwenden zpool import(obwohl Sie Ihr Boot-Skript irgendwie mit dem Passwort versorgen müssen).

verwandte Informationen