📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 7行目: | 7行目: | ||
== F2FSモジュールのみインストールする方法 (推奨) == | == F2FSモジュールのみインストールする方法 (推奨) == | ||
==== F2FSモジュールのインストール ==== | |||
Linuxカーネルのソースコードをダウンロード、または、インストールする。<br> | Linuxカーネルのソースコードをダウンロード、または、インストールする。<br> | ||
* パッケージ管理システムから、Linuxカーネルのソースコードをインストールする場合 | * パッケージ管理システムから、Linuxカーネルのソースコードをインストールする場合 | ||
| 18行目: | 19行目: | ||
*: <code>cd linux-<バージョン></code> | *: <code>cd linux-<バージョン></code> | ||
<br> | <br> | ||
<u> | <u>SUSE 15.4かつパッケージ管理システムからLinuxカーネル 5.14.21-150400.22のソースコードを使用する場合、</u><br> | ||
<u> | <u>F2FSのソースコードの一部にバグが存在するため、以下に示すように、ソースコードを修正する必要がある。</u><br> | ||
sudo vi /usr/src/linux-5.14.21-150400.22/fs/f2fs/file.c | sudo vi /usr/src/linux-5.14.21-150400.22/fs/f2fs/file.c | ||
<br> | <br> | ||
| 34行目: | 35行目: | ||
既存のカーネルコンフィグ(/bootディレクトリ内にあるカーネルコンフィグ)を元に、新しいカーネルコンフィグを生成する。<br> | 既存のカーネルコンフィグ(/bootディレクトリ内にあるカーネルコンフィグ)を元に、新しいカーネルコンフィグを生成する。<br> | ||
<code>make olderconfig</code>コマンドは、可能な限り既存のカーネルコンフィグの設定を使用して、ビルドディレクトリ内に必要なファイルを生成する。<br> | <code>make olderconfig</code>コマンドは、可能な限り既存のカーネルコンフィグの設定を使用して、ビルドディレクトリ内に必要なファイルを生成する。<br> | ||
make -j $(nproc) olddefconfig O=. | |||
# または | |||
sudo make -j $(nproc) olddefconfig O=. | sudo make -j $(nproc) olddefconfig O=. | ||
<br> | <br> | ||
| 44行目: | 47行目: | ||
TUI画面下にある[Save]を選択して、上記の設定を保存する。<br> | TUI画面下にある[Save]を選択して、上記の設定を保存する。<br> | ||
<br> | <br> | ||
<u> | <u>セキュアブートが無効の場合は、Linuxカーネルモジュールに圧縮の設定を行ってビルドおよびインストールしてもよい。</u><br> | ||
もし、Linuxカーネルモジュールに圧縮の設定を行う場合は、以下に示すように、Linuxカーネルのビルドディレクトリにある.configファイルを編集する。<br> | |||
sudo vi /usr/src/linux-<カーネルのバージョン>/.config | sudo vi /usr/src/linux-<カーネルのバージョン>/.config | ||
<br> | <br> | ||
| 51行目: | 54行目: | ||
*: 以下の設定を追記する。 | *: 以下の設定を追記する。 | ||
*: <code># /usr/src/linux-<カーネルのバージョン>/.configファイル</code> | *: <code># /usr/src/linux-<カーネルのバージョン>/.configファイル</code> | ||
*: <code>CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y # 新しく追加する</code> | *: <code>CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y # 新しく追加する</code> | ||
*: <code>CONFIG_MODULE_COMPRESS=y # 新しく追加する</code> | *: <code>CONFIG_MODULE_COMPRESS=y # 新しく追加する</code> | ||
*: <code># CONFIG_MODULE_COMPRESS_NONE=n # コメントアウトする</code> | *: <code># CONFIG_MODULE_COMPRESS_NONE=n # コメントアウトする</code> | ||
*: <code>CONFIG_MODULE_COMPRESS_ZSTD=y # 新しく追加する</code> | *: <code>CONFIG_MODULE_COMPRESS_ZSTD=y # 新しく追加する</code> | ||
*: <br> | *: <br> | ||
* SUSE 15.3以前の場合 | * SUSE 15.3以前の場合 | ||
*: "MODULE_COMPRESS"を検索して、"MODULE_COMPRESS"の直下に、以下の設定を追記する。 | *: "MODULE_COMPRESS"を検索して、"MODULE_COMPRESS"の直下に、以下の設定を追記する。 | ||
*: <code># /usr/src/linux-<カーネルのバージョン>/.configファイル</code> | *: <code># /usr/src/linux-<カーネルのバージョン>/.configファイル</code> | ||
*: <code>CONFIG_MODULE_COMPRESS=y</code> | *: <code>CONFIG_MODULE_COMPRESS=y</code> | ||
*: <code>CONFIG_MODULE_COMPRESS_XZ=y</code> | *: <code>CONFIG_MODULE_COMPRESS_XZ=y</code> | ||
<br> | <br> | ||
Linuxカーネルから、F2FSのみをビルドする。<br> | Linuxカーネルから、F2FSのみをビルドする。<br> | ||
| 85行目: | 84行目: | ||
sudo make modules M=fs/f2fs -j $(nproc) | sudo make modules M=fs/f2fs -j $(nproc) | ||
sudo make modules_install M=fs/f2fs INSTALL_MOD_DIR=kernel/fs/f2fs -j $(nproc) | sudo make modules_install M=fs/f2fs INSTALL_MOD_DIR=kernel/fs/f2fs -j $(nproc) | ||
<br> | |||
Linuxカーネルモジュールのインストール後は、Linuxカーネルのビルドファイルを削除する。(ファイル容量が膨大なため)<br> | |||
sudo make clean -j $(nproc) # .configファイルを残す | |||
または | |||
sudo make distclean -j $(nproc) # .configファイル等の設定ファイルを全て削除する | |||
<br> | <br> | ||
<u>SUSE 15.3以前の初期設定では、F2FSモジュールはブラックリストに入っている。</u><br> | <u>SUSE 15.3以前の初期設定では、F2FSモジュールはブラックリストに入っている。</u><br> | ||
| 101行目: | 105行目: | ||
# __THIS FILE MAY BE MODIFIED__ | # __THIS FILE MAY BE MODIFIED__ | ||
<br> | <br> | ||
==== F2FSモジュールの読み込み (セキュアブートが無効の場合) ==== | |||
F2FSモジュールを読み込む。<br> | |||
sudo depmod -a $(uname -r) | sudo depmod -a $(uname -r) | ||
<br> | <br> | ||
PCを再起動して、F2FSファイルシステムが正常にマウントできるかどうか確認する。<br> | PCを再起動して、F2FSファイルシステムが正常にマウントできるかどうか確認する。<br> | ||
<br> | <br> | ||
また、F2FSモジュールが正常に読み込まれているかどうかを確認する場合は、以下のコマンドを実行する。<br> | |||
sudo modinfo f2fs | sudo modinfo f2fs | ||
<br> | <br> | ||
==== F2FSモジュールの読み込み (セキュアブートが有効の場合) ==== | |||
sudo | セキュアブートが有効の場合、F2FSモジュールの署名を登録する必要がある。<br> | ||
<br> | |||
sudo | まず、F2FSモジュールの署名に必要な設定ファイルを作成する。<br> | ||
mkdir -p ~/MOK/F2FS && cd ~/MOK/F2FS | |||
vi F2FS.config | |||
<br> | |||
# ~/MOK/F2FS/F2FS.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 F2FS) # 任意の名前 | |||
CN = SUSE Linux Enterprise Secure Boot (User Add F2FS) # 任意の名前 | |||
emailAddress = suse@localhost # 任意のメールアドレス | |||
[ myexts ] | |||
basicConstraints=critical,CA:FALSE | |||
keyUsage=digitalSignature | |||
subjectKeyIdentifier=hash | |||
authorityKeyIdentifier=keyid | |||
<br> | |||
キーペアを作成する。<br> | |||
openssl req -x509 -new -nodes -utf8 -sha256 -days 36500 -batch -config ./F2FS.config \ | |||
-outform DER -out ./F2FS.der -keyout ./F2FS.priv \ | |||
-addext "extendedKeyUsage=codeSigning" | |||
<br> | |||
次に、MOK(Module owned Key)にキーをインポートする。<br> | |||
<code>--root-pw</code>オプションを付加することにより、再起動時のF2FSモジュールの署名において、rootパスワードが必要となる。<br> | |||
sudo mokutil --import ./F2FS.der --root-pw | |||
<br> | |||
PCを再起動して、上記のキーの署名する。<br> | |||
sudo systemctl reboot | |||
<br> | |||
F2FSモジュール(f2fs.ko)を署名する。<br> | |||
sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 ./F2FS.priv ./F2FS.der /lib/modules/$(uname -r)/kernel/fs/f2fs/f2fs.ko | |||
<br> | |||
必要であれば、F2FSモジュールをXZ形式またはZstandard形式に圧縮する。(任意)<br> | |||
# XZ形式の場合 | |||
cd /lib/modules/$(uname -r)/kernel/fs/f2fs/ | |||
xz -f f2fs.ko | |||
# Zstandard形式の場合 | |||
cd /lib/modules/$(uname -r)/kernel/fs/f2fs/ | |||
zstd --rm f2fs.ko | |||
<br> | |||
F2FSモジュールを読み込む。<br> | |||
sudo depmod -a $(uname -r) # モジュール依存リストを更新する | |||
sudo modprobe -v f2fs # F2FSモジュールを読み込む | |||
<br> | |||
F2FSモジュールが正常に読み込まれているかどうかを確認する。<br> | |||
lsmod | grep f2fs # 正常に読み込まれたかどうかを確認する | |||
<br> | |||
F2FSモジュールが正しく署名されているかどうかを確認する。<br> | |||
正常に読み込まれている場合は、<u>"F2FS.der is already enrolled"</u>と表示される。<br> | |||
cd <F2FSモジュールの署名ファイルが存在するディレクトリ> | |||
sudo mokutil --test-key ./F2FS.der | |||
<br> | |||
上記の署名は、カーネルがアップデートされた場合、再度、署名が必要となることに注意する。<br> | |||
<br> | |||
作成したキーは信頼されるため、キーを適切に保存する必要がある。<br> | |||
このキーで署名されたものはシステムから信頼されるため、セキュリティリスクとなる可能性があることに注意する。<br> | |||
<br><br> | <br><br> | ||