EN JA
FSDB(8)
FSDB(8) FreeBSD System Manager's Manual FSDB(8)

名称

fsdbFFS デバッグ/編集ツール

書式

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
print
アクティブな 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 に変更します。 timeYYYYMMDDHHMMSS[.nsec] の形式でなければなりません。ここで、 nsec はオプションで指定できるナノ秒の値となります。もし、ナノ秒が指定されていないと、 birthnsec, mtimensec, ctimensec または atimensec のそれぞれのフィールドには 0 がセットされます。 btime は UFS2 ファイルシステムだけで利用可能であることに注意してください。

quit, q, exit, <EOF>
プログラムを終了します。

関連項目

editline(3), fs(5), clri(8), fsck(8)

歴史

fsdb ユーティリティは、 fsck(8) のソースコードを使ってファイルシステムの操作のコードのほとんどを実装しています。 fsdb の残りの部分は、最初 NetBSD において John T. Kohl によって書かれました。

FreeBSD への移植は Peter Wemm によって行われました。

バグ

``short'' のシンボリックリンクの操作は何の効果もありません。特に、シンボリックリンクのタイプは変更すべきではありません。

モードはシンボル名ではなく数字で指定してください。

多分 fsdb に実装されていないことで、もっとやりたいことが沢山あるでしょう。

警告

このツールは最大限に注意を払って使って下さい。 fsck(8) を使っても修復できないほど FFS ファイルシステムを壊す恐れがあります。
August 24, 2006 FreeBSD