📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の6版が非表示)
7行目: 7行目:


== F2FSモジュールのみインストールする方法 (推奨) ==
== F2FSモジュールのみインストールする方法 (推奨) ==
==== F2FSモジュールのインストール ====
==== F2FSモジュールのソースコードのダウンロード ====
Linuxカーネルのソースコードをダウンロード、または、インストールする。<br>
Linuxカーネルのソースコードをダウンロードする。<br>
* パッケージ管理システムから、Linuxカーネルのソースコードをインストールする場合
* パッケージ管理システムから、Linuxカーネルのソースコードをインストールする場合
*: <code>sudo zypper install kernel-source</code>
*: <code>sudo zypper install kernel-source</code>
19行目: 19行目:
*: <code>cd linux-<バージョン></code>
*: <code>cd linux-<バージョン></code>
<br>
<br>
<u>SUSE 15.4かつパッケージ管理システムからLinuxカーネル 5.14.21-150400.22のソースコードを使用する場合、</u><br>
==== F2FSモジュールのソースコードの修正 : SLE 15 SP4 / openSUSE Leap 15.4のみ ====
<u>F2FSのソースコードの一部にバグが存在するため、以下に示すように、ソースコードを修正する必要がある。</u><br>
<u>SLE 15 SP4 / openSUSE Leap 15.4において、パッケージ管理システムからLinuxカーネル 5.14.21-150400.22のソースコードを使用する場合、</u><br>
<u>F2FSのソースコードの一部にリグレッション(デグレード)が発生しているため、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>
33行目: 34行目:
  1101行目 : filemap_invalidate_lock(inode->i_mapping)
  1101行目 : filemap_invalidate_lock(inode->i_mapping)
<br>
<br>
==== F2FSモジュールのインストール ====
既存のカーネルコンフィグ(/bootディレクトリ内にあるカーネルコンフィグ)を元に、新しいカーネルコンフィグを生成する。<br>
既存のカーネルコンフィグ(/bootディレクトリ内にあるカーネルコンフィグ)を元に、新しいカーネルコンフィグを生成する。<br>
<code>make olderconfig</code>コマンドは、可能な限り既存のカーネルコンフィグの設定を使用して、ビルドディレクトリ内に必要なファイルを生成する。<br>
<code>make olderconfig</code>コマンドは、可能な限り既存のカーネルコンフィグの設定を使用して、ビルドディレクトリ内に必要なファイルを生成する。<br>
105行目: 107行目:
  # __THIS FILE MAY BE MODIFIED__
  # __THIS FILE MAY BE MODIFIED__
<br>
<br>
==== F2FSモジュールの読み込み (セキュアブートが無効の場合) ====
==== F2FSモジュールの読み込み (セキュアブートが無効の場合) ====
F2FSモジュールを読み込む。<br>
F2FSモジュールを読み込む。<br>
121行目: 124行目:
  vi F2FS.config
  vi F2FS.config
<br>
<br>
<syntaxhighlight lang="ini">
  # ~/MOK/F2FS/F2FS.configファイル
  # ~/MOK/F2FS/F2FS.configファイル
   
   
140行目: 144行目:
  subjectKeyIdentifier=hash
  subjectKeyIdentifier=hash
  authorityKeyIdentifier=keyid
  authorityKeyIdentifier=keyid
</syntaxhighlight>
<br>
<br>
キーペアを作成する。<br>
キーペアを作成する。<br>
159行目: 164行目:
  # XZ形式の場合
  # XZ形式の場合
  cd /lib/modules/$(uname -r)/kernel/fs/f2fs/
  cd /lib/modules/$(uname -r)/kernel/fs/f2fs/
  xz -f f2fs.ko
  sudo xz -f f2fs.ko
   
   
  # Zstandard形式の場合
  # Zstandard形式の場合
  cd /lib/modules/$(uname -r)/kernel/fs/f2fs/
  cd /lib/modules/$(uname -r)/kernel/fs/f2fs/
  zstd --rm f2fs.ko
  sudo zstd --rm f2fs.ko
