home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2003 April / VPR0304.ISO / OLS / SALVAG11 / SALVAG11.LZH / MANUAL.TXT < prev    next >
Text File  |  1998-08-15  |  26KB  |  638 lines

  1. ■Disk Salvage tools - for FAT16/FAT32, Copyright(C) 1998 by Toshiaki Matsuda
  2.   Version 1.10 (1998-8-15)
  3.  
  4.   本パッケージに含まれる、プログラムの機能のリファレンスマニュアルです。これらのプログラムは、
  5. MS-DOS 5.0/V 6.2/V 、PC-DOS 6.1/V 6.3/V 7.0/V、 Windows95(DOS PROMPT)
  6. Windows98(DOS PROMPT)で動作します。
  7. 現在、私が認識している制限事項として次の2点があります。
  8.  
  9. ・修復できるHDDの最大容量は、8.3GB までです。これは、現在のツールが旧 
  10.  INT 13hを用いている為であり、拡張 INT 13h を使ったツール群をただいま
  11.  開発中です。拡張 INT 13h を使ったツール群は、Ver2.0 になる予定です。
  12. ・上記の記述と関連しますが、FAT32のBPB修復において、拡張INT 13h を使って領域
  13.  が確保されていた場合(パーティーション種別 0Ch だった場合)修復されたBPBは元のBPB
  14.  よりも総セクター数が小さくなります。ファイルが、このボリュームの最後の方まで配置されて
  15.  いた場合には、切り捨てられたセクターのデータが見えなくなると考えられますが、通
  16.  常は、問題無いでしょう(^^;
  17.  その様な場合には、メールを頂ければ、こちらで修復したBPBを送付致します。
  18.  
  19. <注意>
  20.  これらのプログラムは、直接BIOS(INT 13h)を呼び出して、CYL-HED-SEC の情報で読
  21. み書きを行います。ですから「SALVAGE.TXT」で説明する、立ち上げフロッピーから実行
  22. してください。
  23.  また、ウイルスプロテクションの常駐ソフトや、BIOS機能等は外した状態で使用してください。
  24. 文章の中には、CYL,HED,SEC,FAT 等の略英語や、クラスター,マスターブートレコード等のDOSで使わ
  25. れる専門用語が出てきます。ある程度は、「SALVAGE.TXT」で説明していますので、
  26. そちらを参照してください。また、それ以上の事を知りたい方は、様々な書籍が出ま
  27. わっていますので、そちらを参照してください。
  28. それからコマンドの引数についてですが、大文字・小文字はどちらでもかまいません。
  29. また、オプションスイッチは例えば "/S" でも "-S" でも、どちらでも使えます。
  30. このマニュアルでは、DOSの標準に従って、"/"の表記で統一します。
  31.  
  32. ● HDD_TEST.EXE [80,81,82...] [/S] [/C:MIN-MAX] [/L:Log-File]
  33.   ディスクの、シーケンシャルリードテストです。メディア系のエラーが、ディスクにあるかどうかをテストしま
  34. す。もしこのテストでエラーが発生し、そのエラー箇所がデータ領域であれば、"SCANDISK" の 
  35. クラスタースキャン により、読めないセクターを不良クラスタ-として登録する事で、不良セクターをソフト的
  36. に排除(不使用にする)する事ができます。
  37. ただし、エラー箇所がFATや、ルートディレクトリー、またはマスターブートレコードやBIOSパラメータブロックの
  38. 領域だった場合には、別のHDDにコピーして修復する必要があります。
  39. テストの最初に、BIOSから見えるディスクパラメータと、マスターブートレコードに書かれているパーティー
  40. ションテーブル 情報を表示します。
  41.   テスト中は <ESC> で中止する事ができます。
  42.  
  43. <引数>
  44. ・[80,81,82...]
  45.   BIOSから見える、ディスクのユニット番号を16進数で指定します。BIOSからはハードディスクの
  46. ユニット番号は、HDD#1 -> 80h、HDD#2 -> 81h、HDD#3 -> 82h の様に見えます。
  47. 省略すると、"80" となり HDD#1のテストが開始されます。
  48. ・[/S]
  49.   このオプションが無い場合には、エラーのアドレスは CYL- HED のみしか表示されません。
  50. SECアドレスは 0 と表示されます。(0 SEC というアドレスは存在しない)
  51. これは、データの読み込みはトラック単位で行われて、エラーはそのトラックのアドレスを報告するか
  52. らです。"/S"オプションを付ける事により、エラーの発生したトラックに対して1SECずつのセクター
  53. リードを行い、セクターまでのアドレスを表示します。ただし、エラーの無いディスクでは遅くなる事
  54. はありませんが、エラーのあるディスクではかなり遅くなります。
  55. ・[/C:MIN-MAX]
  56.   テストする、CYLアドレスの範囲を指定します。この指定がなければ、全CYLに対して
  57. テストが行われます。指定は、例えば "/C:0-100" の様に行って、この例では 0CYL
  58. から 100CYL までテストを行います。
  59. ・[/L:Log-File]
  60.   ログを採取するオプションです。ログは必ず "A:"ドライブに作られますので、装置名は
  61. 指定しないでください。ファイル名は任意の "PATH名\ファイル名" で、かまいませんが同名
  62. のファイルがあった場合には、以前のログが在るものと判断し、アペンドモードでログを
  63. 採取します。ログ採取は、日付・時刻を書きますので、それでいつのテストログか見分け
  64. てください。
  65.  
  66. <実行例>
  67. A:\>HDD_TEST /L:TEST
  68.  
  69. HDD Read Test Ver 1.0  Copyright(C) 1998 by Toshiaki Matsuda 
  70.  
  71. BIOS から認識されるHddパラメータ:706CYL-31HED-63SEC
  72.  
  73. 物理パーテーション#1:
  74.  Boot標識: 80  パーテーション種別: 6 
  75.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 519CYL-31HED-63SEC 
  76.  スタート論理アドレス: 3Fh  総セクター数: FFEC1h 
  77.  
  78. 物理パーテーション#2:
  79.  Boot標識: 0  パーテーション種別: 5 
  80.  スタートアドレス: 520CYL-0HED-1SEC  エンドアドレス: 706CYL-31HED-63SEC 
  81.  スタート論理アドレス: FFF00h  総セクター数: 5C0A0h 
  82.  Hdd の全トラックのリードテストを実施します。
  83.  
  84.  ログ採取の指定がされています。
  85.  ログを採取するフォーマット済みのFDをセットして<Enter>を押してください。
  86.   Read address: 8 cyl- 14 hed   
  87.  
  88. <ログの見方>
  89. >>HDD Read Test Ver 1.0  Copyright(C) 1998 by Toshiaki Matsuda 
  90. >>1998-02-11  11:14:45   Test Error log:
  91. >>
  92. >> 12cyl- 2hed- 62sec エラー (10h) 
  93.  
  94. コピーライトメッセージと、日付・時刻は必ずログに残ります。以下、エラーがあった場合にはBIOS
  95. から見える、物理アドレス(10進数)と、エラーステータス(16進数)が採取されます。
  96. 基本的には、画面に表示する内容と同じものがファイルにテキスト形式で残ります。
  97. エラーステータスは、BIOSが返してくれる1バイトのコードで、以下の内容になります。
  98.  
  99. (00h) エラー無し,正常終了                  (01h) 無効な機能またはパラメータを指定
  100. (02h) アドレスマークが見つからない            (04h) セクターが見つからない
  101. (05h) リセットに失敗                        (07h) ドライブパラメータアクティビティーが失敗
  102. (08h) DMAオーバーラン                        (09h) データ境界エラー
  103. (0Ah) 不良セクターフラグ検出                  (0Bh) 不良シリンダー検出
  104. (0Dh) フォーマットにおける無効なセクター数        (0Eh) 制御データアドレスマーク検出
  105. (0Fh) DMAアトリビューションレベルが範囲外         (10h) 訂正不能なECCエラー,CRCエラー
  106. (11h) 訂正可能なECCエラー                  (12h) コマンド処理中
  107. (13h) ドライブの電源が入っていない        (20h) 制御装置の障害
  108. (40h) Seek操作の障害                    (80h) タイムアウト
  109. (AAh) ドライブ動作不可                    (BBh) 確定できないエラー
  110. (CCh) 書き込み障害                      (E0h) 状況エラー / エラーレジスタ = 0
  111. (FFh) Sense操作の失敗
  112.  
  113.  一般に、メディア系のエラーでよく見かけるのは、(10h),(04h),(02h)あたりです。
  114. この辺が発生しているようだと、ディスクの磁気面か、あるいは磁気ヘッドの障害と考え
  115. てかまいません。それから、通常は(11h)は通知してきません。
  116. もしこれ以外のエラーであれば、ディスク メカ 以外の故障も有り得えます。
  117. エラーのステータスや、障害の状況によって判断し、原因を突き止める事が大切です。
  118.  
  119. ● HDD_COPY.EXE [/C:mini-max][/R:Retry count][/L:logfile]
  120.  ディスクのイメージコピーを行います。コピーは、HDD#1(80h) -> HDD#2(81h)に対して行われ
  121. ます。ディスクの BIOS パラメータは、HED数とSEC数が一致していればコピーができます。
  122. ただし、ワーク側(コピー先)のCYL数がマスター側(コピー元)より小さい場合には"/C"オプション
  123. で、コピーするシリンダーをBIOSパラメータより小さく取る必要があります。
  124. "HDD_TEST" と同じように、コピーの最初にBIOSから見えるディスクパラメータと、マスターブート
  125. レコードに書かれている、パーティーションテーブル情報を表示します。これは、逆コピーを防ぐ意味
  126. もあります。
  127. また、マスター側ではエラーがあってもプログラムは継続しますが、ワーク側はエラーが無い事を前提
  128. にしています。ワーク側のディスクは、最初に"HDD_TEST"をかけて、エラーがない事を確認して
  129. コピーを行ってください。ワーク側でエラーがあった場合には、プログラムは異常終了します。
  130. ライト時には 再リードを行って データのコンペア チェック を行っています。
  131. 「コンペアエラー」のメッセージが出た場合には、ディスクだけではなく、ケーブルや M/B に
  132. 異常がないか、よく確認して作業を進めてください。
  133.  コピー中でも<ESC>キーによって、中断は可能です。
  134.  
  135. <引数>
  136. ・[/C:MIN-MAX]
  137.   コピーする、CYLアドレスの範囲を指定します。この指定がなければ、マスター側(コピー元)
  138. の全CYLに対してコピーが行われます。ワーク側(コピー先)のシリンダー数が、マスター側より、小
  139. さい場合には、必ずワーク側のシリンダー数以下の数値を指定する必要があります。
  140. ・[/R:Retry count]
  141.   メディア系のエラーでは、何度か読み込みを繰り返すうちに読める事があります。
  142. このオプションでは、ソフトウェアのリトライ回数を指定します。このオプションが指定されなければ、
  143. リトライは行われません。
  144. ・[/L:Log-File]
  145.   ログを採取するオプションです。機能は、"HDD_TEST"と同じです。
  146.  
  147. <実行例>
  148. A:\>hdd_copy /c:520-600 /r:5
  149.  
  150. HDD Image Copy Tool Ver 1.0  Copyright(C) 1998 by Toshiaki Matsuda 
  151.  
  152. --- マスターディスク(コピー元 80h)のディスク情報 ---
  153.  
  154. BIOS から認識されるHddパラメータ:706CYL-31HED-63SEC
  155.  
  156. 物理パーテーション#1:
  157.  Boot標識: 80  パーテーション種別: 6 
  158.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 519CYL-31HED-63SEC 
  159.  スタート論理アドレス: 3Fh  総セクター数: FFEC1h 
  160.  
  161. 物理パーテーション#2:
  162.  Boot標識: 0  パーテーション種別: 5 
  163.  スタートアドレス: 520CYL-0HED-1SEC  エンドアドレス: 706CYL-31HED-63SEC 
  164.  スタート論理アドレス: FFF00h  総セクター数: 5C0A0h 
  165.  
  166.  確認したら<Enter> を押してください...
  167.  
  168.  --- ワークディスク(コピー先 81h)のディスク情報 ---
  169.  
  170.  BIOS から認識されるHddパラメータ:825CYL-31HED-63SEC
  171.  
  172.  物理パーテーション#1:
  173.  Boot標識: 0  パーテーション種別: 5 
  174.  スタートアドレス: 1CYL-0HED-1SEC  エンドアドレス: 825CYL-31HED-63SEC 
  175.  スタート論理アドレス: 7E0h  総セクター数: 1960E0h 
  176.  
  177.  確認したら<Enter> を押してください...
  178.  
  179.  HDDのイメージコピーを本当に開始しても良いですか?(Y / N):y
  180.  Hdd の指定されたトラックのイメージコピーを実施します。
  181.  
  182.  Copy address: 522 cyl- 7 hed    
  183.  
  184. <ログの見方>
  185.  ログの見方は、"HDD_TEST"と同じです。ログには、マスター側(コピー元)のリードできな
  186. かった、BIOSから見える物理アドレスとステータスが採取されます。
  187.  
  188. ● BOOT_SAV.EXE save-file [/R]
  189.   後に述べる、"MBR_UTIL"と、"BOOT_RCV"は、ディスクの マスターブートレコード0CYL-0HED-1SEC
  190. と、BIOSパラメータブロックの領域を強制的に書き換えます。BOOT_SAV は、修復作業に先立っ
  191. て、これらの BOOT SECTOR を"A:"フロッピーに保存します。
  192. 以前のバージョン 1.0 では、HDD#1(80h)のみに対応でしたが、本バージョンから他のHDD
  193. にも対応しました。それに伴って、保存する情報に HDD#,CYL,HED,SEC の情報をファイル
  194. に保存するようにしています。また、ファイルIDを以前のバージョンと変えていますが、旧バ
  195. ージョンで保存したファイルは、このバージョンでも戻す事が可能です。
  196. CYL,HED,SEC の情報を保存ファイルに登録できるので、現在ではサポート用の PATCH ツールとし
  197. ても活躍しています。他のツールで、PATCHを貼る場合にはPATCHするセクターを保存しますが
  198. その保存されたセクターを戻すツールとしても使用します。
  199.  保存した、情報を戻す場合には、"/R"オプションを付けます。また、同名ファイルが在る場
  200. 合には、上書きするか聞いてきます。 
  201.  
  202. <実行例>
  203. A:\>BOOT_SAV MBR_BPB.SAV
  204. Boot Sector Save&Restore Ver 1.1 Copyright(C) 1998 by Toshiaki Matsuda
  205.  
  206. ディスクの BOOT 領域を保存します。
  207. 保存するHDDのドライブ番号を指定して下さい(80,81,82,...87):80
  208. MBR & BPB を保存するフォーマット済みのFDをセットして<Enter>を押してください。
  209.  
  210. BOOT領域の保存は正常に行われました!
  211.  
  212. A:\>BOOT_SAV /R MBR_BPB.SAV
  213. Boot Sector Save&Restore Ver 1.1 Copyright(C) 1998 by Toshiaki Matsuda
  214.  
  215. ディスクの BOOT 領域をFDDから復元します。
  216. MBR & BPB を保存したFDをセットして<Enter>を押してください。
  217. これは、boot_sav の新バージョン1.1で保存されたファイルです。
  218.  
  219. 保存されているセクターは HDD#80, 0CYL-0HED-1SEC です。
  220. 復元しますか?(Y,y / etc):Y
  221.  
  222. セクターの復元は正常に完了しました。
  223.  
  224. 保存されているセクターは HDD#80, 0CYL-1HED-1SEC です。
  225. 復元しますか?(Y,y / etc):Y
  226.  
  227. セクターの復元は正常に完了しました。
  228.  
  229. 全ての保存されたセクターの復元は完了しました。
  230. A:\>
  231.  
  232. ● MBR_UTIL.EXE
  233.  ディスクの先頭には、ディスクの領域のどこからどこまでを、どんなOSで何の目的で使
  234. っているかを書いたパーティーションテーブルといわれる情報があります。
  235. このプログラムは、それを強制的に書き換えます。操作できるディスクは、HDD#1(80h)
  236. のみとなります。
  237.  なお、引数はありません。書き込んだ内容を見ながら操作をすると思い、コマンド式
  238. (1文字コマンド)にしました。
  239.  
  240. <操作の実際>
  241. A:\>MBR_UTIL      <-- DOSのプロンプトから引数無しで起動します
  242. Master Boot Record Patch Tool Ver 1.0 Copyright(C) 1998 by Toshiaki Matsuda
  243.  
  244. BIOS から認識されるHddパラメータ:706CYL-31HED-63SEC です。
  245.  
  246. 物理パーテーション#1:
  247.  Boot標識: 80  パーテーション種別: 6 
  248.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 519CYL-31HED-63SEC 
  249.  スタート論理アドレス: 3Fh  総セクター数: FFEC1h 
  250.  
  251. 物理パーテーション#2:
  252.  Boot標識: 0  パーテーション種別: 5 
  253.  スタートアドレス: 520CYL-0HED-1SEC  エンドアドレス: 706CYL-31HED-63SEC 
  254.  スタート論理アドレス: FFF00h  総セクター数: 5C0A0h 
  255.  
  256. 処理:>> (作業プロンプト) <Enter>キーで、使用できる1文字コマンドを表示します
  257.  
  258.   P(atch)-> パーティーションの強制書き換え
  259.   M(ax) Partition-> 区画#1に最大の FAT16 パーティーションを割り付け
  260.   E(xtended)DOS Partition-> 残領域に拡張 パーティーションを割り付け
  261.   B(PB) to MBR-> BIOS パラメータブロックから MBR 区画#1を修復
  262.   <ESC> : プログラム終了 
  263.  
  264. 処理:>> P (強制書き換えの例、左側の括弧の中は書き換え前の情報です)
  265. 書き換えるパーティション番号を入力 (1-4 / etc):1
  266.  
  267.   パーティーション種別:(6h)-> 6
  268.  ブート標識:(80h)-> 80
  269.  スタートアドレス:(0)CYL-> 0
  270.  スタートアドレス:(1)HED-> 1
  271.  
  272.  エンドアドレス:(519)CYL-> 519
  273.  
  274. ***** 書き換えられた物理パーテーション#1 *****
  275.  Boot標識: 80  パーテーション種別: 6 
  276.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 519CYL-31HED-63SEC 
  277.  スタート論理アドレス: 3Fh  総セクター数: FFEC1h 
  278.  
  279. 修正したパーティーション情報を、本当にディスクに書きますか?( Y,y / etc):Y
  280. マスターブートテーブルは、更新されました。
  281.  
  282. 書き換えるパーティション番号を入力 (1-4 / etc):(1~4以外の数字を入れると戻ります)
  283.  
  284. +++++++++++++++++++++++++++++++++ 省略 ++++++++++++++++++++++++++++++++++++++
  285.  
  286. 処理:>> M (最大パーティーションの割付け例、2GB 超のHDD では、2GB 割付けられます)
  287. 最大パーティーションを区画#1に作成し、FAT16を割り当てます。
  288. ディスクの容量が2GB以下の為、ディスクの全領域をFAT16に割り当てます。
  289.  
  290. ***** 書き換えられた物理パーテーション#1 *****
  291.  Boot標識: 80  パーテーション種別: 6 
  292.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 706CYL-31HED-63SEC 
  293.  スタート論理アドレス: 3Fh  総セクター数: 15BF61h 
  294.  
  295. 修正したパーティーション情報を、本当にディスクに書きますか?( Y,y / etc):Y,y以外は中止
  296.  
  297. 自信が無さそうなのでやめました!
  298. <ESC>キーを押してください。
  299.  
  300. +++++++++++++++++++++++++++++++++ 省略 ++++++++++++++++++++++++++++++++++++++
  301.  
  302. 処理:>> B (0CYL-1HED-1SEC にある、BPB から逆生成して作成の例)
  303. BIOSパラメータブロックからマスターブートテーブルを逆生成して、区画#1を作成します。
  304.  
  305. ***** 書き換えられた物理パーテーション#1 *****
  306.  Boot標識: 80  パーテーション種別: 6 
  307.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 519CYL-31HED-63SEC 
  308.  スタート論理アドレス: 3Fh  総セクター数: FFEC1h 
  309.  
  310. 修正したパーティーション情報を、本当にディスクに書きますか?( Y,y / etc):Y
  311.  
  312. マスターブートテーブルは、更新されました。
  313. <ESC>キーを押してください。
  314.  
  315. +++++++++++++++++++++++++++++++++ 省略 ++++++++++++++++++++++++++++++++++++++
  316.  
  317. 処理:>> E (ディスクの残り容量の全てを拡張DOSパーティーションに割り当て)
  318. このディスクの残容量を全て拡張DOS領域に割り当てます。
  319. 未使用の全領域を拡張DOSに割り当て、区画#2とします。
  320.  
  321. ***** 書き換えられた物理パーテーション#2 *****
  322.  Boot標識: 0  パーテーション種別: 5 
  323.  スタートアドレス: 520CYL-0HED-1SEC  エンドアドレス: 706CYL-31HED-63SEC 
  324.  スタート論理アドレス: FFF00h  総セクター数: 5C0A0h 
  325.  
  326. 修正したパーティーション情報を、本当にディスクに書きますか?( Y,y / etc):Y
  327.  
  328. マスターブートテーブルは、更新されました。
  329. <ESC>キーを押してください。
  330.  
  331. ● BOOT_RCV.EXE [/NO-OS] [/MBR]
  332.  基本的には、パーティションテーブル#1に在るFAT16のBIOSパラメータブロックを修復するTOOLです。
  333. DOS や Windows95 のOSで管理される領域の先頭には、ファイルシステムの基本パラメータが書か
  334. れていて、これをBIOSパラメータブロック(略してBPB)といいます。
  335. もし、修復するディスクが2GB 以下のボリュームで、FAT16のパーティーションを1つだけ作っていた
  336. のであれば、このプログラムですぐに修復ができます。
  337.  この時は、マスターブートレコードのパーティションテーブルも同時に修復します。
  338. ただし、FATが正常である(FATの識別子が定位置に在る)事が必要です。
  339. また、この領域はBPBだけでは無くOSを立ちあげる為のBOOTストラップがあります。
  340. BOOTストラップは、フロッピーをフォーマットした際にフロッピーにも作られますので、BOOTストラップはフロッ
  341. ピーから読んで復旧します。
  342. ただし、BOOTディスクではない場合には、BOOTストラップは不要ですから、その場合には
  343.  "/NO-OS" オプションで読まずに済ます事もできます。
  344. もし、それらの復旧に失敗したら、マスターブートレコードのパーティションテーブルのパラメータを使って
  345. 修復を試みます。
  346. このプログラムも、HDD#1(80h)のみで実行可能です。
  347.  
  348. <引数>
  349. ・[/NO-OS]
  350.  BPB修復の際に、OSのBOOTストラップをフロッピーから読み込みません。
  351. ・[/MBR]
  352.  BPBのパラメータを、マスターブートレコードのパーティションテーブルのパラメータを使って修復します。
  353. このオプションが無ければ、このディスク全てが FAT16 の基本領域だったと判断し FATの位
  354. 置からBPBのパラメータを計算します。そして、もし計算が合わなければ、マスターブートレコード
  355. からBPBの修復を試みます。
  356.  
  357. <実行例>
  358. A:\>BOOT_RCV
  359. Boot recover tool Ver 1.0 Copyright(C) 1998 by Toshiaki Matsuda
  360.  
  361. BIOS から認識されるHddパラメータ:706CYL-31HED-63SEC です。
  362. このボリュームの最大パーテーションは、論理セクター数:15BF61h、隠しセクター数:3Fh です。
  363. FATセクター数は、100h(256d)と認定されました。
  364. クラスターあたりのセクター数が正しく計算できません。
  365.  
  366. マスターブートレコードの情報を使って、BISOパラメータブロックの修復を試みます。
  367.  
  368. 物理パーテーション#1:
  369.  Boot標識: 80  パーテーション種別: 6 
  370.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 519CYL-31HED-63SEC 
  371.  スタート論理アドレス: 3Fh  総セクター数: FFEC1h 
  372.  
  373.  マスターブートレコード#1に、FAT16のパーティーションを検出しました!
  374.  マスターブートレコードと BIOSから見えるHDDパラメータに矛盾はありません。
  375.  
  376. このパーティーションの総セクター数は FFEC1h と認定されました。
  377. FATセクター数は、100h(256d)と認定されました。
  378. クラスターあたりのセクター数は、10h(16d) と、認定されました。
  379.  
  380. 以上のパラメータで、BPBのパラメータを復旧してもいいですか?(Y/N): Y
  381.  
  382. MS-DOS,PC-DOS または Windows95 の BOOT ストラップを読み込みます。
  383. 復旧するOSでフォーマットしたFDをセットしてください。
  384. 準備ができたら <Enter> を押して下さい。
  385.  
  386. MBR と BPB の復旧は完了しました!
  387.  
  388. ● SUB_SRCH.EXE
  389.  マスターブートレコードと、BIOSパラメータブロックが修復できれば、DEBUG等で論理セクターアクセスが可能
  390. となり、NORTN UTILITY 等も使用できる様になります。
  391. このTOOLは、DEBUGを使って失われたサブディレクトリーを復旧するのを、支援するものです。
  392. 実は、このツールはユーザーサポートにおいて、一番活躍しています(^^;
  393. 何をやっているかと言うと、HDD#1(80h)のセクターの全てをリードして "."と".." の在る
  394. セクターアドレスを報告し、なおかつ"." と ".." の書かれている アドレスも報告します。
  395. ログ採取の機能が無いので、ログを採取するには、
  396. プロンプトから、 "A:\>SUB_SRCH.EXE >SUB_SRCH.LOG" と操作します。
  397. 間違っても、カレントドライブがHDDの時には リダイレクト ">" を使わないで下さい (^^;
  398.  具体的な修復は、"SALVAGE.TXT"のディレクトリーの構造と復旧を見てください。
  399.  
  400. <実行例>
  401.  
  402. Sub-directory Search Ver 1.0  Copyright(C) 1998 by Toshiaki Matsuda 
  403.  
  404. BIOS から認識されるHddパラメータ:706CYL-31HED-63SEC
  405.  
  406. 物理パーテーション#1:
  407.  Boot標識: 80  パーテーション種別: 6 
  408.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 519CYL-31HED-63SEC 
  409.  スタート論理アドレス: 3Fh  総セクター数: FFEC1h 
  410.  
  411. 物理パーテーション#2:
  412.  Boot標識: 0  パーテーション種別: 5 
  413.  スタートアドレス: 520CYL-0HED-1SEC  エンドアドレス: 706CYL-31HED-63SEC 
  414.  スタート論理アドレス: FFF00h  総セクター数: 5C0A0h 
  415.  Hdd のサブディレクトリー検索を実施します。
  416.  
  417. 0-16-49   3E1   1E   0
  418. 4-4-37   2061   1E6   1E
  419. 5-10-27   29B1   27B   0
  420. 5-12-29   2A31   283   0
  421. 5-13-14   2A61   286   0
  422. 5-28-61   2E41   2C4   0
  423. 9-26-27   4D21   4B2   1E
  424. 10-9-42   50E1   4EE   4B2
  425.  ↑        ↑     ↑    ↑
  426. 物理アドレス  |     |    |
  427.            |     |    |
  428. パーティーション#1から   |    |
  429. 数えた論理セクター    |    |
  430.                   |    |
  431.         "."のクラスターアドレス |
  432.                         |
  433.              ".."のクラスターアドレス
  434.  
  435. ● BPB2MBR.EXE [80,81,82...]
  436.  本来は、FDISK でパーティーションを開放した場合には MBR_UTIL でパーティーションテーブルを書き
  437. 直すつもりだったのですが、普通の人には MBR_UTIL でパーティーションテーブルを書き直す事
  438. は、中々難しい事が判りました。そこで、簡単に修正するために、本ツールを開発し
  439. ました。一応、FDISK で領域を開放した場合には、BPB2MBR をかけるだけで、ほとん
  440. ど修復できると考えています。BPB2MBRは、FAT32 にも対応しています。
  441.  
  442.  引き数には、BIOS から見える HDD# を指定します。HDD#1=80h HDD#2=81h になりま
  443. す。指定がなければ、80h が指定された事になりますが、"80" を引き数として指定し
  444. た場合には、最初のパーティーションをアクティブパーティーションにセットします。
  445.  このツールは文字通り、BPB から MBR を逆生成するツールです。アルゴリズムとしては、
  446. 2CYL分を検索して、FATのBPBを検出し残りのボリュームがあれば、さらにその次のシリンダー
  447. を2CYL分検索。そして、全てのボリューム領域を使いきるか、物理パーティーションテーブルが4つ
  448. になった時に修復した内容を表示して、書き換え指示を仰ぎ "Y" が入力されれば、
  449. MBR をフロッピーに保存して、MBR を書き換えます。そして、保存されたセクター情報は、
  450. BOOT_SAV Ver1.1 で戻す事ができます。
  451.  
  452.  このプログラムの欠点として、拡張DOSパーティーションの論理ドライブが、基本DOSパーティーシ
  453. ョンになってしまう事があります。データの修復としては、全く問題はないのですが、
  454. 私の開発環境である、PC-DOS J7.0/V の場合、復旧された 2つ目のパーティーション D: を
  455. フォーマットしようとした所、C: を D: の BPB でフォーマットしてしまう不具合が発生しまし
  456. た。これは、IBM 版 PC-DOS 7.0/V 特有の問題なのかどうかは、判りませんが、
  457. (WindowsNT では、そういう形のパーティーション作成がOKなので問題無いと思います)
  458. もし、基本DOSパーティーションが同一HDD内に2つ以上になった場合、フォーマット時には一旦削除
  459. して、再度パーティーションを作成して行う方が無難でしょう。
  460.  
  461. <実行例>
  462. A:\>BPB2MBR 80 (Enter)
  463.  
  464. BPB Search & MBR Generator Ver 1.0  Copyright(C) 1998 by Toshiaki Matsuda 
  465.  
  466. BIOS から認識されるHddパラメータ:758CYL-7HED-39SEC
  467.  
  468.  Read address: 1 cyl- 7 hed   
  469.  
  470. BIOSパラメータ ブロック検出アドレス: 0CYL-1HED-1SEC
  471. ファイルシステム: FAT16 , 総セクター数: 39CE1 
  472. スタート論理アドレス: 27 , エンド物理アドレス: 758CYL-7HED-39SEC
  473.  
  474.  ****** 書き換えられたパーティーションテーブル ******
  475.  
  476. 物理パーテーション#1:
  477.  Boot標識: 80  パーテーション種別: 6 
  478.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 758CYL-7HED-39SEC 
  479.  スタート論理アドレス: 27h  総セクター数: 39CE1h 
  480.  
  481. 修正したパーティーション情報を、本当にディスクに書きますか?( Y,y / etc):Y
  482.  
  483. 書き換えるMBR をFDに保存します。保存するファイル名を入力して下さい:MBR.SAV
  484.  
  485. マスターブートテーブルは、更新されました。
  486. A:>
  487.  
  488. ● FAT32RCV.EXE [80,81,82...]
  489.  FAT32のBPBを自動的に修復するプログラムです。1台のHDD全てに、FAT32 のパーティーシ
  490. ョンが割り付けられていたボリュームしか、現在対応しておりません。
  491. 制限事項として、このマニュアルの冒頭で書いた様に、拡張INT 13h で割り付けられたパー
  492. ティーションを復旧した場合に、ボリュームの総セクター数が小さくなる場合があります。
  493. また、BOOT_RCVではフロッピーのBOOT ストラップを読み込んで、直ちにBOOT可能なボリュームを
  494. 作る事が出来たのですが、FAT32ではそれができません。
  495. ですから、BOOTボリュームにするにはプロンプトから "A:\>SYS C:" を行う必要があります。
  496. また、マスターブートレコード(パーティーションテーブル)の修復は行わないので、MBRを修復するには
  497. "FDISK /MBR" と、BPB2MBR を行う必要があります。
  498.  
  499.  引き数は、BIOSから見えるHDDのユニット番号を付けます。引き数がなければ、HDD#1
  500. (80h)が指定されたものと判断します。PATCH を行う前に、そのセクター情報はフロッピー
  501. に保存し、保存された情報はBOOT_SAV で戻す事ができます。
  502.  
  503.  アルゴリズムについてですが、最初に 内部的に "SUB_SRCH" と同じプログラムが動いて
  504. サブディレクトリーを2つ検出します。そして、このサブディレクトリーの情報から、クラスタあたりの
  505. セクター数と大体のFATセクター数、BPBが在ったと思われるセクター位置を計算します。
  506. そして、元々BPBが在ったのは、BIOSから見える物理アドレスが 1SEC であろうという
  507. 予測で計算をくり返して、正確なパラメータをはじき出します。
  508. バージョン V1.0 -> V1.1の修正で、FAT セクター数の計算において、実際値と計算値の誤差
  509. 見込みを1から6に増やしています。が、これは計算ロジックが怪しい為ではなくて
  510. 拡張INT 13h を使って領域が確保された場合、旧INT 13h から見える総セクター数よりも
  511. 大きな領域が確保されてしまい、旧 INT 13h から見える領域を正しい値とした時に
  512. 計算値が、小さい方向へずれてしまう為です。
  513. これは、拡張INT 13h を使った次のバージョンでは解消される予定です。FAT のファイルシステム
  514. では、ボリュームの最初の方から使用されて、最後の方は使用される事が少ないので、デー
  515. タの復旧という点に関しては、問題は無いでしょう。
  516.  
  517.  ただし、未使用領域が小さくなるので、FSINFOと矛盾が生じます。BPB 修復後は、
  518. SCANDISK をかけて未使用領域の FSINFO との矛盾を修正して下さい。
  519. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  520.  
  521. <実行例>
  522.  
  523. A:\>fat32rcv 80
  524. FAT32 BPB Generator Ver 1.1  Copyright(C) 1998 by Toshiaki Matsuda 
  525.  
  526. BIOS から認識されるHddパラメータ:706CYL-31HED-63SEC
  527.  
  528. FAT32 の BPB を指定されたディスクに復旧します。
  529. 指定されたディスクの全領域に FAT32 がインストールされていましたね?(Y,y/etc):y
  530.  
  531. *** サブディレクトリー の検索中です ***
  532.  Read address: 30 cyl- 29 hed   
  533.  
  534. クラスタ当たりのセクター数:8h 
  535. FATセクター数:571h
  536. BPB が在ったと推測される論理アドレス:3Fh
  537. ボリュームの総セクター数:15BF61h
  538. BPB が在ったと推測される物理アドレス: 0CYL-1HED-1SEC
  539.  
  540. 修正したBIOS パラメータ ブロック を、本当にディスクに書きますか?( Y,y / etc):y
  541.  
  542. 書き換えるBPB をFDに保存します。保存するファイル名を入力して下さい:bpb_sav.img
  543.  
  544. BIOS パラメータ ブロックは、更新されました。
  545.  
  546. マスターブートレコードを修復するには、BPB2MBR をかけてください。
  547.  
  548.  
  549. A:\>bpb2mbr 80
  550. BPB Search & MBR Generator Ver 1.0  Copyright(C) 1998 by Toshiaki Matsuda 
  551.  
  552. BIOS から認識されるHddパラメータ:706CYL-31HED-63SEC
  553.  
  554.  Read address: 1 cyl- 31 hed   
  555.  
  556. BIOSパラメータ ブロック検出アドレス: 0CYL-1HED-1SEC
  557. ファイルシステム: FAT32 , 総セクター数: 15BF61 
  558. スタート論理アドレス: 3F , エンド物理アドレス: 706CYL-31HED-63SEC
  559.  
  560.  
  561.  ****** 書き換えられたパーティーションテーブル ******
  562.  
  563. 物理パーテーション#1:
  564.  Boot標識: 80  パーテーション種別: B 
  565.  スタートアドレス: 0CYL-1HED-1SEC  エンドアドレス: 706CYL-31HED-63SEC 
  566.  スタート論理アドレス: 3Fh  総セクター数: 15BF61h 
  567.  
  568. 修正したパーティーション情報を、本当にディスクに書きますか?( Y,y / etc):y
  569.  
  570. 書き換えるMBR をFDに保存します。保存するファイル名を入力して下さい:mbr_sav.img
  571.  
  572. マスターブートテーブルは、更新されました。
  573.  
  574. A:\>
  575.  
  576. ● S_COPY.EXE source-file  destination-drive
  577.  FATの情報が無くなった場合、ファイルをコピーしようとしてもクラスタ以上の容量はコピーす
  578. る事ができません。S_COPY は、FATの情報が失われた状態で、ディレクトリーの情報から
  579. データ(クラスタ)が全て連続しているものとしてコピーするツールです。
  580. 特にクイックフォーマットを行った後に、中のデータを取り出すのに威力を発揮します。
  581. Ver1.3 になってFAT32 にも対応し、不具合点もそこそこ無くなってきたと自負して
  582. います。なお、FATの情報を見ないでデータが連続しているものとしてコピーをしている
  583. ので、元々のデータが連続していなければ正しく復旧されません。
  584. 定期的に、DEFRAG をかけていたり、ボリュームの残り容量が十分に余っている場合など
  585. には、ほとんど復旧できると思います。
  586. (実際に、レジストして頂いたユーザーさんに使って頂いて、復旧に成功しています)
  587.  
  588.  引き数の source-file は、カレント装置のカレントディレクトリーのファイルしか指定できません。
  589. また、PATHの指定はできません。souce-file は、ピリオドを含んで最大12バイトまでしか
  590. 指定する事ができません。ですから、S_COPY.EXE は、環境変数 "PATH=" のあるディレク
  591. トリーにコピーしておくのが良いでしょう。なお、ワイルドカード "*" "?" は使用できます。
  592.  
  593.  引き数の destination-drive は、装置しか指定できません。装置は、"a:" や"d:"
  594. の様に、2文字で指定します。その指定された装置のカレントディレクトリーに、sorce-file
  595. と同じ名前のファイルを作成して、データをコピーします。destination 側に、同じファイル名が
  596. 在った場合には無条件に上書きします。
  597.  
  598. <実行例>
  599. C:\SALVAGE.110>s_copy *.* a:
  600. Stream Copy Tool Ver 1.3 Copyright(C) 1998 by Toshiaki Matsuda
  601.  
  602. ファイルシステムはFAT16/12 です。
  603.  
  604. ファイル名:HDD_TESTEXE
  605. クラスタアドレス:1DFAh
  606. ファイル容量:18053
  607. ファイル論理アドレス:79CFh
  608.  
  609. ファイル名:HDD_COPYEXE
  610. クラスタアドレス:1E11h
  611. ファイル容量:19917
  612. ファイル論理アドレス:7A2Bh
  613.  
  614. ファイル名:SUB_SRCHEXE
  615. クラスタアドレス:17DFh
  616. ファイル容量:46967
  617. ファイル論理アドレス:6163h
  618.  
  619. ファイルが連続しているものとしてコピーしました。
  620.  
  621. C:\SALVAGE.110>fc /b *.* a:\*.*
  622. ファイルの比較中です  HDD_TEST.EXE と A:\HDD_TEST.EXE
  623. FC: 違いは見つかりません
  624.  
  625. ファイルの比較中です  HDD_COPY.EXE と A:\HDD_COPY.EXE
  626. FC: 違いは見つかりません
  627.  
  628. ファイルの比較中です  SUB_SRCH.EXE と A:\SUB_SRCH.EXE
  629. FC: 違いは見つかりません
  630.  
  631. C:\SALVAGE.110>
  632. ==================================
  633. nbe01171@nifty.ne.jp
  634. matsuda-toshiaki@my.email.ne.jp
  635.  
  636. 松田 利昭
  637. ==================================
  638.