web-dev-qa-db-ja.com

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

私はファイルシステムの修復に関するブログ投稿を読んでいて、著者は良い質問を投稿しました…fsck -pは、人間の介入なしに小さなエラーを自動的に修正することになっています。しかし、ファイルシステムを修復するように言われた場合、正確には何が修正されるのでしょうか?どのエラーが修正され、何が停止して、ユーザーにfsckを対話的に実行する必要があるかをユーザーに通知しますか?何らかのリストはありますか?

私はグーグルで遊んでいて、見つけるのはmanページだけです。これは実際には何を伝えていないのですか-p修正するか、ハンズオンフラグをトリガーするもの。私は特にext4ファイルシステムに興味があります。

16

あなたの質問への答えは e2fsprogs ソースコードのe2fsck/problems.cファイルにあります。 PR_PREEN_OKフラグを探すことで始められます。

発生する可能性のあるさまざまなエラー条件が多数あるため、完全なエラー処理は少し複雑になるため、特定のケースが心配な場合は、コードを詳しく調べることをお勧めします。ただし、以下のリストはエラー条件へのコメントから抽出されたものであり、プリモードの影響に関する大まかな概要がわかるはずです。

以下のエラー/警告は、現在-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への再配置
  • Metatdataグループ情報をXに再配置する
  • 再配置プロセス中のブロック読み取りエラー
  • 再配置プロセス中のブロック書き込みエラー
  • デバイスまたはソケットのiノードに設定された不変のフラグ
  • デバイス、FIFO、またはソケットのiノードのサイズがゼロ以外
  • ファイルシステムのリビジョンは0ですが、機能フラグが設定されています
  • ジャーナルiノードは使用されていませんが、データが含まれています
  • ジャーナルに悪いモードがあります
  • 非HTREEファイルシステムに設定されたINDEX_FLフラグ
  • 非ディレクトリに設定されたINDEX_FLフラグ
  • HTREEディレクトリの無効なルートノード
  • HTREEディレクトリでサポートされていないハッシュバージョン
  • HTREEルートノードの互換性のないフラグ
  • HTREEが深すぎる
  • 無効なiノード-> i_extra_isize
  • 無効なEAエントリ-> e_name_len
  • 無効なEAエントリ-> e_value_offs
  • 無効なEAエントリ-> e_value_block
  • 無効なEAエントリ-> e_value_size
  • 無効なEAエントリ-> e_hash
  • eXTENTS_FLがないiノードですが、エクステントiノードです
  • IノードにEOFBLOCKS_FLを設定しないでください
  • ディレクトリエントリが削除されたか、使用されていないiノード
  • ディレクトリのファイルタイプが設定されていません
  • ファイルシステムに設定されたディレクトリファイルタイプ
  • 無効なHTREEルートノード
  • HTREEの制限が無効です
  • 無効なHTREEカウント
  • HTREE内部ノードのハッシュが順序どおりではありません
  • _INODE_UNINITが設定されているグループでiノードが見つかりました
  • グループの未使用のiノード領域でiノードが見つかりました
  • i_blocks_hiはゼロでなければなりません
  • / lost + foundが見つかりません
  • 接続されていない長さゼロのiノード
  • Iノード参照カウントが間違っている
  • Inodeビットマップの最後のパディングは設定されていません。
  • ブロックの最後のビットマップのパディングが設定されていません。
  • ビットマップ差分ヘッダーをブロック
  • ブロックは使用されていませんが、ビットマップでマークされています
  • 使用されているが、ビットマップで使用されているとマークされていないブロック
  • ブロックビットマップの違い終了
  • Inodeビットマップ差分ヘッダー
  • Inodeは使用されていませんが、ビットマップでマークされています
  • 使用されているが、ビットマップで使用されているとマークされていないiノード
  • Inodeビットマップの違い終了
  • 不正なグループの空きiノード数
  • ディレクトリはグループの誤りとしてカウントされます
  • 空きiノードが間違っている
  • 間違ったグループの空きブロック数
  • 空きブロックが間違っている
  • ブロック範囲は使用されていませんが、ビットマップでマークされています
  • 使用されているがビットマップで使用されているとマークされていないブロック範囲
  • Inode範囲は使用されていませんが、ビットマップでマークされています
  • 使用されているが、ビットマップで使用されているとマークされていないiノード範囲
  • グループNブロックは使用中ですが、グループはBLOCK_UNINITとマークされています
  • グループNのiノードは使用中ですが、グループはINODE_UNINITとマークされています
  • E2F_FLAG_JOURNAL_INODEフラグが設定されている場合はジャーナルを再作成します

