저는 NixOS를 사용하고 있으며 ZFS를 사용하여 하드 드라이브 파티션(향후에는 더 많을 수 있음)을 암호화하려고 합니다. 나는 붙어 있으려고 노력했다.이 가이드, 그래서 추가했어요
boot.zfs = {
enableUnstable = true;
requestEncryptionCredentials = true;
};
boot.supportedFilesystems = [ "zfs" ];
my 에 추가 하고 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 풀 가져오기를 시도하지 않도록 zfs
항목을 제거했습니다(분명히 실패했기 때문입니다). /etc/nixos/hardware-configuration.nix
이 새로운 구성으로 나는
$ 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
단, 부팅 스크립트에 비밀번호를 제공하는 방법이 필요함).