Estou no NixOS e tento criptografar uma partição do disco rígido (potencialmente mais no futuro) usando o ZFS. Eu tentei seguireste guia, então adicionei
boot.zfs = {
enableUnstable = true;
requestEncryptionCredentials = true;
};
boot.supportedFilesystems = [ "zfs" ];
para my configuration.nix
e criei o pool e o conjunto de dados zroot
e zroot/genc
com mountpoint=legacy acltype=posixacl xattr=sa
. Eu criptografei o pool com
$ sudo zfs create -o acltype=posixacl -o xattr=sa -o encryption=aes-256-gcm -o keyformat=passphrase -o mountpoint=none zroot/genc
Me pediram uma senha e então eu fiz
$ 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
Tudo funcionou bem (eu poderia criar o arquivo ~/genc/hello
). No entanto, depois disso nixos-rebuild switch
, fui colocado em um shell de emergência e não pude fazer nada. Reverti para uma versão anterior do NixOS e removi as zfs
entradas /etc/nixos/hardware-configuration.nix
para que o sistema não tentasse importar os pools ZFS (porque aparentemente falhou nisso). Com esta nova configuração, fiz
$ sudo zfs import zroot
$ sudo mount -t zfs zroot/genc ~/genc
> filesystem 'zroot/genc' can not be mounted: Permission denied
Não cheguei a um ponto em que minha senha fosse solicitada. zroot/genc
tem os atributos canmount=on keylocation=prompt
.
Então, como posso consertar isso? Como posso montar o conjunto de dados criptografado?
Responder1
Este guiaresume bem o processo de montagem. Resumindo, você provavelmente deveria usar zfs mount
em vez de mount -t zfs
porque ele saberá carregar/pedir chaves de criptografia. Para fazer isso no momento da inicialização, você também pode usar o -l
sinalizador to zpool import
(embora você precise de alguma forma para fornecer a senha ao seu script de inicialização).