📢 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>SUSE15.4かつパッケージ管理システムからLinuxカーネル(5.14.21-150400.22)のソースコードを取得した場合、</u><br>
<u>SUSE 15.4かつパッケージ管理システムからLinuxカーネル 5.14.21-150400.22のソースコードを使用する場合、</u><br>
<u>F2FSのソースコードの一部にバグが存在するため、以下に示すようにソースコードを修正する必要がある。</u><br>
<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>セキュアブートが無効の場合は、F2FSモジュールを圧縮の設定を行ってインストールしてもよい。</u><br>
<u>セキュアブートが無効の場合は、Linuxカーネルモジュールに圧縮の設定を行ってビルドおよびインストールしてもよい。</u><br>
Linuxカーネルモジュールを圧縮する場合、Linuxカーネルのビルドディレクトリの.configファイルを編集する。<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># ...略</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>
*: <code># ...略</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># ...略</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>
*: <code># ...略</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モジュールをデプロイする。<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>
また、F2FSモジュールが正常に読み込まれているかどうかを確認する場合は、以下のコマンドを実行する。<br>
  sudo modinfo f2fs
  sudo modinfo f2fs
<br>
<br>
Linuxカーネルモジュールのインストール後は、Linuxカーネルのビルドファイルを削除する。(ファイル容量が膨大なため)<br>
==== F2FSモジュールの読み込み (セキュアブートが有効の場合) ====
  sudo make clean -j $(nproc)     # .configファイルを残す
セキュアブートが有効の場合、F2FSモジュールの署名を登録する必要がある。<br>
  または
<br>
  sudo make distclean -j $(nproc)  # .configファイル等の設定ファイルを全て削除する
まず、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>