reiserfsck(8) ReiserFS ファイルシステムのチェックツール

書式

reiserfsck [ -afprVy ] [ --rebuild-sb | --check | --fix-fixable | --rebuild-tree | --clean-attributes ] [ -j | --journal device ] [ -z | --adjust-size ] [ -n | --nolog ] [ -B | --badblocks file ] [ -l | --logfile file ] [ -q | --quiet ] [ -y | --yes ] [ -S | --scan-whole-partition ] [ --no-journal-available ] device

説明

reiserfsck はデバイス上の ReiserFS ファイルシステムを捜して、 必要なトランザクションを再現する。 さらに、ファイルシステムをチェックまたは修復する。
device
デバイスまたはパーティションに対応するスペシャルファイル (例えば、/dev/hdXX は IDE ディスクパーティションで、 /dev/sdXX は SCSI ディスクパーティションである)。

オプション

--rebuild-sb
このオプションは ReiserFS パーティションのスーパーブロックを復旧する。 このオプションが必要なのは、 ReiserFS ファイルシステムがあるにも関わらず、mount が 「read_super_block: reiserfs ファイルシステムが見つかりません (can't find a reiserfs file system)」と表示したときのみである。 しかし、何らかのパーティション編集プログラムを使用した後で ファイルシステムが見つからなくなった場合は、 再分割のときに何か不具合が起こって パーティションの開始位置が変更されたかも知れない ということを思い出してほしい。 もしそうならば、間違った場所にスーパーブロックを再構築するのではなく、 始めにパーティションの正しい開始位置を見つけるべきである。
--check
デフォルトの動作であるこのオプションでは、 ファイルシステムの整合性をチェックするが、 壊れたデータが発見されても修正は行わない。 読み込みのみでマウントされたファイルシステムに対しても使うことができる。
--fix-fixable
このオプションは --rebuild-tree オプションなしで修正できる 壊れたデータを復旧する。 通常このオプションが必要なのは、 --check オプションで「--fix-fixable で 修復可能な壊れたデータが見つかった (corruption that can be fixed with --fix-fixable)」 と表示されたときのみである。 このオプションで行われるのは、 データブロックへの誤ったポインタのゼロ化・ ディレクトリの st_size と st_blocksの修正・ 不正なディレクトリエントリの削除などである。
--rebuild-tree
このオプションは、デバイス上に見つかったリーフノード (leaf node) を使って、 ファイルシステムツリー全体を再構築する。 通常このオプションが必要なのは、 reiserfsck --check で 「--rebuild-tree を付けて実行する必要がある (Running with --rebuild-tree is required)」 と表示されたときのみである。 --rebuild-tree オプションを付けて実行する場合は、 パーティション全体のバックアップコピーを取っておくことを強く推奨する。 いったん reiserfsck --rebuild-tree を開始したら、 動作を完了させなければならない (中断すべきではない)。 完了しないと、ファイルシステムはマウントできない状態のままにされる。 これはその後のデータの破壊を防ぐためである。
--clean-attributes
このオプションは Stat-Data アイテムの予約フィールドをクリアする。 かつては ReiserFS に拡張属性がなかった。 拡張属性が実装されたとき、最初に古いパーティションを 何も書かれていない状態にする必要があった -- カーネルの ReiserFS のコードは 構造体の使われていないフィールドを考慮していなかった。 そのため、古い (属性が実装される前の) カーネルを ReiserFS ファイルシステムとともに使っていて、 拡張属性を使いたい場合は、最初にファイルシステムを 何も書かれていない状態にするべきである。
--journal device , -j device
このオプションは、現在のファイルシステムジャーナルのデバイス名を指定する。 このオプションは、メインデータのデバイスとは 別のデバイスにジャーナルが存在する場合に必要である (エキスパートオプション --no-journal-available を使用すれば、 このオプションを使わないこともできる)。
--adjust-size, -z このオプションは、 最後に見つかるバイトのオフセットよりもファイルサイズが大きい場合に、 reiserfsck にファイルサイズを修正させる。 つまりファイルの末尾のホール (穴) が削除される。 最後に見つかるバイトのオフセットよりもファイルサイズが小さい場合は、 --fix-fixable で修正される。
--badblocks file, -B file
このオプションは不正ブロックのリストを、 指定された `file` で与えられたブロックのリストに設定する。 ファイルシステムの不正ブロックのリストは、 新しいリストが追加される前に削除される。 --fix-fixable を指定することで不正ブロックを修復できる (debugreiserfs -B を参照)。 またブロックデバイスに不正なブロックがある場合は、 毎回 --rebuild-tree オプションを付けなければならない。
--logfile file, -l file
このオプションは、reiserfsck に対して 壊れたデータに関する情報を標準エラー出力ではなく 指定したログファイルに書き出すようにさせる。
--nolog, -n
このオプションは、reiserfsck に対して 壊れたデータについて報告しないようにさせる。
--quiet, -q
このオプションは、reiserfsck に対して 進捗状況を表示しないようにさせる。
--yes, -y
このオプションは reiserfsck に対して、 「これから実行することをユーザに提示した後で、 ユーザの了承を得る」という動作をさせないようにする。 reiserfsck はユーザが了承すると仮定する。 安全のため、--rebuild-tree オプションと一緒に指定すると、 このオプションは動作しない。
-a, -p
通常このオプションは、fsck -A により /etc/fstab にリストされているパーティションを 自動チェックするときに受け渡される。 これらのオプションを使うと、 reiserfsck は指定されたファイルシステムの情報を表示し、 スーパーブロックにあるエラーフラグが設定されているかをチェックし、 簡単なチェックをいくつか行う。 これらのチェックにより、壊れたデータが明らかになったり、 (修正可能な) 壊れたデータを指し示すフラグが スーパーブロックに設定されているのが見つかった場合は、 reiserfsck は修正可能データの修正モードに移行する。 修正不能な壊れたデータを示すフラグが、 スーパブロックに設定されているのが見つかった場合、 reiserfsck はエラーを出して終了する。
-V
このオプションは reiserfsprogs のバージョンを表示して終了する。
-r, -f
これらのオプションは無視される。

エキスパートオプション

自分がやっていることが分からない場合は、 これらのオプションを使ってはならない。 これらのオプションを使った結果、 データが失われたとしても我々は責任はとらない。
--no-journal-available
このオプションを指定すると、ジャーナルデバイスが使用できない場合でも reiserfsck を続行することができる。 このオプションはジャーナルがメインデータデバイスにある場合は影響しない。 注意: この操作の後には、reiserfstune により 新しいジャーナルデバイスを指定しなければならない。
--scan-whole-partition, -S
このオプションは --rebuild-tree のときに、 パーティションの使用されている領域だけでなく、 パーティション全体をスキャンさせる。

reiserfsck の使用例

1. reiserfs パーティション /dev/hda1 に何か不具合があると思った場合、 または単に定期的なディスクチェックを行おうとした場合に reiserfsck を使用する。

2. reiserfsck --check --logfile check.log /dev/hda1 を実行する。 reiserfsck --check がステータス 0 で終了した場合は、 エラーがなかったことを示している。

3. reiserfsck --check がステータス 1 で終了して (かつ修正可能な壊れたデータがあることが報告された) 場合は、 reiserfsck --fix-fixable --logfile fixable.log /dev/hda1 を 実行すべきである。

4. reiserfsck --check がステータス 2 で終了して (かつ致命的な壊れたデータがあることが報告された) 場合は、 reiserfsck --rebuild-tree を実行する必要がある。 reiserfsck --check が何らかの理由で失敗した場合も、 reiserfsck --rebuild-tree を実行すべきである。 ただしこの場合はバグレポートとして報告してほしい。

5. reiserfsck --rebuild-tree を実行する前に、 パーティション全体のバックアップを取っておくこと。 その後に reiserfsck --rebuild-tree --logfile rebuild.log /dev/hda1 を 実行すること。

6. reiserfsck --rebuild-tree のステップが失敗した場合、 または期待していた復旧が出来なかった場合は、 バグレポートとして報告してほしい。 プラットフォームや Linux カーネルのバージョンを含む できる限りの情報を提供してほしい。 我々は問題を解決する手助けをしようと思う。

終了コード

reiserfsck は以下の終了コードを使う:
  0 - エラーなし。
  1 - ファイルシステムのエラーが修正された。
  2 - 再起動が必要である。
  4 - ファイルシステムの致命的なエラーが
修正されないまま残されており、
reiserfsck --rebuild-tree を実行する必要がある。
  6 - ファイルシステムの修復可能なエラーが
修正されないまま残されており、
reiserfsck --fix-fixable を実行する必要がある。
  8 - 操作エラー。
  16 - 使用法エラーまたは書式エラー。

著者

このバージョンの reiserfsck は Vitaly Fertman <[email protected]> によって書かれた。

バグ

バグは、できる限り多くの情報 (ハードウェア・カーネル・パッチ・設定・ 表示された全てのメッセージ・ログファイル) とともに、 ReiserFS の開発者 <[email protected]> に報告してほしい。 関連する情報があるかもしれないので syslog を調べてほしい。

今後の予定

修復の高速化とシグナル処理。