現在、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
私が現在抱えている問題は次のとおりです。
zfs は起動時にロードされません。カーネル モジュールもロードされず、したがってプールもロードされません。
暗号化されたボリュームは、プールがインポートされるか、ファイルシステムがオプションでマウントされる場合にのみロードされます
-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
私は今、本質的に 2 つの部分から成る問題を完全に解決しました。
- systemdサービスはdebパッケージに組み込む必要があります。残念ながら、上で説明したように、上記のwikiパッケージは非常にずさんです。問題追跡システムはこちら。
つまり、DKMS debのビルドコマンドは次のようになります。
$ ./configure
$ make -j1 deb-utils deb-dkms
- 古いインストールをクリーンアップする必要がある
指示:
sudo systemctl unmask zfs*
新しいサービスを有効にして開始する必要があります。
暗号化されたデータセットの扱い方についても説明しましたここ。