Не удается подключить зашифрованный набор данных 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 (хотя вам понадобится какой-нибудь способ снабдить ваш загрузочный скрипт паролем).

Другие вопросы по тегам