📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
ページの作成:「== 概要 == OpenZFSは、オープンソースのストレージプラットフォームである。<br> 従来のファイルシステムとボリュームマネージャの両方の機能を含んでおり、以下に示すような多くの高度な機能を備えている。<br> <br> * データ破損からの保護データとメタデータの整合性チェック * 継続的な整合性検証と自動「自己修復」修復 * ミラーリング、RAID-Z1/2/…」 |
|||
| (同じ利用者による、間の8版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
[https://openzfs.org/wiki/Main%20Page OpenZFS]は、オープンソースのストレージプラットフォームである。<br> | |||
従来のファイルシステムとボリュームマネージャの両方の機能を含んでおり、以下に示すような多くの高度な機能を備えている。<br> | 従来のファイルシステムとボリュームマネージャの両方の機能を含んでおり、以下に示すような多くの高度な機能を備えている。<br> | ||
<br> | <br> | ||
| 14行目: | 14行目: | ||
== ZFSのインストール == | == ZFSのインストール == | ||
詳細を知りたい場合は、[https://openzfs.github.io/openzfs-docs/ OpenZFSの公式ドキュメント]を参照すること。<br> | |||
<br> | |||
==== リポジトリを追加してインストール ==== | ==== リポジトリを追加してインストール ==== | ||
===== RHEL ===== | ===== RHEL ===== | ||
| 95行目: | 97行目: | ||
<br> | <br> | ||
ZFSをビルドおよびインストールする。<br> | ZFSをビルドおよびインストールする。<br> | ||
../configure --prefix=<ZFSのインストールディレクトリ> --enable-nls --enable-linux-builtin | ../configure --prefix=<ZFSのインストールディレクトリ> --enable-systemd --enable-nls --enable-linux-builtin | ||
make -j $(nproc) | make -j $(nproc) | ||
make install | sudo make install | ||
<br> | |||
~/.profileファイル等に、環境変数を追記する。<br> | |||
vi ~/.profile | |||
<br> | |||
<syntaxhighlight lang="sh"> | |||
# ~/.profileファイル | |||
export PATH="/<ZFSのインストールディレクトリ>/bin:$PATH" | |||
export PATH="/<ZFSのインストールディレクトリ>/sbin:$PATH" | |||
export LD_LIBRARY_PATH="/<ZFSのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH" | |||
export MANPATH="/<ZFSのインストールディレクトリ>/share/man:$MANPATH" | |||
</syntaxhighlight> | |||
<br><br> | |||
== ZFSのアンインストール == | |||
ZFSをアンインストールする。<br> | |||
sudo make uninstall | |||
<br> | |||
セキュアブートが有効な場合、署名を削除する。<br> | |||
cd ~/MOK/ZFS | |||
sudo mokutil --delete ./ZFS.der --root-pw | |||
<br> | |||
PCを再起動して、署名を削除する。<br> | |||
<br> | |||
ZFSのカーネルモジュールを削除する。<br> | |||
sudo rm /lib/modules/$(uname -r)/extra/zfs.ko \ | |||
/lib/modules/$(uname -r)/extra/spl.ko | |||
<br> | |||
カーネルモジュールを再読み込みする。<br> | |||
sudo depmod -a $(uname -r) | |||
<br><br> | |||
== MOKの署名 == | |||
セキュアブートが有効の場合、ZFSモジュールの署名を登録する必要がある。<br> | |||
<br> | |||
まず、ZFSモジュールの署名に必要な設定ファイルを作成する。<br> | |||
mkdir -p ~/MOK/ZFS && cd ~/MOK/ZFS | |||
vi ZFS.config | |||
<br> | |||
<syntaxhighlight lang="ini"> | |||
# ~/MOK/ZFS/ZFS.configファイル | |||
[ req ] | |||
default_bits = 4096 | |||
distinguished_name = req_distinguished_name | |||
prompt = no | |||
string_mask = utf8only | |||
x509_extensions = myexts | |||
[ req_distinguished_name ] | |||
O = SUSE Linux Products GmbH (User Add ZFS) # 任意の名前 | |||
CN = SUSE Linux Enterprise Secure Boot (User Add ZFS) # 任意の名前 | |||
emailAddress = suse@localhost # 任意のメールアドレス | |||
[ myexts ] | |||
basicConstraints=critical,CA:FALSE | |||
keyUsage=digitalSignature | |||
subjectKeyIdentifier=hash | |||
authorityKeyIdentifier=keyid | |||
</syntaxhighlight> | |||
<br> | |||
キーペアを作成する。<br> | |||
openssl req -x509 -new -nodes -utf8 -sha256 -days 36500 -batch -config ./ZFS.config \ | |||
-outform DER -out ./ZFS.der -keyout ./ZFS.priv \ | |||
-addext "extendedKeyUsage=codeSigning" | |||
<br> | |||
次に、MOK(Module owned Key)にキーをインポートする。<br> | |||
<code>--root-pw</code>オプションを付加することにより、再起動時のZFSモジュールの署名において、rootパスワードが必要となる。<br> | |||
sudo mokutil --import ./ZFS.der --root-pw | |||
<br> | |||
PCを再起動して、上記のキーの署名する。<br> | |||
sudo systemctl reboot | |||
<br> | |||
ZFSモジュール(spl.koおよびzfs.ko)を署名する。<br> | |||
sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 ./ZFS.priv ./ZFS.der /lib/modules/$(uname -r)/extra/spl.ko | |||
sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 ./ZFS.priv ./ZFS.der /lib/modules/$(uname -r)/extra/zfs.ko | |||
<br> | |||
必要であれば、ZFSモジュールをXZ形式またはZstandard形式に圧縮する。(任意)<br> | |||
# XZ形式の場合 | |||
cd /lib/modules/$(uname -r)/extra/ | |||
sudo xz -f spl.ko | |||
sudo xz -f zfs.ko | |||
# Zstandard形式の場合 | |||
cd /lib/modules/$(uname -r)/extra/ | |||
sudo zstd --rm spl.ko | |||
sudo zstd --rm zfs.ko | |||
<br> | |||
ZFSモジュールを読み込む。<br> | |||
sudo depmod -a $(uname -r) # モジュール依存リストを更新する | |||
sudo modprobe -v spl # ZFSモジュールを読み込む | |||
sudo modprobe -v zfs # ZFSモジュールを読み込む | |||
<br> | |||
ZFSモジュールが正常に読み込まれているかどうかを確認する。<br> | |||
lsmod | grep spl | |||
lsmod | grep zfs | |||
# または | |||
sudo modinfo spl | |||
sudo modinfo zfs | |||
<br> | |||
ZFSモジュールが正しく署名されているかどうかを確認する。<br> | |||
正常に読み込まれている場合は、<u>"ZFS.der is already enrolled"</u>と表示される。<br> | |||
cd <ZFSモジュールの署名ファイルが存在するディレクトリ> | |||
sudo mokutil --test-key ./ZFS.der | |||
<br> | |||
上記の署名は、カーネルがアップデートされた場合、再度、署名が必要となることに注意する。<br> | |||
<br> | |||
作成したキーは信頼されるため、キーを適切に保存する必要がある。<br> | |||
このキーで署名されたものはシステムから信頼されるため、セキュリティリスクとなる可能性があることに注意する。<br> | |||
<br><br> | |||
== ZFSの起動 == | |||
ZFSサービスを起動する。<br> | |||
sudo systemctl start zfs.target | |||
<br> | |||
ZFSプールの再起動時に自動マウントするように、サービスを有効にする。<br> | |||
sudo systemctl start zfs-import-cache | |||
sudo systemctl start zfs-mount | |||
sudo systemctl start zfs-import.target | |||
<br> | |||
ZFSプールのアップデートが必要かどうかを確認する。<br> | |||
sudo zpool status | |||
<br> | |||
もし、<u>action: Upgrade the pool using 'zpool upgrade'.</u>メッセージが表示される場合、アップデートが必要である。<br> | |||
全てのプールをアップデートする。<br> | |||
sudo zpool upgrade -a | |||
<br> | |||
これらのSystemdサービスユニットは、/usr/lib/systemd/systemディレクトリに存在する。<br> | |||
<br><br> | <br><br> | ||