부팅 시 ZFS 풀을 자동으로 잠금 해제하고 마운트하는 방법은 무엇입니까?

부팅 시 ZFS 풀을 자동으로 잠금 해제하고 마운트하는 방법은 무엇입니까?

부팅 시 ZFS 풀과 해당 데이터 세트를 자동으로 해독하고 마운트할 수 있는지 알고 싶습니다. 현재는 명령을 사용하여 풀을 수동으로 잠금 해제한 # zfs load-key -a다음 # zfs mount -a. "키"가 현재 비밀번호라는 점도 언급할 가치가 있습니다(아마도 이를 키 파일로 변환하여 시스템 어딘가에 저장하는 것이 더 나을 것 같습니다).

우분투 서버 23.04를 실행하고 있습니다

답변1

나는 이것을 스스로 수행하는 방법을 발견했습니다.

  1. 첫째, 를 사용하여 키를 로드한 후 를 사용하여 # zfs load-key -L file:///path/to/keyfile <pool>명시적으로 언로드하지 않는 한 키는 로드된 상태로 유지됩니다 # zfs unload-key.
  2. 키 자동 로딩을 시도하고 싶다면 제가 작성한 빠른 시스템 서비스가 있지만경고 받다:다시 시작하기 전에 키를 제거하지 않으면 서비스가 실패합니다..
# /etc/systemd/system/zfs-load-key.service
[Unit]
Description=Load encryption keys
DefaultDependencies=no
Before=zfs-mount.service
After=zfs-import.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/zfs load-key -L file:///etc/zfs/zpool.key <pool-name>

[Install]
WantedBy=zfs-mount.service
  1. 시작 시 풀을 자동으로 마운트하는 방법에는 여러 가지가 있습니다.
  • 옵션 #1: 사용zfs-mount.service
sudo zpool set cachefile=/etc/zfs/zpool.cache <pool-name>
sudo systemctl enable --now zfs-import-cache.service
sudo systemctl enable --now zfs.target
sudo systemctl enable --now zfs-import.target
sudo systemctl enable --now zfs-mount.service
  • 옵션 #2: 사용zfs-mount-generator
sudo mkdir -p /etc/zfs/zfs-list.cache
sudo systemctl enable --now zfs.target
sudo systemctl enable --now zfs-zed.service
sudo touch /etc/zfs/zfs-list.cache/<pool-name>
cat /etc/zfs/zfs-list.cache/<pool-name> # if the file is empty, check that zfs-zed.service is running; if it is, run the command below
sudo zfs set canmount=off <pool-name>
cat /etc/zfs/zfs-list.cache/<pool-name> # if the file has been updated, run the command below
sudo zfs set canmount=on <pool-name>

# A file needs to be (manually) created in `/etc/zfs/zfs-list.cache` for each ZFS pool in your system and ensure the pools are imported by enabling `zfs-import-cache.service` and `zfs-import.target`.

관련 정보