NTFS4DOS

DOSモードで立ち上がるところまでは良いが、HDDの修復目的などでDOSを使う場合、HDDがNTFSでフォーマットされていると手が出ない。DOSからNTFSをアクセスすることが出来るツールをフロッピーにインストールしておく必要がある。その様なツールがいくつかはあるが、有償だったり、無償版はRead Onlyだったりする。私はAvira社のNTFS4DOSという製品を使った。個人使用に限り無償で利用することができる。NTFSに対して読み書きもでき、NTFS用のchkdskデフラグツールも付いてくる。業務用でも20ユーロ(約3,000円)で購入できる。
元々はDatapolという会社の製品だったが、Datapol社が2006年4月にAvira社に買収され現在ではAvira社の製品として販売されている。

NT4DOSのPXEを使ったネットワークブートは、上で書いた通常のDOSのブート同じである。上の設定の環境を使って補足説明する。
bpbatchを使ってDOSをブートする時にどのフロッピーイメージからブートするかを指定した/tftpboot/bpb-boot/bootscript.bpbを書変える。先程のDOSのブートの時は、

set CacheNever="ON"
loadramdisk "/dos/Win98SE_SPC.flp"
floppyboot

という設定だったが、loadramdiskの行を次のように書換える。

set CacheNever="ON"
loadramdisk "/dos/NTFS4DOS_SPC.flp"
floppyboot

ここで"NTFS4DOS_SPC.flp"というのがNTFS4DOSのフロッピーイメージのファイルで、この環境では"/tftpboot/dos"ディレクトリの下において置く。
これでクライアントをブートしてメニューでDOSを選べばNTSF4DOSが起動する。

だたし、PXEの設定ファイル(上の例では/tftpboot/linux-install/pxelinux.cfg/C0A80080)のメニューに表示するタイトルも変更しておく必要がある。(変更しないと"DOS_Win98SE"というメニューのタイトルが表示される。)次のような方法も考えられる。例えば、DOSとNTFS4DOSをメニューから選択的に起動するには、PXEの設定ファイルにNTFS4DOSの項目を追加してappend行を使ってbpbatchに渡す引数を指定し、Win98とは別のスクリプトファイル(例えばbootntfs4dos.bpbなど)を用意する方法もあると思うが、そこまで確認はしていない。(PCのトラブル時にPXEを使ってDOSやNTFS4DOSをブートするだけなので、必要に応じてbootscript.bpbを書き変えれば良いので、今回はそこまで深入りしなかった。今のところ、書換えるのも後で忘れるのでDOS用よNTFS4DOSようのスクリプト別々の名前で用意して、シンボリックリンクで切替えるようにしている。)

NTFS4DOSのカスタマイズ

オリジナルのフロッピーイメージでも勿論使えるが、日本語キーボードを使っている場合は、キーボードを選択できるようにしておく必要がある。オリジナルのフロッピーイメージの内容は次のようなものだが、

autoexec.bat  command.com  dfrgntfs.exe  keyboard.sys  keybrd4.sys  msdos.sys
chkdsk.exe    config.sys   io.sys        keybrd2.sys   license.dat  ntfs4dos.exe
chkdskg.exe   cpyrdcc.bat  keyb.com      keybrd3.sys   lngintl.dat  vtmode.com

日本語キーボード対応(+レスキュー用コマンド)として次のような内容にしてある。(ちょっと欲張ってCD-ROMドライバも入れてしまっている。CD-ROMドライブからブートできない場合、PXEでブートしてCD-ROMへアクセスするため。)

attrib.exe    chkdsk.exe   cpyrdcc.bat   fdisk.exe  jkeybrd.sys  mem.exe     ntfs4dos.exe
autoexec.bat  chkdskg.exe  deltree.exe   find.exe   jkeyb.sys    move.exe    xcopy32.exe
biling.sys    command.com  dfrgntfs.exe  himem.sys  license.dat  mscdex.exe  xcopy32.mod
cd1.sys       config.sys   drvspace.bin  io.sys     lngintl.dat  msdos.sys   xcopy.exe

これに伴い"config.sys"も次のように書き変える必要がある。
オリジナル:

[menu]
menuitem=ntfsdos,NTFS4DOS
menuitem=dfrgntfs,Defragment NTFS
menuitem=dskchk,Check Disk Utility
menudefault=ntfsdos,20

[ntfsdos]

[dfrgntfs]

[dskchk]

[common]
files=100
LASTDRIVE=P

日本語用:

[menu]
menuitem=ntfsdos,NTFS4DOS
menuitem=dfrgntfs,Defragment NTFS
menuitem=dskchk,Check Disk Utility
menudefault=ntfsdos,20

[ntfsdos]

[dfrgntfs]

[dskchk]

[common]
DEVICE=HIMEM.SYS /testmem:off
FILES=100
BUFFERS=20
DEVICEHIGH=BILING.SYS
DEVICEHIGH=JKEYB.SYS
DEVICE=CD1.SYS /D:OPTDRV
LASTDRIVE=Z

NTFS4DOSを使ってみて

NTFSにアクセスできること以外は普通のDOSと大して違いはないので、NTFS4DOS自身について特段書くことはないが、NTFS4DOSに付いてくるデフラグツールはちょっとマニアックだった。通常の(Windowsについてくる)デフラグツールは「システムファイル」まではデフラグしない様である。Windowsデフラグツールで一つ残らずデフラグした後でNTFS4DOSのデフラグを"High"モード(昔のバージョンではparanoia(偏執狂)モードと言ったらしい)で動かすと、まだまだ出るわ出るわ。もっとも、殆どが"C:\System Volume Information"の下にあるバックアップ用のファイルなので、デフラグしたからといってパフォーマンスが上がるわけではなさそうだ。)

デフラグファイルシステムそのものをいじるので、出来る限りフリーのソフトは使いたくはないが、一応感想まで。