6.50. E2fsprogs-1.43.1

E2fsprogs パッケージは ext2 ファイルシステムを扱うユーティリティを提供します。これは同時に ext3ext4 ジャーナリングファイルシステムもサポートします。

概算ビルド時間: 2.1 SBU
必要ディスク容量: 54 MB

6.50.1. E2fsprogs のインストール

テスト時の出力を調整しているスクリプトを修正します。

sed -i -e 's:\[\.-\]::' tests/filter.sed

E2fsprogs パッケージは、ソースディレクトリ内にサブディレクトリを作ってビルドすることが推奨されています。

mkdir -v build
cd build

E2fsprogs をコンパイルするための準備をします。

LIBS=-L/tools/lib                    \
CFLAGS=-I/tools/include              \
PKG_CONFIG_PATH=/tools/lib/pkgconfig \
../configure --prefix=/usr           \
             --bindir=/bin           \
             --with-root-prefix=""   \
             --enable-elf-shlibs     \
             --disable-libblkid      \
             --disable-libuuid       \
             --disable-uuidd         \
             --disable-fsck

環境変数と configure オプションの意味:

PKG_CONFIG_PATH, LIBS, CFLAGS

これらのオプションは、既にビルドした 5.33.「Util-linux-2.28.1」 パッケージを使って E2fsprogs をビルドできるようにするものです。

--with-root-prefix="" and --bindir=/bin

e2fsck などのプログラムは、極めて重要なものです。 例えば /usr ディレクトリがマウントされていない時であっても、そういったプログラムは動作しなければなりません。 それらは /lib ディレクトリや /sbin ディレクトリに置かれるべきものです。 もしこのオプションの指定がなかったら、プログラムが /usr ディレクトリにインストールされてしまいます。

--enable-elf-shlibs

このオプションは、本パッケージ内のプログラムが利用する共有ライブラリを生成します。

--disable-*

このオプションは libuuid ライブラリ、libblkid ライブラリ、uuidd デーモン、fsck ラッパーをいずれもビルドせずインストールしないようにします。 これらは Util-Linux パッケージによって、より最新のものがインストールされています。

パッケージをコンパイルします。

make

テストスイートを実行するにはまずライブラリへのリンクを作成する必要があります。 テストプログラムが参照するライブラリを /tools/lib 内のライブラリとするためです。 そしてコンパイル結果をテストするには以下を実行します。

ln -sfv /tools/lib/lib{blk,uu}id.so.1 lib
make LD_LIBRARY_PATH=/tools/lib check

E2fsprogs にて行われるテストの中には 256 MB のメモリ割り当てを行うものがあります。 この容量を確保できるだけの RAM がない場合は、十分なスワップ領域が利用可能であることを確認してください。 スワップ領域の生成と有効化については 2.5.「ファイルシステムの生成」2.7.「新しいパーティションのマウント」を参照してください。

実行モジュール、ドキュメント、共有ライブラリをインストールします。

make install

スタティックライブラリとヘッダーファイルをインストールします。

make install-libs

スタティックライブラリへの書き込みを可能とします。 これは後にデバッグシンボルを取り除くために必要となります。

chmod -v u+w /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a

本パッケージは gzip 圧縮された.info ファイルをインストールしますが、共通的な dir を更新しません。 そこで以下のコマンドにより gzip ファイルを解凍した上で dir ファイルを更新します。

gunzip -v /usr/share/info/libext2fs.info.gz
install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info

必要なら、以下のコマンドを実行して追加のドキュメントをインストールします。

makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
install -v -m644 doc/com_err.info /usr/share/info
install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info

6.50.2. E2fsprogs の構成

