xfs_repirで出てくるフェーズをそれぞれ調べてみる。
xfs_repair /dev/sdb6 Phase 1 - find and verify superblock... Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 Phase 5 - rebuild AG headers and trees... - reset superblock... Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify and correct link counts... done
Phase 1 - find and verify superblock...
スーパーブロックの発見と検証: ファイルシステムのスーパーブロックを見つけて、その整合性を確認します。スーパーブロックにはファイルシステム全体のメタデータが含まれています。
Phase 2 - using internal log
内部ログの使用: 内部ログを使用してファイルシステムの状態を再構築します。 zero log...: ログのクリア。ログ領域をゼロクリアして初期化します。 scan filesystem freespace and inode maps...: ファイルシステムの空き領域とinodeマップをスキャンして、不整合をチェックします。 found root inode chunk: ルートinodeチャンク(ルートディレクトリのinodeを含むチャンク)を見つけます。
Phase 3 - for each AG...
- 各アロケーショングループ(AG)ごとの処理:
- scan and clear agi unlinked lists...: 各AGのunlinkedリストをスキャンしてクリアします。これは、削除されたがまだ解放されていないinodeのリストです。
- process known inodes and perform inode discovery...: 既知のinodeを処理し、新しいinodeを発見します。
- agno = 0: AG 0の処理。
- process newly discovered inodes...: 新たに発見されたinodeを処理します。
Phase 4 - check for duplicate blocks...
重複ブロックのチェック: setting up duplicate extent list...: 重複するエクステントのリストを設定します。 check for inodes claiming duplicate blocks...: 重複するブロックを主張するinodeをチェックします。 agno = 0: AG 0のチェック。
Phase 5 - rebuild AG headers and trees...
AGヘッダーとツリーの再構築: reset superblock...: スーパーブロックをリセットします。
Phase 6 - check inode connectivity...
inodeの接続性をチェック: resetting contents of realtime bitmap and summary inodes: リアルタイムビットマップとサマリーinodeの内容をリセットします。 traversing filesystem ...: ファイルシステムをトラバースします。 traversal finished ...: トラバースが終了しました。 moving disconnected inodes to lost+found ...: 接続されていないinodeを lost+found ディレクトリに移動します。
Phase 7 - verify and correct link counts...
リンクカウントの検証と修正: inodeのリンクカウント(ファイルやディレクトリの参照回数)を検証し、必要に応じて修正します。
終わりに
ソースコードを探したが見つけられなかった...個人のForkみたいなのは見つけられたが公式のやつはどこにあるんだろう。