更新日: 2011 年 11 月 15 日
zombie.x の説明
説明
zombie.x の添付ドキュメントです。
zombie.txt
────────────────────────────────────
        削除ファイル抽出プログラム      zombie.x 1995 by M.Kamada
────────────────────────────────────
 zombie.x は、削除してしまったファイルの実体を抽出するためのシンプルな
プログラムです。FAT を完全に無視して、ルートディレクトリからディレクトリ
ツリーを辿ることができます。人間が手作業でファイルを探すときの操作をメニ
ュー形式にしただけの簡単なものですが、何かと便利なので使い続けています。
作ったのは 1993 年頃で、確か、締切直前に何かの原稿を消してしまって突貫工
事で作ったものを少しいじっただけだったと思います。
────────────────────────────────────
 このプログラムの目的はファイルの復活というよりも抽出です。抽出したファ
イルを他のドライブに書き出すことで、ターゲットとなるドライブには一切書き
込まずに目的のファイルを取り出すことができるのが特徴です。FAT やディレク
トリ情報を不用意に変更しないので安全です。
 FAT を無視するため、目的のファイルのクラスタが繋がっていることが抽出で
きるための必須条件です。ファイル内のクラスタが切れているときはこのプログ
ラムでは抽出できません(他の方法を使っても容易には抽出できません)。日頃
から refresh(g).x などを使って、重要なファイルはクラスタを繋いでおくとよ
いでしょう。
 削除済みファイルの実体は、次にファイルを書き込んだときに壊れることがあ
ります。Human v3 は空きクラスタの検索を最後にアクセスしたクラスタから開
始しますから、ファイル A を作ってファイル A を消してからファイル B を作
ると、ファイル A は最後のクラスタだけ破壊されてしまいます。削除してしま
った直後に抽出を試みた方が効果的です。削除ディレクトリにも入り込めるので、
ディレクトリをまるごと削除してしまった場合でもクラスタが繋がってさえいれ
ば 1 つずつ抽出できます(まとめて抽出する機能はありません)。
 仮想ディレクトリには入れません。仮想を解除してから実体のドライブに入っ
て下さい。
────────────────────────────────────
動作環境:
 X68000全シリーズ、X68000の各種エミュレータなどで動作します。
────────────────────────────────────
使い方:
        >zombie [ドライブ名:]
 ドライブ名を省略するとカレントドライブが対象になります。
 起動後は対話形式です。
────────────────────────────────────
表示例:
>zombie
X68k Zombie programmed 1995 by M.Kamada
ドライブ D:    セクタ         5        ページ  1/ 1
[ルートディレクトリ]
番号   属性     セクタ   日付     時間     サイズ ファイル名
   0 ----v---    <vol> 93-04-01 12:00:00    <vol> Human68k_Ver3
   1 --a--s--       11 93-03-20 12:00:00    58214 HUMAN.SYS
   2 --a-----       68 93-02-25 12:00:00      443 CONFIG.SYS
   3 --a-----       69 87-05-15 12:00:00      712 KEY.SYS
   4 --a-----       70 87-05-15 12:00:00     8028 USKCG.SYS
   5 --a-----       78 93-02-25 12:00:00     1023 BEEP.SYS
   6 --a-----       79 90-05-15 12:00:00       33 STARTUP.ENV
   7 --a-----       80 93-02-25 12:00:00    28382 COMMAND.X
   8 --a-----      108 93-02-25 12:00:00      162 AUTOEXEC.BAT
   9 ---d----      109 93-04-01 12:00:00    <dir> SYS
  10 ---d----      377 93-04-01 12:00:00    <dir> HIS
  11 ---d----      401 93-04-01 12:00:00    <dir> BIN
  12 ---d----      862 93-04-01 12:00:00    <dir> BASIC2
  13 ---d----      963 93-04-01 12:00:00    <dir> ASK
  14 ---d----      969 93-04-01 12:00:00    <dir> ETC
[コマンド一覧はプロンプト * に続けて ? を入力]
*
────────────────────────────────────
各表示項目の説明:
ドライブ A:    セクタ         5        ページ  1/ 1
         ~~           ~~~~~~~~~               ~~ ~~
         (A)             (B)                 (C) (D)
[ルートディレクトリ]
~~~~~~~~~~~~~~~~~~~~
        (E)
