Не удается подключить зашифрованный набор данных ZFS: в доступе отказано
Я нахожусь на NixOS и пытаюсь зашифровать раздел жесткого диска (возможно, больше в будущем), используя ZFS. Я пытался придерживаться этого руководства, поэтому я добавил
boot.zfs = {
enableUnstable = true;
requestEncryptionCredentials = true;
};
boot.supportedFilesystems = [ "zfs" ];
к моему configuration.nix
и создал пул и набор данных zroot
а также zroot/genc
с mountpoint=legacy acltype=posixacl xattr=sa
, Я зашифровал пул с
$ sudo zfs create -o acltype=posixacl -o xattr=sa -o encryption=aes-256-gcm -o keyformat=passphrase -o mountpoint=none zroot/genc
Меня попросили пароль, а затем я сделал
$ 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
Это все работало нормально (я мог создать файл ~/genc/hello
). Однако после nixos-rebuild switch
Я попал в аварийный снаряд и ничего не мог сделать. Я вернулся к предыдущей версии NixOS и удалил zfs
записи из /etc/nixos/hardware-configuration.nix
так что система не будет пытаться импортировать пулы ZFS (потому что, по-видимому, это не удалось). С этой новой конфигурацией я сделал
$ sudo zfs import zroot
$ sudo mount -t zfs zroot/genc ~/genc
> filesystem 'zroot/genc' can not be mounted: Permission denied
Я не добрался до того момента, когда меня попросили мою фразу-пароль. zroot/genc
имеет атрибуты canmount=on keylocation=prompt
,
Итак, как я могу это исправить? Как я могу смонтировать зашифрованный набор данных?
1 ответ
Это руководство хорошо описывает процесс монтирования. Короче говоря, вы должны, вероятно, использовать zfs mount
вместо mount -t zfs
потому что он будет знать, чтобы загрузить / попросить ключи шифрования. Чтобы сделать это во время загрузки, вы также можете использовать -l
флаг для zpool import
(хотя вам понадобится какой-нибудь способ снабдить ваш загрузочный скрипт паролем).