【08.2.3追記】ぐはぁ。autoexec.batに間違いありましたちょっと修正してます。すんません。
最終目的は1.44MB 起動ディスクの作成なのである。
Network Client for DOSのTCP/IPは1.44MB FDへ直接セットアップできない(NetBEUIは可能)。VMwareなど仮想マシンなら2.88MBイメージも使えるのでセットアップ可能。ただ、2.88MBイメージの作成が結構面倒だということでなるべく楽にセットアップできるように考えるためのめも。
- おおまか手順
-
- 仮想FDドライブでイメージファイルを操作
- 1.44MBイメージからIPLを2.88MBイメージへコピーして2.88MB起動ディスクイメージ作成
- Grub for DOSなどを使い、2.88MBイメージからブートしてセットアップ
- 最低限必要なファイルのみで1.44MB起動ディスクイメージ作成
【注意】NICがPCMCIAの場合はDOS用ドライバの他にPCカードを認識させる為のプログラム等が必要。
■ 必要なもの
※作成環境はWindows XPマシン(NTFS)
- ブートローダ - GRUB for DOS
-
※VMwareとか仮想マシンを使う場合は不要
grub4dos-0.4.3.zipをダウンロード
- FreeDOS FDイメージ - Balder
-
balder10.imgをダウンロード
- 仮想FDドライブ - Virtual Floppy Drive(※Windows XP/2000用)
- IPLのコピー - mkbt.exe
-
2.88MB DOS起動ディスクの作成に使う
- MKBT, Make Bootable
- web.archive - MKBT, Make Bootable
- NICのDOS用ドライバ
-
メーカーサイトなどで頑張って探す。NDIS用とかでいいかと。拡張子dosなやつとoemsetup.infとかなファイル。
- Network Client for MS-DOS
-
DSK3-1.EXE,DSK3-2.EXEをダウンロード。
DSK3-1.EXE MD5 : 2a0a0065e8080a3e46e55658415cfb76 DSK3-2.EXE MD5 : 532c91001ff4750407b00af7007e0984
■ ブートローダ - GRUB for DOS
※boot.iniの編集を間違うとWindowsが起動しなくなることもあるので注意。
FDドライブなどを使わずにHDから直接FDイメージをブートする方法。
※VMwareとか仮想マシンを使う場合は不要
- 他のブート手段(boot.ini弄りたくない場合とか)
-
環境次第なので確実にOKだとは限らないと思われますが。
- VMwareとか仮想マシン上でA,Bドライブ使用。ブートローダ不要。最も安全で簡単。BIOSでA,Bドライブを有効にしておく
floppy0.present = "TRUE" floppy0.autodetect = "TRUE" floppy0.startConnected = "TRUE" floppy0.fileType = "file" floppy0.filename = "fdos288.img" floppy1.present = "TRUE" floppy1.autodetect = "TRUE" floppy1.startConnected = "TRUE" floppy1.fileType = "file" floppy1.filename = "msnet.img"
- FD,CD,USBメモリなどでGrub for DOSをブート。
- USBメモリでGrub for DOSをブート。(※これだとUSBメモリ1本のみでできますが...)
- ネットワークブート(pxelinux + grub.exe0.4.2以降)。イメージはローカルに置くこと。grldr0.4.3では(pd)でtftpサーバ上のイメージをマウントできるがIndirect Map(オンメモリ)のみみたい(?)なので、FreeDos2.88MBイメージはローカルHDD上にないといけない模様
- grldrをCドライブのルートにコピー
- boot.iniにエントリを追記
- menu.lstをCドライブのルートにコピー
- menu.lstにエントリを追記
- boot.iniの編集(追記)
attrib -h -r -s C:\boot.ini copy C:\boot.ini C:\boot.ini.txt /y echo.>>C:\boot.ini echo C:\grldr="GRUB for DOS">>C:\boot.ini attrib +h +r +s C:\boot.ini notepad C:\boot.ini
※最終行 --- メモ帳で内容確認する。
- menu.lstの編集(追記)
echo.>>C:\menu.lst echo title Network Client for DOS>>C:\menu.lst echo find --set-root /fdos288.img>>C:\menu.lst echo map /fdos288.img (fd0)>>C:\menu.lst echo map --mem=-2880 /msnet.img (fd1)>>C:\menu.lst echo map --hook>>C:\menu.lst echo chainloader (fd0)+1>>C:\menu.lst echo rootnoverify (fd0)>>C:\menu.lst notepad C:\menu.lst
※最終行 --- メモ帳で内容確認する。
GRUBからブートして、fd0(DOS上ではAドライブ)は変更も保存される。fd1(Bドライブ)はオンメモリ。
■ FreeDOS 2.88MB起動ディスクイメージ作成
※ドライブレターを間違うとWindowsが起動しなくなることもあるので注意。
- Virtual Floppy Drive起動
- ドライブ0にAドライブ(※内蔵FDDがない場合)を割り当てbalder10.imgをマウント
- ドライブ1にBドライブを割り当て2.88MBで開きフォーマット
- FreeDOS 2.88MB起動ディスクイメージ作成
- ブートレコード(IPL)コピー
mkbt -x a: b:
- ファイル・コピー
a: copy kernel.sys b: copy command.com b: copy himem.exe b: b: mkdir bin cd bin copy A:\keyb*.* copy A:\deltree.com copy A:\edit.exe copy A:\fdisk*.* copy A:\format.exe copy A:\more.exe copy A:\sys.com copy A:\xcopy.exe echo device=A:\himem.exe> B:\config.sys echo A:\bin\keyb.exe jp> B:\autoexec.bat
Virtual Floppy DriveでBドライブをファイル名fdos288.imgとして保存してドライブ1を閉じる。失敗あるかもなのでコピーも取っておく。
fdos288.imgをドライブルートにコピー
■ Network Clientセットアップディスクイメージ作成
- Virtual Floppy Drive起動
- ドライブ1にBドライブを割り当て2.88MBで開きフォーマット
- セットアップファイルをBドライブへ展開(重複ファイルは上書)
DSK3-1.EXE -d B: DSK3-2.EXE -d B: mkdir B:\driver
B:\driver
にDOS用ドライバをコピー。Bドライブをmsnet.imgとして保存して閉じる。失敗あるかもなのでコピーも取っておく。
msnet.imgをドライブルートにコピー
■ ブートしてセットアップ
とりあえず注意点だけ。後でちゃんとキャプチャーする(予定...)
- B:\のsetup.exeを実行
- アダプタの選択で「Network adapter not show on list ... 」
- driverの指定は
b:\driver
- セットアップ・リスト
- [Change Setup Options] - [Use the Full Redirector]を[Use the Basic Redirector]に変更
- [Change Names] - User Name, Computer Name, Workgroupを設定
- [Change Network Configuration] - IPXを削除、TCP/IPを追加
これで出来上がった2.88MBイメージは、仮想FDブート(GRUB,SYSLINUX,BCDWなど)ならそのまま使える。
でも、winnt.exeを使用してWindows XPをインストールするにはCドライブをFAT32でフォーマットする必要あり。ブートローダ(ntldr)が消えるのでHDブートでHD上イメージは直接起動できない。Dドライブなどに保存した場合はネットワークやFDなどからHD上のイメージをブート可能だが、直接FreeDOS起動FDを使った方が楽かもしれない。
■ 1.44MB版ディスクイメージ作成
出来上がったイメージは1700KB程あるけど、必須ではないファイルを削除すると900KB程となるので、1.44MB FDに収めることも可能。
この時点のfdos288.imgも一応バックアップしとく。
- Virtual Floppy Drive起動
- ドライブ0をAドライブ(※内蔵FDDがない場合)でbalder10.imgをマウント
- Aドライブから不要ファイルを削除
- ドライブ1をBドライブ、セットアップ済のfdos288.imgをマウント
- config.sysとautoexec.batを変更
- Bドライブから不要ファイルを削除、Aドライブへコピー
- Aドライブをファイル名fdos144.imgなどとして保存して閉じる
- Bドライブもファイル名fdos288_2.img(バックアップ用)などとして保存して閉じる
NETディレクトリはディレクトリごとコピーしとかないとエラーで起動しなかったりするので不要ファイルを削除した状態のNETディレクトリをコピーする。
- Aドライブを整理
-
とりあえず必要最小限のファイルのみにする
- KERNEL.SYS,COMMAND.COMのみにする。これら以外を削除。
- Bドライブを整理
-
NETディレクトリを必要ファイルのみにする。これら以外を削除。
- 必要ファイル
- emsbfr.exe
- IFSHLP.SYS
- LMHOSTS
- NEMM.DOS
- NET.EXE
- NET.MSG
- NETBIND.COM
- NMTSR.EXE
- PROTMAN.DOS
- PROTMAN.EXE
- PROTOCOL.INI
- SHARES.PWL
- SYSTEM.INI
- TCPDRV.DOS
- TCPTSR.EXE
- TCPUTILS.INI
- TINYRFC.EXE
- umb.com
- WFWSYS.CFG
- ***.dos ---(NICのドライバファイル)
- IPCONFIG.EXE ---(※必須ではない)
- PING.EXE ---(※必須ではない)
config.sysを編集
menucolor=7,0 menudefault=0,100 menu menu FreeDOS menu menu 0 - load HYMEM.EXE menu 1 - NetBIOS over TCP/IP with HIMEM menu 2 - Clean boot menu 2?shell=command.com command.com /P 01?DEVICE=A:\HIMEM.EXE 01?DOS=HIGH,UMB 01?BUFFERS=20 01?LASTDRIVE=Z 01?FILES=20 1?devicehigh=A:\NET\ifshlp.sys
autoexec.batを編集
@ECHO OFF set path=a:\bin if %CONFIG% == 2 goto end if %CONFIG% == 1 goto NBT if %CONFIG% == 0 goto HIMEM :NBT a:\bin\keyb.exe jp SET PATH=%PATH%;A:\NET A:\NET\net initialize A:\NET\netbind.com A:\NET\umb.com A:\NET\tcptsr.exe A:\NET\tinyrfc.exe A:\NET\nmtsr.exe A:\NET\emsbfr.exe A:\NET\net start goto end :HIMEM a:\bin\keyb.exe jp goto end :end
- 必要ファイル
- BドライブからAドライブへファイルをコピー
-
多分KERNEL.SYSを上書するとだめなので、BドライブのKERNEL.SYSとCOMMAND.COM以外を、Aドライブへコピー。
それぞれイメージをファイル名を指定して保存して閉じる。
1.44MB と 2.88MBイメージのできあがり?
1.44MBイメージをRawwiteなどでFDへ書き込んで1.44MB起動ディスクの完成だー。押忍。
「いまどきなぁ?」って声も激しくあったりするかも?(w