debugfs(8)
ext2/ext3 ファイルシステムデバッガ
書式
debugfs
[
-Vwci
]
[
-b
blocksize
]
[
-s
superblock
]
[
-f
cmd_file
]
[
-R
request
]
[
-d
data_source_device
]
[
device
]
説明
debugfs
は対話的なファイルシステムのデバッガである。
ext2 ファイルシステムの状態の調査・変更に利用できる。
device
は、ext2 ファイルシステムを含むデバイスに対応する
スペシャルファイルである。(例: /dev/hdXX)
オプション
- -w
-
ファイルシステムを read/write モードでオープンする。
このオプションを指定しない場合は、
ファイルシステムは read-only モードでオープンされる。
- -c
-
ファイルシステムを catastrophic
(甚大な破損が起こった場合の) モードでオープンする。
このモードでは inode とグループビットを最初に読み込まない。
これは重度に破損したファイルシステムに対しては有効なことがあるが、
一方このため catastrophic モードではファイルシステムを
read-only でしかオープンできない。
- -i
-
device
が
e2image
プログラムによって作成された ext2 イメージファイルであることを指定する。
ext2 イメージファイルは、スーパーブロック・
ブロックグループディスクリプタ・ブロックアロケーションビットマップ・
inode アローケションビットマップ・inode テーブルしか持たないので、
debugfs
の多くのコマンドが正しく機能しない。
警告:
安全性のチェックは行わない。
また、
-d
オプションによって
data_source_device
を指定せずに、
ls, dump
などのコマンドを実行した場合には
debugfs
は変な風に失敗するかもしれない。
debugfs
はデバッグ用のツールなので、洗練された部分のみであるとは限らない!
- -d data_source_device
-
-i
オプションと共に使用され、
読み込みブロックが ext2 イメージファイルに見つからない場合には、
指定された
data_source_device
が使用される。
このデバイスにはデータ・ディレクトリ・間接 (indirect) ブロックが含まれる。
- -b blocksize
-
通常のように正しいブロックサイズを検出する動作を行わず、
指定したブロックサイズをそのファイルシステムに用いる。
- -s superblock
-
ファイルシステムのスーパーブロックを、デフォルトの 1 ではなく、
指定したブロック番号から読ませる。
-s
オプションを指定した場合、
-b
オプションも指定しなければならない。
- -f cmd_file
-
debugfs
に、
cmd_file
からコマンドを読み込ませ、実行させる。
コマンドの実行を終了すると、
debugfs
は終了する。
- -R request
-
request
というひとつのコマンドを実行し、終了する。
- -V
-
debugfs
のバージョンを表示して終了する。
ファイル指定
debugfs
のコマンドの多くは、
debugfs が現在オープンしているファイルシステムにおける
inode (パス名ではない) を示す
filespec
という引数を取る。
filespec
には 2 種類の表記法がある。ひとつは、inode 番号を <> で囲む方法である
(例:
<2>)。
もうひとつはパス名で指定する方法である。
パス名が「/ (スラッシュ)」ではじまる場合、
debugfs
が現在オープンしているファイルシステムのルートからの相対パスを表す。
「/」で始まらない場合、カレントワーキングディレクトリからの相対パスを表す。
カレントワーキングディレクトリは
debugfs
の
cd
コマンドによって変更できる。
コマンド
debugfs
がサポートするコマンドの一覧を以下に示す。
- bmap filespec logical_block
-
filespec
で指定した inode における論理ブロック番号
logical_block
に対応する物理ブロック番号を表示する。
- cat filespec
-
filespec
で指定した inode の内容を標準出力へダンプする。
- cd filespec
-
カレントワーキングディレクトリを
filespec
で指定したディレクトリに変更する。
- chroot filespec
-
ルートディレクトリを
filespec
で指定したディレクトリに変更する。
- close
-
現在オープンしているファイルシステムをクローズする。
- clri file
-
file
で指定した inode の内容をクリアする。
- dump [-p] filspec out_file
-
filespec
で指定した inode の内容を
out_file
で指定したファイルにダンプする。
-p
オプションを与えると、
out_file
の所有者 (owner)、所有グループ (group)、パーミッション (permission) を
filespec
と同じにする。
- expand_dir filespec
-
filespec
で指定したディレクトリを展開する。
- feature [fs_feature] [-fs_feature] ...
-
スーパーブロックの様々なファイルシステム属性をセット/クリアする。
要求のあった属性をセット/クリアした後は、
ファイルシステム属性の現在状態の一覧を表示する。
- find_free_block [count [goal]]
-
goal
から始まる最初の
count
分の空きブロックを探し、その空きブロックをアロケート (allocate) する。
- find_free_inode [dir [mode]]
-
空き inode を探し、その inode をアロケートする。
dir
を指定すると、
これはその inode を置くべきディレクトリの inode と解釈される。
さらに
mode
を指定すると、
これは新しい inode のパーミッションと解釈される。
(mode
にディレクトリであることを指定するビットが立っている場合、
アロケートルーチンの挙動は異なるものになる。)
- freeb block [count]
-
ブロック番号
block
をアロケートされていないものとしてマークする。
省略可能な引数
count
を指定すると、ブロック番号
block
から始まる
count
分のブロックをアロケートされていないものとしてマークする。
- freei filespec
-
filespec
で指定した inode を解放する。
- help
-
debugfs(8)
で利用できるコマンドのリストを表示する。
- icheck block ...
-
コマンドラインに与えたブロック (複数指定可)
を利用している inode のリストを表示する。
- imap filespec
-
filespec
で指定された inode の (inode テーブルにおける)
inode データ構造の場所を表示する。
- init_filesys device blocksize
-
device
上に、デバイスサイズ
blocksize
の ext2 ファイルシステムを作成する。
このコマンドは、すべてのデータ構造を完全に初期化するわけではない。
これをしたい場合は
mke2fs(8)
プログラムを用いること。
このコマンドは、単にスーパーブロックとブロックディスクリプタを設定する
低レベルライブラリを呼び出すだけである。
- kill_file filespec
-
filespec
で指定した inode と、
その inode が使用しているブロックをアロケートから外す (deallocate)。
なお、その inode に対応するディレクトリエントリは削除しないことに注意。
ファイルを unlink したい場合は
rm
コマンドを参照のこと。
- lcd directory
-
debugfs
プロセスのカレントワーキングディレクトリを
ネイティブファイルシステム (訳註: 作業対象のものではなく、
debugfs が呼び出され、稼働しているファイルシステム) 上の
directory
に変更する。
- ln filespec dest_file
-
filespec
を指すリンク
dest_file
を作成する。
この際 inode の参照数 (reference counts) は変更しないことに注意。
- logdump [-acs] [-b<block>] [-i<filespec>] [-f<journal_file>] [output_file]
-
ext3 ジャーナルの内容をダンプする。
デフォルトではジャーナル inode はスーパーブロックで指定される。
しかし
-i
オプションで上書きすることも可能である。
-i
オプションは使用されるジャーナルを指定する inode 指定子を使う。
ジャーナルデータが書かれたファイルは、
-f
オプションを使って指定することができる。
そして
-s
オプションはスーパーブロックにあるバックアップ情報を使って、
ジャーナルをアロケートする。
-
-a
オプションを指定すると、
logdump
プログラムは全てのディスクリプタブロックの内容を表示する。
-b
オプションを指定すると、
logdump
プログラムは指定されたブロックを参照する全てのジャーナルレコードを表示する。
-c
オプションを指定すると、
-a
と
-b
オプションで選択された全てのデータブロックの内容を表示する。
- ls [-l] [-d] filespec
-
filespec
で指定したディレクトリ内にあるファイルをリスト表示する。
-l
フラグを指定すると、より詳細な書式でファイルをリスト表示する。
-d
フラグを指定すると、
このディレクトリにある削除エントリ (deleted entry)
をリスト表示する。
- modify_inode filespec
-
filespec
で指定した inode にある inode 構造体の内容を変更する。
- mkdir filespec
-
ディレクトリを作成する。
- mknod filespec [p|[[c|b] major minor]]
-
スペシャルデバイスファイル
(名前付きパイプ、キャラクタデバイス、ブロックデバイス)
を作成する。
キャラクタデバイスおよびブロックデバイスを作成する場合は、
デバイス番号として
major
および
minor
を指定しなければならない。
- ncheck inode_num ...
-
指定した inode 番号それぞれに対応するパス名のリストを表示する。
- open [-w] [-e] [-f] [-i] [-c] [-b blocksize] [-s superblock] device
-
編集の対象とするファイルシステムをオープンする。
-f
フラグをつけると、通常ではオープンできないような、
不明なファイルシステムや非互換なファイルシステムでも
強制的にオープンする。
-e
フラグをつけるとファイルシステムを排他モードでオープンする。
-b, -c, -i, -s, -w
オプションを指定した場合の動作は、
debugfs
にコマンドラインオプションを指定した場合と同じである。
- pwd
-
カレントワーキングディレクトリを表示する。
- quit
-
debugfs
を終了する。
- rdump directory destination
-
directory
と (通常のファイル・シンボリックリンク・
その他のディレクトリを含む) そのディレクトリの全ての内容を、
destination
という名前のディレクトリに再帰的にダンプする。
destination
はネイティブファイルシステム上に存在するディレクトリでなければならない。
- rm pathname
-
pathname
で指定したパス名を unlink する。
pathname
の示す inode が何も参照しなくなった場合には、
ファイルのアロケートを外す。
このコマンドは unlink() システムコールのように動作する。
- rmdir filespec
-
filespec
で指定したディレクトリを消去する。
- setb block [count]
-
ブロック番号
block
をアロケートされているものとしてマークする。
省略可能な引数
count
を指定すると、ブロック番号
block
から始まる
count
分のブロックをアロケートされているものとしてマークする。
- seti filespec
-
inode ビットマップに、
filespec
で指定した inode が使用中であるとマークする。
- set_inode_field filespec field value
-
filespec
で指定された inode を変更し、inode フィールド
field
が値
value
を持つようにする。
このコマンドで設定が可能な、正しい inode フィールドのリストは、
set_inode_field -l
コマンドによって表示できる。
- set_super_value field value
-
スーパーブロックフィールド
field
を
value
にする。このコマンドで設定が可能な、
正しいスーパーブロックフィールドのリストは、
set_super_value -l
コマンドによって表示できる。
- show_super_stats [-h]
-
スーパーブロックとブロックグループディスクリプタの内容を表示する。
-h
フラグが与えられると、
スーパーブロックの内容だけを表示する。
- stat filespec
-
filespec
で指定した inode の inode 構造体の内容を表示する。
- testb block [count]
-
ブロック番号
block
がブロックビットマップにおいてアロケートになっているかどうか調べる。
省略可能な引数
count
を指定すると、ブロック番号
block
から始まる
count
分のブロックを検査する。
- testi filespec
-
filespec
で指定した inode が
inode ビットマップにおいてアロケートになっているかどうか調べる。
- unlink pathname
-
pathname
で指定した、ある inode を指すリンクを削除する。
なおこの際、inode 参照数は変更しないことに注意。
- write source_file out_file
-
ファイルシステム内に
out_file
で指定したファイルを作成し、
source_file
の内容をそのファイルにコピーする。
環境変数
- DEBUGFS_PAGER, PAGER
-
debugfs(8)
はいくつかのコマンドの出力を常にページャプログラムにパイプする。
そのようなコマンドとしては、
show_super_stats,
list_directory,
show_inode_info,
list_deleted_inodes,
htree_dump
がある。
特定のページャを環境変数
DEBUGFS_PAGER
で明示的に指定することができる。
この環境変数が設定されていない場合は、環境変数
PAGER
で指定される。
-
1 つのページャが常に使われるので、
less(1)
ページャは特に適さない点に注意すること。
less(1)
はコマンドの表示を表示する前にスクリーンをクリアしたり、
ページャが終了するときにスクリーンへの出力をクリアしてしまうからである。
多くのユーザは
less(1)
ページャをいろいろな目的に使うのを好んでいる。
これが環境変数
DEBUGFS_PAGER
で、より一般的な環境変数
PAGER
を上書きできる理由である。