ext4でfsck -p(preen)は何をしますか?


16

私はファイルシステムの修復に関するブログ投稿を読んでいて、著者は良い質問を投稿しました… fsck -p人間の介入なしに軽微なエラーを自動的に修正するはずです。しかし、ファイルシステムを修復するように指示された場合、正確に何が修正されますか?どのようなエラーが修正され、どのようなエラーが発生して停止し、ユーザーにfsckをインタラクティブに実行する必要があると伝えるのですか?ある種のリストはありますか?

私はあちこち探し回っていましたが、私が見つけたのはマニュアルページだけで、何-pが修正されるのか、何がハンズオンフラグをトリガーするのかを実際には示していません。ext4ファイルシステムに特に興味があります。

回答:


18

あなたの質問に対する答えe2fsck/problems.cは、e2fsprogsソースコードのファイルにあります。PR_PREEN_OK旗を探して、あなたが始めるはずです。

さまざまなエラー状態が発生する可能性があるため、完全なエラー処理がもう少し複雑になるため、特定のケースについて懸念がある場合は、コードを詳しく調べることをお勧めします。ただし、以下のリストはエラー条件へのコメントから抽出されたものであり、preenモードの効果に関する大まかな概要を提供するはずです。

現在、次のエラー/警告は、-pフラグが指定されたときに自動的に処理されます。

  • ヒントの再配置
  • ジャーナルiノードが無効です
  • ジャーナルのスーパーブロックが破損しています
  • スーパーブロックhas_journalフラグはクリアですが、ジャーナルがあります
  • スーパーブロックのneeds_recoveryフラグは設定されていますが、ジャーナルはありません
  • ファイルシステムのリビジョンは0ですが、機能フラグは設定されています
  • 外部スーパーブロックのスーパーブロックヒント
  • グループ記述子Nは、機能セットなしで未初期化とマークされました。
  • グループNブロックビットマップは初期化されていないが、使用中のiノードビットマップ。
  • グループ記述子Nに無効な未使用のiノード数があります。
  • 初期化されていない最後のグループブロックビットマップ。
  • test_fsフラグが設定されています(ext4が使用可能です)
  • 最終マウント時間は将来のものです(ファッジ)
  • 最終書き込み時刻は将来です(ファッジ)
  • ブロックグループチェックサム(質問のラッチ)は無効です。
  • ルートディレクトリにdtimeが設定されています
  • 予約済みiノードに不良モードがあります
  • 削除されたiノードのdtimeはゼロです
  • iノードは使用中ですが、dtimeが設定されています
  • 長さゼロのディレクトリ
  • iノードのi_sizeが正しくありません
  • iノードに不正なi_blockがあります
  • グループ内の不良スーパーブロック
  • グループ内の不良ブロックグループ記述子
  • 理由もなくブロックされた
  • メタデータを再配置するためのブロックの割り当てエラー
  • 再配置プロセス中のブロックバッファの割り当てエラー
  • XからYへのメタデータグループ情報の再配置
  • メタデータグループ情報のXへの再配置
  • 再配置プロセス中のブロック読み取りエラー
  • 再配置プロセス中のブロック書き込みエラー
  • デバイスまたはソケットのiノードに設定された不変フラグ
  • デバイス、FIFO、またはソケットiノードのサイズがゼロ以外
  • ファイルシステムのリビジョンは0ですが、機能フラグは設定されています
  • ジャーナルiノードは使用されていませんが、データが含まれています
  • ジャーナルのモードが悪い
  • 非HTREEファイルシステムに設定されたINDEX_FLフラグ
  • 非ディレクトリに設定されたINDEX_FLフラグ
  • HTREEディレクトリの無効なルートノード
  • HTREEディレクトリでサポートされていないハッシュバージョン
  • HTREEルートノードの非互換フラグ
  • HTREEが深すぎる
  • 無効なinode-> i_extra_isize
  • 無効なeaエントリ-> e_name_len
  • 無効なeaエントリ-> e_value_offs
  • 無効なeaエントリ-> e_value_block
  • 無効なeaエントリ-> e_value_size
  • 無効なeaエントリ-> e_hash
  • iノードにEXTENTS_FLがありませんが、エクステントiノードです
  • iノードにはEOFBLOCKS_FLを設定しないでください
  • ディレクトリエントリが削除されたか未使用のiノード
  • ディレクトリのファイルタイプが設定されていません
  • ファイルシステムに設定されたディレクトリファイルタイプ
  • 無効なHTREEルートノード
  • 無効なHTREE制限
  • 無効なHTREEカウント
  • HTREE内部ノードのテーブルに順序が乱れたハッシュがあります
  • _INODE_UNINITが設定されているグループでiノードが見つかりました
  • グループの未使用のiノード領域でiノードが見つかりました
  • i_blocks_hiはゼロでなければなりません
  • / lost + foundが見つかりません
  • 接続されていない長さゼロのiノード
  • iノードの参照カウントが間違っている
  • iノードビットマップの最後のパディングは設定されていません。
  • ブロックビットマップの最後のパディングは設定されていません。
  • ブロックビットマップ差分ヘッダー
  • ブロックは使用されていませんが、ビットマップでマークされています
  • ブロックは使用されていますが、ビットマップで使用済みとしてマークされていません
  • ブロックビットマップの違いは終わります
  • iノードビットマップ差分ヘッダー
  • iノードは使用されていませんが、ビットマップでマークされています
  • iノードが使用されていますが、ビットマップで使用済みとしてマークされていません
  • iノードのビットマップの違いが終了
  • グループの間違ったiノード数が間違っている
  • ディレクトリはグループの誤りとしてカウントされます
  • 無料のiノードは間違ってカウントされる
  • グループの空きブロック数が間違っている
  • 空きブロックが間違っているとカウントする
  • ブロック範囲は使用されていませんが、ビットマップでマークされています
  • 使用されているが、ビットマップで使用済みとしてマークされていないブロック範囲
  • iノード範囲は使用されていませんが、ビットマップでマークされています
  • 使用されているiノード範囲ですが、ビットマップで使用済みとしてマークされていません
  • グループNブロックが使用中ですが、グループはBLOCK_UNINITとしてマークされています
  • グループNのiノードが使用されているが、グループにINODE_UNINITのマークが付けられている
  • E2F_FLAG_JOURNAL_INODEフラグが設定されている場合、ジャーナルを再作成します

