12.2. fsck のファイルシステム固有の情報
12.2.1. ext2、ext3、および ext4
これらのファイルシステムはすべて、
e2fsck
バイナリーを使用して、ファイルシステムの検査と修復を実行します。ファイル名の fsck.ext2
、fsck.ext3
、および fsck.ext4
はこの同じバイナリーへのハードリンクです。これらのバイナリーは、システムの起動時に自動的に実行し、その動作は確認されるファイルシステムと、そのファイルシステムの状態によって異なります。
完全なファイルシステムの検査および修復は、メタデータジャーナリングファイルシステムではない ext2 や、ジャーナルのない ext4 ファイルシステムに対して呼び出されます。
メタデータジャーナリング機能のある ext3 ファイルシステムおよび ext4 ファイルシステムの場合、ジャーナルはユーザー空間で再生され、バイナリーは終了します。ジャーナル再生により、クラッシュ後に一貫したファイルシステムが確保されるため、これがデフォルトのアクションになります。
このファイルシステムで、マウント中にメタデータの不整合が生じると、その事実がファイルシステムのスーパーブロックに記録されます。e2fsck が、このようなエラーでファイルシステムがマークされていることを検出すると、e2fsck はジャーナル (がある場合) の再生後にフルチェックを実行します。
e2fsck は、-p オプションが指定されていない場合に、実行時にユーザー入力を要求することがあります。-p オプションは e2fsck に対して、安全に実行できるすべての修復を自動的に実行するように指示します。ユーザーの介入が必要な場合は、e2fsck が出力内の未修正の問題を示し、このステータスを終了コードに反映させます。
一般的に使用される e2fsck ランタイムオプションは次のとおりです。
- -n
- 非変更モード。チェックのみの操作。
- -b スーパーブロック
- プライマリーシステムが破損している場合は、別のスーパーブロックのブロック番号を指定します。
- -f
- スーパーブロックに記録されたエラーがなくても、フルチェックを強制実行します。
- -j journal-dev
- 外部のジャーナルデバイス (ある場合) を指定します。
- -p
- ユーザー入力のないファイルシステムを自動的に修復または preen (修復) する
- -y
- すべての質問に yes の回答を想定する
e2fsck のすべてのオプションは、 e2fsck (8) man ページで指定されています。
以下の 5 つの基本フェーズは、実行中の e2fsck によって実行されます。
- Inode、ブロック、およびサイズのチェック。
- ディレクトリー構造のチェック。
- ディレクトリー接続のチェック。
- 参照数のチェック。
- グループサマリー情報のチェック。
e2image (8)ユーティリティーを 使用して、診断またはテストの目的で、修復前のメタデータイメージを作成できます。-r オプションは、ファイルシステム自体と同じサイズのスパースファイルを作成するために、テスト目的で使用する必要があります。その後、e2fsck は作成されたファイルで直接操作できます。イメージが診断用にアーカイブまたは提供される場合は、-Q オプションを指定する必要があります。これにより、送信に適したよりコンパクトなファイル形式が作成されます。
12.2.2. XFS
ブート時に修復が自動的に行なわれません。ファイルシステムの検査または修復を開始するには、xfs_repair ツールを使用します。
注記
xfsprogs パッケージには
fsck.xfs
バイナリーがありますが、これは、システムの起動時に fsck.ファイルシステム
バイナリーを検索する initscripts を満たすためにのみ存在します。fsck.xfs
は、即座に終了コード 0 で終了します。
古い xfsprogs パッケージには、xfs_check ツールが同梱されています。このツールは非常にスピードが遅く、大きなファイルシステムに対して十分な拡張性がありません。そのため、xfs_repair -n が優先されるため非推奨になりました。
xfs_repair を動作させるには、ファイルシステムのクリーンなログが必要です。ファイルシステムがクリーンな状態でアンマウントされなかった場合は、xfs_repair を使用する前にマウントおよびアンマウントする必要があります。ログが破損していて再生できない場合、-L オプションを使用してログをゼロにすることができます。
重要
-L オプションは、ログを再生できない場合にのみ使用する必要があります。このオプションを使用すると、ログ内のすべてのメタデータの更新が破棄され、結果としてさらに不整合が発生します。
-n オプションを使用して、Dry Run で、チェックのみモードの xfs_repair を実行することができます。このオプションを指定した場合は、ファイルシステムに変更が加えられません。
xfs_repair には非常にいくつかのオプションがあります。共通に使用されるオプションには以下が含まれます。
- -n
- 非変更モードです。チェックのみの操作。
- -L
- ゼロメタデータログ。マウントによってログを再生できない場合にのみ使用します。
- -m maxmem
- 最大 MB の実行時に使用されるメモリーを制限します。必要な最小メモリーの概算を出すために 0 を指定できます。
- -l logdev
- 外部ログデバイス (ある場合) を指定します。
xfs_repair のすべてのオプションは、 xfs_repair (8) man ページで指定されています。
以下の 8 つの基本フェーズは、実行中の xfs_repair によって実行されます。
- Inode および inode ブロックマップ (アドレス指定) のチェック。
- Inode 割り当てマップのチェック。
- Inode サイズのチェック。
- ディレクトリーのチェック。
- パス名のチェック。
- リンク数のチェック。
- フリーマップのチェック。
- スーパーブロックチェック。
詳細は、xfs_repair (8) man ページを参照してください。
xfs_repair は対話的ではありません。すべての操作は、ユーザーの入力なしに自動的に実行されます。
診断またはテスト目的で、修復前にメタデータイメージを作成する必要がある場合は、xfs_metadump (8) ユーティリティーおよび xfs_mdrestore (8) ユーティリティーを使用できます。
12.2.3. Btrfs
注記
Btrfs は、Red Hat Enterprise Linux 7 ではテクノロジープレビューとして利用できますが、Red Hat Enterprise Linux 7.4 リリース以降では非推奨になりました。Red Hat Enterprise Linux の将来のメジャーリリースで削除される予定です。
詳細は、Red Hat Enterprise Linux 7.4 リリースノートの 非推奨の機能 を参照してください。
btrfsck は、btrfs ファイルシステムの確認および修復に使用されます。このツールは開発の初期段階であるため、すべてのタイプのファイルシステムの破損を検出または修復できるわけではありません。
デフォルトでは、btrfsck はファイルシステムを変更しません。つまり、デフォルトではチェックのみモードを実行します。修復が必要な場合は、--repair オプションを指定する必要があります。
以下の 3 つの基本フェーズは、実行中の btrfsck によって実行されます。
- エクステントのチェック。
- ファイルシステムの root チェック。
- ルートの参照数のチェック。
btrfs-image (8)ユーティリティーを 使用して、診断またはテストの目的で、修復前のメタデータイメージを作成できます。