FSDB(8) | FreeBSD System Manager's Manual | FSDB(8) |
名称
fsdb — FFS デバッグ/編集ツール書式
fsdb | [ -d][ -f][ -r] fsname |
解説
fsdb ユーティリティは fsname (通常は raw ディスクパーティション) を open し、そのファイルシステムの inode データを操作するためのコマンドを受け付けます。コマンドは fsdb (inum X)> のプロンプトに対して入力します。ここでの X は現在選択されている i-number となります。最初に選択されている inode はファイルシステムのルート (i-number 2) となります。コマンドプロセッサには editline(3) ライブラリを使用しており、コマンド行を編集することによってタイピングの量を減らすことができます。コマンドループから抜けて終了する時には、ファイルシステムのスーパブロックが dirty とマークされ、バッファリングされているブロックがあればファイルシステムに書き込まれます。以下のオプションを使用可能です:
- -d
- デバッグ情報 (元は fsck(8) のコードに由来するもの) を出力します。
- -f
- 歴史的な理由により残されているもので、特に意味は持ちません。
- -r
- ファイルシステムを読み込み専用でオープンし、書き込みを行うコマンドを抑止します。
コマンド
組み込みの editline(3) のコマンドの他に fsdb は以下のコマンドをサポートしています:
- help
-
入力できるコマンドのリストを表示します。
- inode i-number
-
新しい現在の inode として inode
i-number を選択します。
- back
-
以前の inode に戻ります。
- clri i-number
-
i-number をクリアします。
- lookup name
- cd name
-
name を現在のディレクトリの中で探し、その inode を現在の inode に設定します。
name はマルチコンポーネントの名前か、スラッシュで始めて検索をルートの inode から始めることを指定できます。パス名の中のコンポーネントが見つからない場合、最後に有効であったディレクトリがアクティブな inode として使われます。このコマンドは開始する inode がディレクトリの場合のみ有効です。
- active
-
アクティブな inode を表示します。
- blocks
-
アクティブな inode のブロックリストを表示します。大きなファイルに対しては表示出力が長くなることに注意してください。すべての間接ブロックポインタもまた表示されるからです。
- findblk disk_block_number ...
-
指定されたディスクブロック番号を所有している inode を検索します。これらが絶対ディスクブロック番号ではなく、パーティションの始まりからのオフセットであることに注意してください。
- uplink
-
アクティブな inode のリンク数をインクリメントします。
- downlink
-
アクティブな inode のリンク数をデクリメントします。
- linkcount number
-
アクティブな inode のリンク数を
number に設定します。
- ls
-
現在の inode のディレクトリエントリをリストします。このコマンドは現在の inode がディレクトリである場合のみ有効です。
- rm name
- del name
-
現在のディレクトリ inode からエントリ
name を取り除きます。このコマンドは現在の inode がディレクトリである場合のみ有効です。
- ln ino name
-
現在のディレクトリ inode に inode
ino へのリンクを
name の名前で作成します。このコマンドは現在の inode がディレクトリである場合のみ有効です。
- chinum dirslot inum
-
ディレクトリエントリ
dirslot 中の i-number を
inum に変更します。
- chname dirslot name
-
ディレクトリエントリ
dirslot 中の名前を
name に変更します。このコマンドではディレクトリエントリを拡張することはできません。名前が現在存在するディレクトリスロットに収まる場合にのみ、エントリの名前の変更が可能です。
- chtype type
-
現在の inode のタイプを
type に変更します。
type には
file,
dir,
socket,
fifo のいずれかが指定できます。
- chmod mode
-
現在の inode のモードビットを
mode に変更します。このサブコマンドではファイルのタイプを変更することはできません。その場合は
chtype を使ってください。
- chflags flags
-
現在の inode のファイルフラグを
flags に変更します。
- chown uid
-
現在の inode の所有者を
uid に変更します。
- chgrp gid
-
現在の inode のグループを
gid に変更します。
- chgen gen
-
現在の inode の世代番号 (generation number) を
gen に変更します。
- btime time
- mtime time
- ctime time
- atime time
-
(それぞれ) 現在の inode の (新規) 作成時間、修正時間、変更時間またはアクセス時間を
time に変更します。
time は
YYYYMMDDHHMMSS[.nsec] の形式でなければなりません。ここで、
nsec はオプションで指定できるナノ秒の値となります。もし、ナノ秒が指定されていないと、
birthnsec,
mtimensec,
ctimensec または
atimensec のそれぞれのフィールドには 0 がセットされます。
btime は UFS2 ファイルシステムだけで利用可能であることに注意してください。
- quit, q, exit, <EOF>
- プログラムを終了します。
歴史
fsdb ユーティリティは、 fsck(8) のソースコードを使ってファイルシステムの操作のコードのほとんどを実装しています。 fsdb の残りの部分は、最初 NetBSD において によって書かれました。FreeBSD への移植は によって行われました。
バグ
``short'' のシンボリックリンクの操作は何の効果もありません。特に、シンボリックリンクのタイプは変更すべきではありません。モードはシンボル名ではなく数字で指定してください。
多分 fsdb に実装されていないことで、もっとやりたいことが沢山あるでしょう。
警告
このツールは最大限に注意を払って使って下さい。 fsck(8) を使っても修復できないほど FFS ファイルシステムを壊す恐れがあります。August 24, 2006 | FreeBSD |