番号   属性     セクタ   日付     時間     サイズ ファイル名
   0 ----v---    <vol> 93-04-01 12:00:00    <vol> Human68k_Ver3
~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
 (F)    (G)      (H)      (I)      (J)      (K)            (L)
        (A)     ターゲットのドライブ名
        (B)     ディレクトリの先頭セクタ番号
                セクタ番号は論理番号で、常に 1 セクタ=1024 バイトです。
        (C)     ディレクトリ内の何ページ目か
                1 ページは 16 エントリ(1/2 セクタ)です。
        (D)     ディレクトリが全部で何ページあるか
        (E)     ターゲットがルートディレクトリであることを示す
        (F)     ディレクトリ内のエントリ番号
        (G)     エントリの属性
                左から eladvshr となっており、セットされていないビットは
                - が表示される。
                        e       実行可能
                        l       リンク
                        a       普通のファイル
                        d       ディレクトリ
                        v       ボリューム名
                        s       システム
                        h       不可視
                        r       書き込み不可
        (H)     先頭セクタ番号
                ファイルやディレクトリが始まっているセクタ番号。
        (I)     最終更新日付
        (J)     最終更新時間
        (K)     ファイルサイズ
                普通のファイルならばファイルサイズ。
                        <dir>           ディレクトリのとき
                        <vol>           ボリューム名のとき
        (L)     ファイル名
                削除済みエントリは、先頭 1 文字が <削除> となる。
────────────────────────────────────
コマンド:
 プロンプト * が表示されているとき、次のコマンドを指定できます。
・N             次のページを表示する
                ディレクトリ内のエントリが 16 個以上あるときは 1 ページ
                に収まらないので次ページがあります。
                N で次ページを表示します。
                リターンキーだけでも次ページを表示します。
・P             前のページを表示する
                1 ページ戻ります。
・L             現在のページを表示する
                現在のページをもう一度表示します。
・T             先頭のページを表示する
                現在のディレクトリの先頭のページを表示します。
・エントリ番号  ディレクトリの移動またはファイルの抽出
                指定したエントリがディレクトリのときは、そのディレクトリ
                に移動します。
                普通のファイルのときは、そのファイルを抽出します。
・R             ルートディレクトリへ移動する
                現在のドライブのルートディレクトリに移動します。
・Gセクタ番号   ディレクトリの移動
                指定したセクタからディレクトリが始まっているものとして、
                そのディレクトリに移動します。
                ルートディレクトリから辿ることができなくなってしまったデ
                ィレクトリを直接参照したい場合に使います。
                間違ったセクタ番号を指定しないで下さい。
・Dドライブ名   ドライブの移動
                ドライブを変更します。
・I             ドライブ情報の表示
                現在のドライブに関する情報を表示します。
・H             ヘルプ
                コマンド一覧を表示します。
                ? でも同じです。
・Q             終了
                zombie.x を終了します。
────────────────────────────────────
ファイルの抽出:
 ファイルの抽出を指定すると、新しいファイル名を聞いてくるので、必ず別の
ドライブ名を付けて指定して下さい。現在検索中のドライブを指定すると、他の
削除ファイルが破壊される可能性があります。
────────────────────────────────────
例:
*8
   8 --a-----      108 93-02-25 12:00:00      162 <削除>UTOEXEC.BAT
新ファイル名[取消は改行]: B:AUTOEXEC.BAT
────────────────────────────────────
 削除したファイルについて、クラスタが繋がっていたかどうかは自動的に判定
できませんので、実際は繋がっていなくても繋がっていたと思い込んで抽出して
しまいます。正しく取り出せたかどうかは、実際にファイルの内容を見て確かめ
て下さい。ファイルの後ろの方が壊れている場合はクラスタが繋がっていなかっ
たということです。
 壊れたディレクトリ情報を使ったり、ディスクの末尾から始まっていてクラス
タ繋がっていないファイルを取りだそうとすると、セクタが見つからないといっ
た白窓が出るかも知れません。特に危険な動作はしていないので、<中止>を選
択して終了して下さい。
────────────────────────────────────
配布条件:
 ZOMBIE.X はフリーソフトウェアです。配布や改造はご自由にどうぞ。
────────────────────────────────────
連絡先:
 E-mail: m_kamada@nifty.com
 http://homepage2.nifty.com/m_kamada/index.htm
────────────────────────────────────
(EOF)