Salvage HDD data of J3100SGT101
納戸の肥やし往年の110万円ラップトップパソコンJ3100SGT101のHDDデータをサルベージしようと思う。この当時のパソコンのデータ交換は、FDかRS232Cかプリンタポート(双方向に設定可能)位しかない。幸いこのマシンにはMS-KERMIT3.01がインストール済みなので、IBM-S50-debianのC-kermit9.0.302を使いRS232Cでデータを吸いあげよう。
実は当初、母艦をWindows7上の仮想DebianマシンのC-kermitでUSB-シリアルI/Fを使ってデータの吸い上げを行ったが、エラーが多発した。どうもハンドシェイクをまじめに行っていないようで、それが仮想マシンに起因するのか、USB‐シリアルI/Fに起因するのか判断がつきかねた。こいつらのデバグをやってあげるほど暇ではない。ここはやっぱり実機でしょう。そこで、そろそろ骨董品の域に達してきたIBM S50 の出番である。っていうか、D-Sub9ピンが付いているパソコンがうちにはこれしかなかったんだな。
[サルベージ対象マシン] 東芝製 J3100SGT101
CPU | intel 80386-20 | 20MHzクロック |
FPU | 無し | |
ROM | IPL:64Kbyte 漢字:1Mbyte display:32Kbyte |
|
RAM | 2Mbyte | |
videoRAM | 256Kbyte | |
Display | 640x400dot | ガス・プラズマ・ディスプレイ4階調 |
FDD | 3.5' 2DD/2HD | 720K/1.2Mbyte |
HDD | 3.5' 100Mbyte | |
RS232C I/F | D-Sub9ピン×1 | BIOSで非同期9600bpsまでサポート |
PRINTER I/F | D-Sub25ピン×1 | セントロニクスインターフェース準拠 |
OS | 日英MS-DOS Ver.5.0 |
[母艦] IBM製 ThinkCentre S50 ultra small 8086-2KJ
CPU | Pentium 4 | 3GHz |
ChipSet | Intel 865GV | 800MHz |
RAM | 1Gbyte | |
HDD | 72Gbyte | SATA/100 7200rpm |
CD-RW/DVD-ROM | ||
LAN | 1000BASE-T/100BASE-TX/10BASE-T | Wake on LAN対応 |
シリアルポート | D-Sub9ピン×1 | 16550A互換 |
パラレルポート | D-Sub25ピン×1 | |
モニタポート | ミニD-Sub15ピン×1 | |
USBポート | USB2.0×6(前面×2、背面×4) | |
マウス/キーボードポート | PS/2×2 | |
OS | Debian 3.2.68-1+deb7u1 i686 GNU/Linux |
[interface] NULLモデム作成
NULLモデム、いわゆるRS232Cクロスケーブルが無い。ストレートケーブルはあったので首チョンパ。ねじねじ結線。J3100 と S50 のD-Sub9ピン同士を繋ぐ。
[J3100] 起動
電源ON。CMOSのバックアップ電池はとっくのとおに切れているので、エラー起動。Check System. Then, press [F1] key ....
[F1]を押して Extend memory を 1MB にして、[F10] Y改行。
めでたく立ち上がったら、日付時刻合わせ、全ディレクトリ全ファイル名取得。
C:\> DATE 2015-06-05 C:\> TIME 10:50 C:\> DIR /S > FILES.TXTFILES.TXT のさわりをご覧にいれよう。
ドライブ C: のボリュームラベルは MS-DOS_5 ボリュームシリアル番号は 1943-2E79 ディレクトリは C:\ DOS <DIR> 92-10-03 0:55 PIC <DIR> 96-12-04 6:34 USERS <DIR> 92-10-03 20:31 HP95LX <DIR> 93-11-26 17:00 BACKUP <DIR> 80-01-01 1:48 TMP <DIR> 92-10-03 4:22 PI <DIR> 98-01-24 14:25 FILES TXT 0 80-01-01 0:07 C6 <DIR> 92-10-03 1:50 CPACK <DIR> 92-10-03 5:00 LHA <DIR> 92-10-03 12:16 MASM <DIR> 92-10-03 3:02 ORANGE <DIR> 92-10-10 11:24 MIFES <DIR> 92-10-10 11:20 KERMIT <DIR> 92-10-03 12:16 486 <DIR> 80-01-01 0:02 123R23J <DIR> 92-10-18 21:08 LZH <DIR> 92-10-23 1:05 TC <DIR> 92-10-24 13:53 AUTOEXEC BAT 290 98-02-07 17:54 CONFIG SYS 520 98-01-25 13:48 DMAIL <DIR> 80-01-01 0:05 MSK315 <DIR> 80-01-01 4:51 ALGORITH <DIR> 93-12-20 18:36 EXE <DIR> 96-10-25 4:42 CCC_FD <DIR> 80-01-01 2:16 XCODE <DIR> 80-01-01 0:10 ZIP <DIR> 98-01-11 9:26 28 個 810 バイトのファイルがあります. ディレクトリは C:\123R23J . <DIR> 92-10-18 21:08 .. <DIR> 92-10-18 21:08 123 SET 57859 96-12-07 20:18 123 EXE 9447 92-10-18 21:06 INSTALL EXE 44336 91-10-28 0:00 INSTALL SCR 13347 91-10-28 0:00 DISKMGR COM 10916 91-08-05 0:00 STATUS COM 3097 91-08-05 0:00 INSTALL LBR 338003 92-01-15 0:00 LOTUS COM 6276 91-08-05 0:00 UTIL SET 28976 91-08-05 0:00 123 CNF 10 91-08-05 0:00 123 CMP 209136 92-01-15 0:00 123 DYN 25898 92-01-15 0:00 123R23J ICO 766 91-08-05 0:00 123 HLP 159805 91-10-28 0:00 EDB3 HLP 17119 91-08-05 0:00 BPRINT EXE 14520 91-10-28 0:00 WINDOWS PRN 3952 91-08-05 0:00 TRANS COM 37630 91-10-28 0:00 DBF2 XLT 34304 91-08-05 0:00 DBF3 XLT 40544 91-08-05 0:00 DIF XLT 26464 91-08-05 0:00 K3 XLT 21984 91-08-05 0:00 SYLK XLT 40218 91-08-05 0:00 WJ2WJ1 XLT 22688 91-08-05 0:00 WJ2WKS XLT 24912 91-08-05 0:00 VIEW EXE 257536 91-08-05 0:00 VIEW DYN 26932 91-08-05 0:00 VIEW SET 40435 91-08-05 0:00 VIEW0 DEM 1081 91-08-05 0:00 VIEW1 DEM 7610 91-08-05 0:00 VIEW2 DEM 10856 91-08-05 0:00 VIEW3 DEM 10538 91-08-05 0:00 VIEW4 DEM 7269 91-08-05 0:00 VIEW5 DEM 13878 91-08-05 0:00 VIEW6 DEM 5865 91-08-05 0:00 VIEW7 DEM 5292 91-08-05 0:00 VIEW8 DEM 10022 91-08-05 0:00 VIEW_0 WJ2 2233 91-08-05 0:00 VIEW_1 WJ2 2803 91-08-05 0:00 VIEW_2 WJ2 5067 91-08-05 0:00 VIEW_3 WJ2 2854 91-08-05 0:00 VIEW_4 WJ2 2482 91-08-05 0:00 VIEW_5 WJ2 1961 91-08-05 0:00 VIEW_6 WJ2 1752 91-08-05 0:00 VIEW_7 WJ2 1667 91-08-05 0:00 VIEW_1 PRN 445 91-08-05 0:00 SACLE WJ2 13245 80-01-01 8:30 SACLE2 WJ2 12880 80-01-01 3:25 50 個 1636910 バイトのファイルがあります. : : こんな感じで4164行
[J3100] MS-KERMIT の設定ファイルを作成・実行・サーバ起動
MS-KERMIT を動かすならUSモードの方が幸せだ。画面コントロールコードがバシバシ飛ぶので、漢字モードだと画面がグソグソになるのは必至である。C:\> CD KERMIT C:\KERMIT> MIFES NITOBE.INIここで、事情通の方は、ボーレート57600で ??? と思われるはずです。J3100のRS232Cの通信速度の上限は9600bpsだった筈・・・。その通りです。BIOSコールなら。kermit はシリアルドライバを直接叩いているらしく、57600bpsでの通信が可能なようです。カットアンドトライで実験してみた結果、115200bpsではエラー多発で使い物になりませんが、57600bpsでは安定して使えるようです。ものの本によると、J3100のRS-232CコントローラはINS8250B相当品、クロック14.7456MHz、ボーレートの基準発信子は、1.8462MHzとあります。56000bpsで2分周(16xclock)偏差2.86 とありますので、57600bpsあたりが限度ということでしょうか?set speed 57600 set parity space set flow xon set file type binary set send packet-length 2000 show comC:\KERMIT> CHEV US
C:\KERMIT> KERMIT
IBM-PC MS-Kermit: 3.01 20 March 1990 Copylight (C) Trustees of Columbia University 1982, 1990. Type ? or HELP for help MS-DOS Kermit 3.01 initialization file Smile! MS-Kermit> TAKE NITOBE.INI MS-Kermit> SERVERMS-Kermit: 3.01 20 March 1990 Server mode: type Control-C to exit File name: KBytes transferred: Number of packets: Packet length: Number of retries: 0 Last error: Last message:
[S50] C-kermit の設定ファイルを作成・実行
root@debian8086:/home/nitobe# vi .kermrcset modem type none set line /dev/ttyS0 set carrier-watch off set speed 57600 set stop-bits 1 set parity space set flow xon/xoff set receive packet-length 2000 set prefixing all set streaming off show comroot@debian8086:/home/nitobe# kermit .kermrc
Communications Parameters: Line: /dev/ttyS0, speed: 57600, mode: local, modem: none Parity: space, stop-bits: 1 (7S1) Duplex: full, flow: xon/xoff, handshake: none Carrier-watch: off, close-on-disconnect: off Lockfile: /var/lock/LCK..ttyS0 Terminal bytesize: 7, escape character: 28 (^\) Carrier Detect (CD): Off Dataset Ready (DSR): Off Clear To Send (CTS): Off Ring Indicator (RI): Off Data Terminal Ready (DTR): On Request To Send (RTS): On Type SHOW DIAL to see DIAL-related items. Type SHOW MODEM to see modem-related items. (/home/nitobe/) C-Kermit> rcd C:/ C:\ (/home/nitobe/) C-Kermit> rdir /w Press the X or E key to cancel. �h���C�u C: �̃{�����[�����x���� MS-DOS_5 �{�����[���V���A���ԍ��� 1943-2E79 �f�B���N�g���� C:\ [DOS] [PIC] [USERS] [HP95LX] [BACKUP] [TMP] [PI] FILES.TXT [C6] [CPACK] $KERMIT$.TMP[LHA] [MASM] [ORANGE] [MIFES] [KERMIT] [486] [123R23J] [LZH] [TC] AUTOEXEC.BATCONFIG.SYS [DMAIL] [MSK315] [ALGORITH] [EXE] [CCC_FD] [XCODE] [ZIP] 29 �� 158497 �o�C�g�̃t�@�C���������܂�. 33118208 �o�C�g���p�\�ł�. (/home/nitobe/) C-Kermit> get FILES.TXTC-Kermit 9.0.302 OPEN SOURCE:, 20 Aug 2011, debian8086.saigyo.net {192.168.1.xxx} Current Directory: /home/nitobe Communication Device: /dev/ttyS0 Communication Speed: 57600 Parity: space RTT/Timeout: 01/03 RECEIVING: FILES>TXT => files.txt File Type: BINARY File Size: 157687 Percent Done: 12 ////// ...10...20...30...40...50...60...70...80...90...100 Estimated Time Left: 00:00:30 Transfer Rate, CPS: 4485 Window Slots: 1 of 1 Packet Type: D Packet Count: 13 Packet Length: 1998 Error Count: 0 Last Error: Last Message: X to cancel file, Z to cancel group, <CR> to resend last packet, E to send Error packet, ^C to quit immidiately, ^L to refresh screen.(/home/nitobe/) C-Kermit> q
Windows7 Excel2010 でFILES.TXTを開く
ディレクトリ及びファイル一覧を利用して、サルベージ先のディレクトリツリー作成用のバッチファイルと、ファイル転送の為のkermit用バッチファイルを作成する。ひがないちにちぱたぱた手動でやってもいいんだが、そんな暇人ぢゃぁないし、確実かつ楽チンにサルベージするためにちょっとがんばってみる。先ほどのUSBメモリの FILES.TXT を Windows7 上の Excel2010 で開く。
固定長フィールドのデータ、1、9、13、15、桁目で切り出して読み込む。
最左にフィールドを追加、1から最終行までの行番号をつける。
A1~E4164を選択、並べ替え/ユーザー設定/最優先キー列D次列C次列B/OK。
3788~4164行を削除。ここには空行が集まっている。
3563~3750行を削除。ここには「X個 xxx バイトのファイルがあります.」が集まっている。
1~561行を削除。ここには、「.」「..」「なんちゃら」<DIR>が集まっている。
F1=CONCATENATE("get ", B1, ".", C1)。F1をF2814まで式コピー。拡張子付きファイル名。
F2815=COMCATENATE("rcd ", E2815)。F2815をF3001まで式コピー。ディレクトリ絶対パス。
F2815~F3001をコピー、同じ場所に値で書き込む。F2815~F3001を選択、"\" を "/" に全て置換。DOSは "\" なんだが、C-kermitは"/"。
F3002=CONCATENATE("get ", B3002)。F3002をF3038まで式コピー。拡張子なしファイル名。
A2815~F3001をコピー、A3039に値で書き込む。F3039~F3225を選択、"rcd C:" を "cd /home/nitobe/J3100" に全て置換。サルベージ先のパス名。
ここで、F3039~F3225をコピー、新規テキストファイルを生成し、そこにペースト。テキストファイル側で "cd " を "mkdir " に全て置換。mkdirs.txt とでも rename しておく。サルベージ先ディレクトリ作成バッチファイル完成。
さてexcelに戻ろう。A1~F3225を選択。並べ替え/昇順。
F1~F3225をコピー、新規テキストファイルを生成し、そこにペースト。頭の2行をコピーして最後尾にペースト。gets.txt とでも rename しておく。C-kermit 用ファイル転送バッチファイル完成。
出来上がった2つのテキストファイル(mkdirs.txt gets.txt)をUSBメモリにコピーする。
mkdirs.txtのさわり。
mkdir /home/nitobe/J3100 mkdir /home/nitobe/J3100/123R23J mkdir /home/nitobe/J3100/486 mkdir /home/nitobe/J3100/486/SRC mkdir /home/nitobe/J3100/ALGORITH mkdir /home/nitobe/J3100/ALGORITH/MC mkdir /home/nitobe/J3100/ALGORITH/TC mkdir /home/nitobe/J3100/BACKUP : : こんな感じで187行gets.txt のさわり。
rcd C:/ cd /home/nitobe/J3100/ get FILES.TXT get AUTOEXEC.BAT get CONFIG.SYS rcd C:/123R23J cd /home/nitobe/J3100/123R23J get 123.SET get 123.EXE get INSTALL.EXE get INSTALL.SCR get DISKMGR.COM get STATUS.COM : : こんな感じで3227行
[S50] ディレクトリツリー生成
USBメモリのテキストファイルは、/home/nitobe にコピーしておこう。Windowsのテキストファイルの改行は[CRLF]、debianは[LF]なのでおまじない。
root@debian8086:/home/nitobe# vi mkdirs.txt:%s/^M//g <−− ^M は Control-V,Control-Mだから。そこんとこよろしく。 :wq!root@debian8086:/home/nitobe# bash mkdirs.txt
はいこれでディレクトリツリー完成。
[S50] 怒涛のファイル転送
ここでもおまじない。root@debian8086:/home/nitobe# vi gets.txt八割がた転送が完了した頃、嫁が帰ってきてコンセントを抜きやがった。orz:%s/^M//g <−− ^M は Control-V,Control-Mだから。そこんとこよろしく。 :wq!root@debian8086:/home/nitobe# kermit .kermrc
Communications Parameters: Line: /dev/ttyS0, speed: 57600, mode: local, modem: none Parity: space, stop-bits: 1 (7S1) Duplex: full, flow: xon/xoff, handshake: none Carrier-watch: off, close-on-disconnect: off Lockfile: /var/lock/LCK..ttyS0 Terminal bytesize: 7, escape character: 28 (^\) Carrier Detect (CD): Off Dataset Ready (DSR): Off Clear To Send (CTS): Off Ring Indicator (RI): Off Data Terminal Ready (DTR): On Request To Send (RTS): On Type SHOW DIAL to see DIAL-related items. Type SHOW MODEM to see modem-related items. (/home/nitobe/) C-Kermit> take gets.txt
ごらぁ!それはおまえのおもちゃじゃない!
つづきは後日。
[J3100/S50] 隠しファイルのリストアップ
非常に重大なことを失念していたことに気づいた。DOSのルートデイレクトリにはシステム属性の隠しファイルが存在する。J3100DOS上で、システム属性、不可視属性を解除する。
C:\ ATTRIBgets.txt に挿入。SHR C:\IO.SYS <−−−これが隠しファイルだ SHR C:\MSDOS.SYS <−−−これも隠しファイルだ A C:\FILES.TXT A C:\AUTOEXEC.BAT A C:\CONFIG.SYSC:\ ATTRIB -S -H MSDOS.SYS
C:\ ATTRIB -S -H IO.SYS
C:\ DIR /W
ドライブ C: のボリュームラベルは MS-DOS_5 ボリュームシリアル番号は 1943-2E79 ディレクトリは C:\ IO.SYS MSDOS.SYS [DOS] [PIC] [USERS] [HP95LX] [BACKUP] [TMP] [PI] FILES.TXT [C6] [CPACK] [LHA] [MASM] [ORANGE] [MIFES] [KERMIT] [486] [123R23J] [LZH] [TC] AUTOEXEC.BATCONFIG.SYS [DMAIL] [MSK315] [ALGORITH] [EXE] [CCC_FD] [XCODE] [ZIP] 30 個 293226 バイトのファイルがあります. 33120256 バイトが使用可能です.
rcd C:/ cd /home/nitobe/J3100/ get MSDOS.SYS <−−−この行と get IO.SYS <−−−この行を挿入 get FILES.TXT get AUTOEXEC.BAT get CONFIG.SYS : :
T: Y: ALL: Online:
ThemeSwitch
- Basic
Created in 0.0502 sec.
Comments