インストールプログラム: badblocks, chattr, compile_et, debugfs, dumpe2fs,e2freefrag, e2fsck, e2image, e2label, e2undo, e4defrag, filefrag, fsck.ext2, fsck.ext3, fsck.ext4, fsck.ext4dev, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.ext4dev, mklost+found, resize2fs, tune2fs
インストールライブラリ: libcom_err.so, libe2p.so, libext2fs.so, libss.so
インストールディレクトリ: /usr/include/e2p, /usr/include/et, /usr/include/ext2fs, /usr/include/ss, /usr/share/et, /usr/share/ss

概略説明

badblocks

デバイス (通常はディスクパーティション) の不良ブロックを検索します。

chattr

ext2 ファイルシステム上のファイル属性を変更します。 ext2 ファイルシステムのジャーナリング版である ext3 ファイルシステムにおいても変更を行います。

compile_et

エラーテーブルコンパイラー。 これはエラーコード名とメッセージの一覧を、com_err ライブラリを利用する C ソースコードとして変換するものです。

debugfs

ファイルシステムデバッガー。 これは ext2 ファイルシステムの状態を調査し変更することができます。

dumpe2fs

指定されたデバイス上にあるファイルシステムについて、スーパーブロックの情報とブロックグループの情報を表示します。

e2freefrag

フリースペースのフラグメント情報を表示します。

e2fsck

ext2 ファイルシステムと ext3 ファイルシステムをチェックし、必要なら修復を行うことができます。

e2image

ext2 ファイルシステムの重要なデータをファイルに保存します。

e2label

指定されたデバイス上にある ext2 ファイルシステムのラベルを表示または変更します。

e2undo

デバイス上にある ext2/ext3/ext4 ファイルシステムの undo ログを再実行します。 これは e2fsprogs プログラムが処理に失敗した際に undo を行うこともできます。

e4defrag

ext4 ファイルシステムにたいするオンラインのデフラグプログラム。

filefrag

特定のファイルがどのようにデフラグ化しているかを表示します。

fsck.ext2

デフォルトでは ext2 ファイルシステムをチェックします。 これは e2fsck へのハードリンクです。

fsck.ext3

デフォルトでは ext3 ファイルシステムをチェックします。 これは e2fsck へのハードリンクです。

fsck.ext4

デフォルトでは ext4 ファイルシステムをチェックします。 これは e2fsck へのハードリンクです。

fsck.ext4dev

デフォルトでは ext4 ファイルシステムの開発版をチェックします。 これは e2fsck へのハードリンクです。

logsave

コマンドの出力結果をログファイルに保存します。

lsattr

ext2 ファイルシステム上のファイル属性を一覧表示します。

mk_cmds

コマンド名とヘルプメッセージの一覧を、サブシステムライブラリ libss を利用する C ソースコードとして変換するものです。

mke2fs

指定されたデバイス上に ext2 ファイルシステム、または ext3 ファイルシステムを生成します。

mkfs.ext2

デフォルトでは ext2 ファイルシステムを生成します。 これは mke2fs へのハードリンクです。

mkfs.ext3

デフォルトでは ext3 ファイルシステムを生成します。 これは mke2fs へのハードリンクです。

mkfs.ext4

デフォルトでは ext4 ファイルシステムを生成します。 これは mke2fs へのハードリンクです。

mkfs.ext4dev

デフォルトでは ext4 ファイルシステム開発版を生成します。 これは mke2fs へのハードリンクです。

mklost+found

ext2 ファイルシステム上に lost+found ディレクトリを作成します。 これはそのディレクトリ内にあらかじめディスクブロックを割り当てておくことにより e2fsck コマンド処理を軽減させます。

resize2fs

ext2 ファイルシステムを拡張または縮小するために利用します。

tune2fs

ext2 ファイルシステム上にて調整可能なシステムパラメータを調整します。

libcom_err

共通的なエラー表示ルーチン。

libe2p

以下のコマンド dumpe2fschattrlsattr が利用します。

libext2fs

ユーザーレベルのプログラムが ext2 ファイルシステムを操作可能とするためのルーチンを提供します。

libss

debugfs コマンドが利用します。