<br>
<br>
F2FSモジュールを読み込む。<br>
F2FSモジュールを読み込む。<br>
271行目: 276行目:
  vi KernelModules.config
  vi KernelModules.config
<br>
<br>
<syntaxhighlight lang="ini">
  # ~/MOK/KernelModules/KernelModules.configファイル
  # ~/MOK/KernelModules/KernelModules.configファイル
   
   
290行目: 296行目:
  subjectKeyIdentifier=hash
  subjectKeyIdentifier=hash
  authorityKeyIdentifier=keyid
  authorityKeyIdentifier=keyid
</syntaxhighlight>
<br>
<br>
キーペアを作成する。<br>
キーペアを作成する。<br>
360行目: 367行目:
全てのLinuxカーネルモジュールを読み込む。<br>
全てのLinuxカーネルモジュールを読み込む。<br>
  sudo depmod -a $(uname -r)  # モジュール依存リストを更新する
  sudo depmod -a $(uname -r)  # モジュール依存リストを更新する
  sudo modprobe -a            # Linuxカーネルモジュールを読み込む
  sudo modprobe -v f2fs      # Linuxカーネルモジュールを読み込む
<br>
<br>
F2FSモジュールが正常に読み込まれているかどうかを確認する。<br>
F2FSモジュールが正常に読み込まれているかどうかを確認する。<br>
385行目: 392行目:
<br>
<br>
<u>ただし、セキュアブートが有効の場合は、上記の"[[インストール - F2FS#Linuxカーネルモジュールの読み込み (セキュアブートが有効の場合)|Linuxカーネルモジュールの読み込み (セキュアブートが有効の場合)]]"セクションの手順を実行する必要がある。</u><br>
<u>ただし、セキュアブートが有効の場合は、上記の"[[インストール - F2FS#Linuxカーネルモジュールの読み込み (セキュアブートが有効の場合)|Linuxカーネルモジュールの読み込み (セキュアブートが有効の場合)]]"セクションの手順を実行する必要がある。</u><br>
<br><br>
== DKMSの使用 ==
F2FSカーネルモジュールにおいて、DKMSを使用して自動的にビルドおよびインストールする。<br>
<br>
F2FSカーネルモジュールのソースコードをインストールする。<br>
# SUSE
sudo zypper install kernel-source
<br>
F2FSカーネルモジュールのDKMSの設定ファイルを作成する。<br>
sudo mkdir -p /usr/src/f2fs-1.0
sudo vi /usr/src/f2fs/dkms.conf
<br>
# /usr/src/f2fs-1.0/dkms.confファイル
PACKAGE_NAME="f2fs"
PACKAGE_VERSION="1.0"
CLEAN="make clean"
MAKE="make"
BUILT_MODULE_NAME[0]="f2fs"
# /lib/modules/<カーネルバージョン>/kernel/fs/f2fsディレクトリにインストールする
DEST_MODULE_LOCATION[0]="/kernel/fs/f2fs"
# 特定のコンパイルフラグやオプションが必要な場合
# CONFIG_F2FS_FS=m          : F2FSをモジュールとしてビルド
# CONFIG_F2FS_STAT_FS=y      : F2FSの統計情報サポートを有効化
# CONFIG_F2FS_FS_XATTR=y    : 拡張属性のサポートを有効化
# CONFIG_F2FS_FS_POSIX_ACL=y : POSIX ACLのサポートを有効化
MAKE_ARGS="CONFIG_F2FS_FS=m CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y"
AUTOINSTALL="yes"
<br>
F2FSカーネルモジュールのソースコードを、DKMSの設定ファイルと同階層のディレクトリにコピーする。<br>
sudo cp -r /usr/src/linux-$(uname -r)/fs/f2fs /usr/src/f2fs-1.0
<br>
DKMSを使用して、F2FSカーネルモジュールをビルドおよびインストールする。<br>
sudo dkms add f2fs/1.0      または  sudo dkms add -m f2fs -v 1.0
sudo dkms build f2fs/1.0    または  sudo dkms build -m f2fs -v 1.0
sudo dkms install f2fs/1.0  または  sudo dkms install -m f2fs -v 1.0
<br>
モジュールがロードされていることを確認する。<br>
lsmod | grep f2fs
<br>
これにより、f2fsカーネルモジュールがDKMSにより自動的にビルドおよびインストールされる。<br>
Linuxカーネルがアップデートされた場合でも、DKMSが自動的にカーネルモジュールを再ビルドするため、手動でカーネルモジュールを再インストールする必要はない。<br>
<br>
ただし、カーネルモジュールのソースコードが更新された場合は、最新のソースコードをダウンロードして、該当するDKMSの設定ファイルがある同階層のディレクトリにコピーする必要がある。<br>
<br><br>
<br><br>