次のエラー条件により、-pフラグが設定されていても、非対話型のfsckプロセスが異常終了します。

  • グループにないビットマップをブロック
  • グループ内にないiノードビットマップ
  • グループ内にないiノードテーブル
  • ファイルシステムのサイズが間違っています
  • スーパーブロックのiノード数が正しくない
  • Hurdはファイルタイプ機能をサポートしていません
  • ジャーナルのスーパーブロックタイプが不明です
  • ジャーナルをクリアすべきかどうか尋ねる
  • ジャーナルスーパーブロックに不明な読み取り専用機能フラグが設定されています
  • ジャーナルスーパーブロックに、互換性のない機能フラグが設定されています
  • ジャーナルにサポートされていないバージョン番号があります
  • とにかくジャーナルを実行する必要があるかどうか尋ねる
  • Resize_inodeなしの予約済みブロック
  • Resize_inodeは有効ではありませんが、resize inodeがゼロ以外です
  • Iノードのサイズ変更が無効です
  • 最終マウント時刻は未来です
  • 最終書き込み時刻は未来です
  • グループ記述子Nのチェックサムが無効です。
  • ルートディレクトリはiノードではありません
  • ブロックビットマップが他のいくつかのfsブロックと競合しています
  • Inodeビットマップは他のいくつかのfsブロックと競合します
  • Iノードテーブルが他のいくつかのfsブロックと競合しています
  • ブロックビットマップは不良ブロック上にあります
  • Inodeビットマップは不良ブロック上にあります
  • Iノードの不正なブロック番号
  • ブロック番号がfsメタデータと重複しています
  • Inodeに不正なブロックがあります(ラッチ質問)
  • Iノードの不良ブロックが多すぎます
  • 不良ブロックiノードの不正なブロック番号
  • 不良ブロックのiノードに不正なブロックがあります(ラッチの質問)
  • 不良ブロックが不良ブロック間接ブロックとして使用されています
  • 不整合は修正できませんプロンプト
  • 不正なプライマリブロックプロンプト
  • メッセージを非表示にする
  • ファイルシステムがサポートしていない場合にimagicフラグがiノードに設定される
  • ファイルシステムがサポートしていないときにiノードに設定された圧縮フラグ
  • 孤立リンクリストに含まれていたiノードを処理する
  • 破損した孤立リンクリストの一部であったiノードを処理する(ラッチ質問)
  • 拡張属性ブロックの読み取りエラー
  • 無効な拡張属性ブロック
  • 拡張属性参照カウントが正しくない
  • 複数のEAブロックはサポートされていません
  • エラーEA割り当ての衝突
  • 不正な拡張属性名
  • 不正な拡張属性値
  • Inodeが大きすぎます(ラッチ質問)
  • ディレクトリが大きすぎます
  • 通常のファイルが大きすぎます
  • シンボリックリンクが大きすぎます
  • 不良ブロックには、ファイルシステムブロックと競合する間接ブロックがあります
  • Iノードのサイズ変更に失敗しました
  • iノードがディレクトリのようです
  • エクステントツリーの読み取り中にエラーが発生しました
  • エクステントを反復できない
  • エクステントの不正な開始ブロック
  • エクステントはファイルシステムを超えて終了します
  • 非extentsファイルシステムに設定されたEXTENTS_FLフラグ
  • iノードにエクステントがあり、スーパーブロックにINCOMPAT_EXTENTS機能がない
  • 高速シンボリックリンクにEXTENTS_FLが設定されています
  • エクステントが故障しています
  • Iノードに無効なエクステントノードがあります
  • 複製/不良ブロックのクローンを作成しますか?
  • 「。」の不正なiノード番号
  • ディレクトリエントリに不正なiノード番号があります
  • ディレクトリエントリは「。」へのリンクです。
  • ディレクトリのエントリが不良ブロックにあるiノードを指すようになりました
  • ディレクトリエントリにはディレクトリへのリンクが含まれています
  • ディレクトリエントリにルートディレクトリへのリンクが含まれています
  • ディレクトリエントリの名前に無効な文字が含まれています
  • 「。」がありませんディレクトリinode
  • ディレクトリiノードに '..'がありません
  • ディレクトリiノードの最初のエントリに「。」が含まれていません
  • ディレクトリiノードの2番目のエントリに「..」が含まれていません
  • i_faddrはゼロでなければなりません
  • i_file_aclはゼロでなければなりません
  • i_dir_aclはゼロでなければなりません
  • i_fragはゼロでなければなりません
  • i_fsizeはゼロでなければなりません
  • iノードに不良モードがあります
  • 破損したディレクトリ
  • ファイル名が長すぎます
  • ディレクトリ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の修正中に拡張属性ブロックの書き込みエラー
  • EA領域割り当て構造の割り当てエラー
  • Iノードのスキャン中にエラーが発生しました
  • Iノードビットマップの割り当てエラー
  • 内部エラー:dir_infoが見つかりませんでした
  • Icount構造の割り当てエラー
  • ディレクトリブロックの繰り返しエラー
  • Iノードの割り当て解除エラー
  • EA参照カウントの調整エラー
  • Iノードビットマップの割り当てエラー
  • ルートディレクトリの作成中にエラーが発生しました
  • ルートiノードはディレクトリではありません。中止
  • ルートiノードがないと続行できません。
  • 内部エラー:dir_infoが見つかりませんでした
  • プログラミングエラー:ビットマップのエンドポイントが一致しません
  • 内部エラー:ビットマップの終わりを回避
  • 置換iノードビットマップでのコピーエラー
  • 置換ブロックビットマップでのコピーエラー
18
Noah