次のエラー状態により、-pフラグが設定されていても、非対話型fsckプロセスが中止されます。

  • グループにないブロックビットマップ
  • グループにないiノードビットマップ
  • グループにないiノードテーブル
  • ファイルシステムのサイズが間違っています
  • スーパーブロックのiノード数が正しくありません
  • ハードはファイルタイプ機能をサポートしていません
  • ジャーナルに不明なスーパーブロックタイプがあります
  • ジャーナルをクリアするかどうかを尋ねる
  • ジャーナルスーパーブロックに不明な読み取り専用機能フラグが設定されています
  • ジャーナルスーパーブロックに、互換性のない機能フラグが設定されています
  • ジャーナルにサポートされていないバージョン番号があります
  • とにかくジャーナルを実行するかどうかを尋ねる
  • resize_inodeなしの予約済みブロック
  • Resize_inodeは有効になっていませんが、iノードのサイズ変更はゼロ以外です
  • iノードのサイズ変更が無効です
  • 最終マウント時間は将来です
  • 最終書き込み時刻は将来です
  • グループ記述子Nチェックサムが無効です。
  • ルートディレクトリはiノードではありません
  • ブロックビットマップが他のfsブロックと競合する
  • iノードビットマップが他のfsブロックと競合します
  • iノードテーブルが他のfsブロックと競合しています
  • ブロックビットマップが不良ブロックにあります
  • iノードビットマップが不良ブロックにあります
  • iノードのブロック番号が無効です
  • ブロック番号がfsメタデータと重複しています
  • iノードに不正なブロックがあります(ラッチ質問)
  • iノード内の不良ブロックが多すぎる
  • 不正なブロックiノードの不正なブロック番号
  • 不良ブロックのiノードに不正なブロックがあります(ラッチの質問)
  • 不良ブロック間接ブロックとして使用される不良ブロック
  • 矛盾を修正することはできません
  • 不正なプライマリブロックプロンプト
  • メッセージプロンプトを表示しない
  • ファイルシステムがサポートしていないときにiノードに設定されたImagicフラグ
  • ファイルシステムがサポートしていないときにiノードに設定された圧縮フラグ
  • 孤立リンクリストの一部であったiノードに対処する
  • 破損した孤立リンクリストの一部であったiノードに対処する(ラッチ質問)
  • 拡張属性ブロックの読み取りエラー
  • 無効な拡張属性ブロック
  • 拡張属性の参照カウントが正しくありません
  • 複数のEAブロックはサポートされていません
  • エラーEA割り当て衝突
  • 不正な拡張属性名
  • 不正な拡張属性値
  • iノードが大きすぎる(ラッチ質問)
  • ディレクトリが大きすぎます
  • 通常のファイルが大きすぎます
  • シンボリックリンクが大きすぎます
  • 不良ブロックに、ファイルシステムブロックと競合する間接ブロックがあります
  • iノードのサイズ変更に失敗しました
  • iノードはディレクトリのようです
  • エクステントツリーの読み取り中にエラーが発生しました
  • エクステントの反復の失敗
  • エクステント内の不正な開始ブロック
  • エクステントはファイルシステムを超えて終了します
  • 非エクステントファイルシステムに設定されたEXTENTS_FLフラグ
  • iノードにエクステントがあり、スーパーブロックにINCOMPAT_EXTENTS機能がありません
  • 高速シンボリックリンクにはEXTENTS_FLが設定されています
  • エクステントが故障しています
  • iノードに無効なエクステントノードがあります
  • 複製/不良ブロックを複製しますか?
  • 「。」の不正なiノード番号
  • ディレクトリエントリに不正なiノード番号があります
  • ディレクトリエントリは「。」へのリンクです
  • ディレクトリエントリは、不良ブロックにあるiノードをポイントする
  • ディレクトリエントリにディレクトリへのリンクが含まれています
  • ディレクトリエントリにルートディレクトリへのリンクが含まれています
  • ディレクトリエントリの名前に無効な文字が含まれています
  • 「。」がありません ディレクトリiノード内
  • ディレクトリiノードに「..」がありません
  • ディレクトリiノードの最初のエントリに「。」が含まれていません
  • ディレクトリiノードの2番目のエントリに「..」が含まれていません
  • i_faddrはゼロでなければなりません
  • i_file_aclはゼロでなければなりません
  • i_dir_aclはゼロでなければなりません
  • i_fragはゼロでなければなりません
  • i_fsizeはゼロでなければなりません
  • inodeのモードが悪い
  • ディレクトリが破損しています
  • ファイル名が長すぎます
  • ディレクトリiノードにブロック(穴)がありません
  • 「。」NULLで終了していません
  • '..'はNULLで終了していません
  • 不正な文字デバイスiノード
  • 不正なブロックデバイスiノード
  • 「。」が重複しています エントリ
  • 重複した「..」エントリ
  • 最終的なrec_lenが間違っています
  • ディレクトリブロックの読み取りエラー
  • ディレクトリブロックの書き込みエラー
  • 「。」のディレクトリエントリ 大きい。スプリット?
  • 不正なFIFO iノード
  • 不正なソケットiノード
  • ディレクトリのファイルタイプが正しくありません
  • ディレクトリのファイル名がnullです
  • 無効なシンボリックリンク
  • i_file_acl(拡張属性ブロック)が悪い
  • ファイルシステムには大きなファイルが含まれていますが、sbにはそのようなフラグがありません
  • 無効なHTREEディレクトリをクリア
  • htree内部ノードの不良ブロック
  • 重複したディレクトリエントリが見つかりました
  • 一意でないファイル名が見つかりました
  • i_blocks_hiはゼロでなければなりません
  • 予期しないHTREEブロック
  • ルートiノードが割り当てられていません
  • lost + foundに空きがありません
  • 未接続のディレクトリiノード
  • ..エントリが間違っています
  • Lost + foundディレクトリではありません
  • 接続されていないiノード
  • スーパーブロックが破損しています
  • サポートされていないフラグメント
  • ファイルシステムの物理デバイスサイズの決定エラー
  • 外部ジャーナルには(サポートされていない)複数のファイルシステムがあります
  • 外部ジャーナルが見つかりません
  • 外部ジャーナルに不正なスーパーブロックがあります
  • スーパーブロックに無効なジャーナルUUIDがあります
  • iノードビットマップの割り当てエラー
  • ブロックビットマップの割り当てエラー
  • icountリンク情報の割り当てエラー
  • ディレクトリブロック配列の割り当てエラー
  • iノードのスキャン中にエラーが発生しました
  • ブロックの繰り返し中にエラーが発生しました
  • iノードカウント情報の保存中にエラーが発生しました
  • ディレクトリブロック情報の保存中にエラーが発生しました
  • iノードの読み取り中のエラー(クリア用)
  • refcount構造の割り当てエラー
  • refcountの修正中に拡張属性ブロックの読み取りエラー
  • refcountの修正中に拡張属性ブロックの書き込みエラー
  • EA領域割り当て構造の割り当てエラー
  • iノードのスキャン中にエラーが発生しました
  • iノードビットマップの割り当てエラー
  • 内部エラー:dir_infoが見つかりませんでした
  • icount構造の割り当てエラー
  • ディレクトリブロックの繰り返しエラー
  • iノードの割り当て解除エラー
  • EA refcountの調整エラー
  • iノードビットマップの割り当てエラー
  • ルートディレクトリの作成エラー
  • ルートiノードはディレクトリではありません。中止
  • ルートiノードなしでは続行できません。
  • 内部エラー:dir_infoが見つかりませんでした
  • プログラミングエラー:ビットマップエンドポイントが一致しません
  • 内部エラー:ビットマップの終わり
  • 置換iノードビットマップのコピーエラー
  • 置換ブロックビットマップのコピーエラー

ノアあなたがこれを知っていれば、すべてのこのエラーを作成/挿入することは可能ですか?これらのエラーの原因とこれらのエラーの可能な解決策を調査しようとしています。
-AnkurTank
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.