== F2FS Toolのインストール ==
== F2FS Toolのインストール ==
* パッケージ管理システムからインストール
==== パッケージ管理システムからインストール ====
*# <code>sudo zypper install f2fs-tools</code>
sudo zypper install f2fs-tools
*: <br>
<br>
* ソースコードからインストール
==== ソースコードからインストール ====
*# F2FS Toolsのビルドに必要な依存関係のライブラリをインストールする。
F2FS Toolsのビルドに必要な依存関係のライブラリをインストールする。<br>
*#: <code>sudo zypper install libuuid-devel pkg-config autoconf libtool libselinux-devel </code>
sudo zypper install libuuid-devel pkg-config autoconf libtool libselinux-devel
*# [https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/ LinuxカーネルのF2FS ToolsのWebサイト]から、タグが"vX.Y.Z"のソースコードをダウンロードする。<br>または、以下のコマンドを実行して、ソースコードをダウンロードする。
<br>
*#: <code>git clone https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git -b master</code>
[https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/ LinuxカーネルのF2FS ToolsのWebサイト]から、タグが"vX.Y.Z"のソースコードをダウンロードする。<br>
*#: <code>cd f2fs-tools</code>
または、以下のコマンドを実行して、ソースコードをダウンロードする。<br>
*# ダウンロードしたファイルを解凍する必要があれば行う。
git clone https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git -b master
*#: <code>tar xf f2fs-tools-1.14.0.tar.gz</code>
cd f2fs-tools
*#: <code>cd f2fs-tools-1.14.0</code>
<br>
*# Configureスクリプトを作成する。
ダウンロードしたファイルを解凍する。<br>
*#: <code>./autogen.sh</code>
tar xf f2fs-tools-<バージョン>.tar.gz
*# F2FS Toolsをビルドおよびインストールする。<br>この時、ビルドディレクトリは作成しない。(作成した場合、ビルドが失敗する)
cd f2fs-tools-<バージョン>
*#: <code>./configure --prefix=<F2FS Toolsのインストールディレクトリ></code>
<br>
*#: <code>make -j $(nproc)</code>
Configureスクリプトを作成する。
*#: <code>make install</code>
./autogen.sh
<br>
F2FS Toolsをビルドおよびインストールする。<br>
この時、ビルドディレクトリは作成しない。(作成した場合、ビルドが失敗する)<br>
./configure --prefix=<F2FS Toolsのインストールディレクトリ>
make -j $(nproc)
make install
<br>
<br>
F2FS Toolsの使用するコマンドを以下に示す。<br>
F2FS Toolsの使用するコマンドを以下に示す。<br>
412行目: 473行目:
  sudo mkfs.f2fs -l <ラベル名> /dev/sd<span style="color:#C00000">X</span>
  sudo mkfs.f2fs -l <ラベル名> /dev/sd<span style="color:#C00000">X</span>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:SUSE]]
[[カテゴリ:SUSE]]