MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
インストール - F2FSのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
インストール - F2FS
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == SUSEにおいて、古いファイルシステムの多くは、セキュリティのためブラックリストとして設定している。<br> F2FS等のファイルシステムを使用するには、SUSE向けのLinuxカーネルをユーザ自身でコンパイルする必要がある。<br> <br> ここでは、Linuxカーネルをコンパイルして、Linuxカーネルモジュールをインストールする手順を記載する。<br> <br><br> == F2FSモジュールのみインストールする方法 (推奨) == ==== 共通 ==== Linuxカーネルのソースコードをダウンロード、または、インストールする。<br> * パッケージ管理システムから、Linuxカーネルのソースコードをインストールする場合 *: <code>sudo zypper install kernel-source</code> *: <br> * Linuxカーネルの公式webサイトから、Linuxカーネルのソースコードをダウンロードする場合 *: [https://www.kernel.org Linuxカーネルの公式webサイト]または[https://github.com/torvalds/linux/tags Github]にアクセスして、対応するバージョンのLinuxカーネルのソースコードをダウンロードする。 *: あるいは、[https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/refs/tags Linuxカーネルの公式webサイトにあるGit]から、対応するバージョンのLinuxカーネルをダウンロードする。 *: ダウンロードしたファイルを解凍する。 *: <code>tar xf linux-<バージョン>.tar.gz</code> *: <code>cd linux-<バージョン></code> <br> <u>SUSE15.4かつパッケージ管理システムからLinuxカーネル(5.14.21-150400.22)のソースコードを取得した場合、</u><br> <u>F2FSのソースコードの一部にバグが存在するため、以下に示すようにソースコードを修正する必要がある。</u><br> sudo vi /usr/src/linux-5.14.21-150400.22/fs/f2fs/file.c <br> # /usr/src/linux-5.14.21-150400.22/fs/f2fs/file.cファイル # 修正前 1093行目 : filemap_invalidate_lock(mapping) 1101行目 : filemap_invalidate_lock(mapping) # 修正後 1093行目 : filemap_invalidate_lock(inode->i_mapping) 1101行目 : filemap_invalidate_lock(inode->i_mapping) <br> F2FSのビルド設定を行うため、<code>make menuconfig</code>コマンドを実行する。<br> make menuconfig -j $(nproc) # または sudo make menuconfig -j $(nproc) <br> TUI画面が起動するので、[File systems] - [F2FS filesystem support]に移動して、[M]キーを押下する。<br> TUI画面下にある[Save]を選択して、上記の設定を保存する。<br> <br> Linuxカーネルから、F2FSのみをビルドする。<br> make scripts prepare modules_prepare -j $(nproc) make -C . M=fs/f2fs -j $(nproc) # または sudo make scripts prepare modules_prepare -j $(nproc) sudo make -C . M=fs/f2fs -j $(nproc) <br> * SUSE 15.4の場合 *: 生成したf2fs.koファイルは圧縮しない。 *: <br> * SUSE 15.3以前の場合 *: 生成したf2fs.koファイルをXZ形式に圧縮してもよい。<br> *: <code>cd fs/f2fs</code> *: <code>xz -kv f2fs.ko</code> <br> /lib/modules/<使用しているLinuxカーネルのバージョン>/kernel/fs/f2fsディレクトリを作成して、f2fsカーネルモジュールをコピーする。<br> sudo mkdir /lib/modules/$(uname -r)/kernel/fs/f2fs sudo cp f2fs.ko /lib/modules/$(uname -r)/kernel/fs/f2fs <br> ==== F2FSモジュールの署名(SUSE15.4かつセキュアブートが有効の場合) ==== セキュアブートが有効の場合、Realtek BT8761BUモジュールの署名を登録する必要がある。<br> <u>また、ユーザが勝手にモジュールファイルをZstandard形式等へ圧縮してはならない。(モジュールの署名に失敗するため)</u><br> <br> 署名を登録する手順を以下に示す。<br> <br> まず、署名に必要な設定ファイルを作成する。<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 sudo depmod -a $(uname -r) # モジュール依存リストを更新する sudo modprobe -v f2fs # F2FSモジュールをロードする 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> ==== SUSE15.3の場合(セキュアブートが有効 / 無効も同様の手順で可能) ==== F2FSモジュールをデプロイする。<br> sudo depmod -a $(uname -r) <br> /etc/modprobe.dディレクトリにある60-blacklist_fs-f2fs.confファイルを、以下のように編集する。<br> sudo vi /etc/modprobe.d/60-blacklist_fs-f2fs.conf <br> # /etc/modprobe.d/60-blacklist_fs-f2fs.confファイル <br> # 編集前 blacklist f2fs __THIS FILE MAY BE MODIFIED__ # 編集後 # blacklist f2fs # __THIS FILE MAY BE MODIFIED__ <br> PCを再起動して、F2FSファイルシステムが正常にマウントできるかどうか確認する。<br> <br> また、F2FSモジュールが正常に読み込まれているかどうかを確認するには、以下のコマンドを実行する。<br> sudo modinfo f2fs <br> ==== 共通 ==== Linuxカーネルモジュールのインストール後は、以下のコマンドを実行することを推奨する。(ファイル容量が膨大なため)<br> sudo make clean -j $(nproc) # .configファイルを残す または sudo make distclean -j $(nproc) # .configファイル等の設定ファイルを全て削除する <br><br> == カーネルモジュール全体をインストールする方法 == Linuxカーネルをビルドするために必要なライブラリをインストールする。<br> sudo zypper install kernel-source <br> /usr/src/linux-<カーネルのバージョン>ディレクトリに移動して、以下のコマンドを実行する。<br> cd /usr/src/linux-<カーネルのバージョン> sudo make menuconfig -j $(nproc) <br> TUI画面が起動するので、[File systems] - [F2FS filesystem support]に移動して、[M]キーを押下する。<br> TUI画面下にある[Save]を選択して、上記の設定を保存する。<br> <br> SUSE15.3以前の場合、カーネルモジュールは、XZ形式に圧縮されている。<br> 圧縮を有効にするには、.configファイルに<code>MODULE_COMPRESS_GZIP=y</code>オプションまたは<code>MODULE_COMPRESS_XZ=y</code>オプションを追記する必要がある。<br> <u>(この設定は必須ではないが、SUSEの標準では、カーネルモジュールはXZ形式に圧縮されているため)</u><br> <br> まず、Linuxカーネルのビルドディレクトリの.configファイルを開いて、"<u>MODULE_COMPRESS</u>"を検索する。<br> 検索した"<u>MODULE_COMPRESS</u>"の直下に、以下の設定を追記する。<br> sudo vi /usr/src/linux-<カーネルのバージョン>/.config <br> # /usr/src/linux-<カーネルのバージョン>/.configファイル # ...略 CONFIG_MODULE_COMPRESS=y CONFIG_MODULE_COMPRESS_XZ=y # ...略 <br> 次に、Linuxカーネルをコンパイルする。<br> sudo make -j $(nproc) <br> Linuxカーネルモジュールのみをインストールする。<br> インストールディレクトリは、/lib/modules/<カーネルのバージョン>-defaultディレクトリである。<br> sudo make modules_install <br> 最後に、/etc/modprobe.dディレクトリにある60-blacklist_fs-f2fs.confファイルを、以下のように編集する。<br> sudo vi /etc/modprobe.d/60-blacklist_fs-f2fs.conf <br> # /etc/modprobe.d/60-blacklist_fs-f2fs.confファイル # 編集前 blacklist f2fs __THIS FILE MAY BE MODIFIED__ # 編集後 # blacklist f2fs # __THIS FILE MAY BE MODIFIED__ <br> PCを再起動して、F2FSファイルシステムが正常にマウントできるかどうか確認する。<br> <br> <u>※注意 1</u><br> <u>Linuxカーネルをアップデートした場合は自動的にF2FSモジュールが削除されるため、再度、F2FSモジュールをインストールする必要がある。</u><br> <u>もし、既にF2FSモジュールのバックアップが存在する場合、f2fs.ko.xzファイルを以下のディレクトリにコピーして、モジュール群をデプロイすることもできる。</u><br> # F2FSモジュールのコピー sudo mkdir /lib/modules/$(uname -r)/kernel/fs/f2fs/ sudo cp f2fs.ko.xz /lib/modules/$(uname -r)/kernel/fs/f2fs/ # モジュール群のデプロイ sudo depmod -a $(uname -r) <br> <u>※注意 2</u><br> <u>もし、VMware WorkStationをインストールしている場合は、併せて、Linuxカーネルヘッダもインストールする必要がある。</u><br> sudo make headers_install <br> Linuxカーネルモジュールのインストール後は、以下のコマンドを実行することを推奨する。(ファイル容量が膨大なため)<br> sudo make clean -j $(nproc) # .configファイルを残す または sudo make distclean -j $(nproc) # .configファイル等の設定ファイルを全て削除する <br><br> == F2FS Toolのインストール == * パッケージ管理システムからインストール *# <code>sudo zypper install f2fs-tools</code> *: <br> * ソースコードからインストール *# F2FS Toolsのビルドに必要な依存関係のライブラリをインストールする。 *#: <code>sudo zypper install libuuid-devel pkg-config autoconf libtool libselinux-devel </code> *# [https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/ LinuxカーネルのF2FS ToolsのWebサイト]から、タグが"vX.Y.Z"のソースコードをダウンロードする。<br>または、以下のコマンドを実行して、ソースコードをダウンロードする。 *#: <code>git clone https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git -b master</code> *#: <code>cd f2fs-tools</code> *# ダウンロードしたファイルを解凍する必要があれば行う。 *#: <code>tar xf f2fs-tools-1.14.0.tar.gz</code> *#: <code>cd f2fs-tools-1.14.0</code> *# Configureスクリプトを作成する。 *#: <code>./autogen.sh</code> *# F2FS Toolsをビルドおよびインストールする。<br>この時、ビルドディレクトリは作成しない。(作成した場合、ビルドが失敗する) *#: <code>./configure --prefix=<F2FS Toolsのインストールディレクトリ></code> *#: <code>make -j $(nproc)</code> *#: <code>make install</code> <br> F2FS Toolsの使用するコマンドを以下に示す。<br> 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> __FORCETOC__ [[カテゴリ:SUSE]]
インストール - F2FS
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse