자체 컴파일된 ZFS를 사용하여 암호화된 fs 자동 마운트

자체 컴파일된 ZFS를 사용하여 암호화된 fs 자동 마운트

현재 19.04를 실행하는 데이터 덤프 서버를 LUKS+btrfs에서 ZFS로 변경하려고 합니다. 시스템 드라이브는 LUKS로 암호화되어 있으며 SSH를 통해 해독될 수 있습니다. 여기에는 ZFS 파일 시스템의 암호를 해독하는 키 파일이 포함되어 있습니다. 절반쯤 왔는데 자동 마운트가 작동하지 않습니다.

  • 나는 ZFS 0.8.1을 컴파일하고 다음과 같은 DKMS 패키지를 빌드했습니다.위키. makefile을 읽으면서 zpool 등을 얻으려면 deb-utils도 만들어야 한다는 사실도 알게 되었습니다.
  • 암호화를 지원하는 풀을 만들었습니다.

    zpool create -o ashift=12 dataint /dev/disk/by-id/mydrive zpool set feature@encryption=enabled dataint

  • 키 파일로 암호화된 파일 시스템을 만들었습니다.

    zfs create \ -o encryption=on \ -o keylocation=file:///root/keys/hdd256.key -o keyformat=raw\ dataint/test

  • 나는 이것을 마운트 할 수 있습니다zfs mount dataint -l

지금 내가 가지고 있는 문제는 다음과 같습니다.

  1. zfs는 시작 시 로드되지 않습니다. 커널 모듈도 아니고 따라서 확실히 풀도 아닙니다.

  2. 암호화된 볼륨은 풀을 가져오거나 옵션을 사용하여 파일 시스템을 마운트할 때만 로드됩니다 -l. 1. 문제가 해결되면 자동 로드를 위해 어떻게든 해결해야 할 것 같은데요?

일부 zfs systemd 서비스가 있지만 마스크되어 있습니다. 내가 제거한 이전 0.7 패키지 관리자 설치의 남은 부분인지 확실하지 않습니다.

답변1

설치된 모든 부분을 수동으로 활성화해 보십시오.

시스템에 설치된 zfs 관련 서비스를 확인하려면 다음을 수행하십시오.

sudo systemctl list-unit-files | grep zfs

다음으로 모든 서비스를 활성화합니다. 나는 장황하다 :

sudo modprobe zfs
sudo systemctl enable zfs-import-cache
sudo systemctl enable zfs-import-scan
sudo systemctl enable zfs-import.target
sudo systemctl enable zfs-mount
sudo systemctl enable zfs-share
sudo systemctl enable zfs-zed
sudo systemctl enable zfs.target

마스킹되는 항목에 대한 불만 사항이 터미널에 표시되면 모든 마스크를 강제로 제거하세요.

sudo systemctl unmask zfs-*

아마도 이것이 필요하지 않을 수도 있지만 완전성을 위해 일부 오래된 시스템은 서비스 수가 적고 다음을 선호합니다 update-rc.d.

update-rc.d zfs-import enable
update-rc.d zfs-mount enable
update-rc.d zfs-zed enable
update-rc.d zfs-share enable

답변2

본질적으로 너무 많은 부분이 있는 문제를 이제 완전히 해결했습니다.

  1. systemd 서비스는 deb 패키지에 내장되어야 합니다. 불행하게도 위에 링크된 위키 패키지는 논의된 것처럼 매우 엉성합니다.여기 이슈 트래커에서.

즉, DKMS deb의 빌드 명령은 다음과 같아야 합니다.

$ ./configure
$ make -j1 deb-utils deb-dkms
  1. 오래된 설치를 정리해야 합니다.

명령:

sudo systemctl unmask zfs*

새 서비스를 활성화하고 시작해야 합니다.

또한 암호화된 데이터세트를 처리하는 방법도 설명했습니다.여기.

관련 정보