2006年のW2K自動インストールで書いた方法でも、一通り HotFixは適用出来るのですが、 HFSLIP を使うと、nec98の中にあるインストール元となるファイル群が更新されるので、ファイルサイズも大きくならずインストール時に順にアップデートされないので、時間もかなり短縮できます。また、アンインストール用のファイル等なども生じないのでインストール後の占有サイズも小さくできると、まぁ良いことずくめ、のハズです。PC-98 W2K に HFSLIPを使ってみた
Copyright(C)2010 macky
今回の目標は下記です
hfslipまとめサイト @ wiki や nLiteの役に立たない説明書のHFSLIPの記事などを参考にしてください。最新版は、MSFN の hfslip 1.7.10 betaJ ですが、Windows2000で使う分には、hfslip-1.7.9.zip でも大丈夫みたいです。 あと、dot net frameworkをまとめてサイレントアップデートさせるために、こちらもMSFNでSNMsynthを用意しておくと良いでしょう。
hfslip適用後、デフォルト設定など変更しておくのに便利です。
PC-98用のWindows 2000です。今回はMSDNからダウンロードしたSP4適用済みのものを使っています。おそらく、パッケージモノに手動でSP4を統合したものでも大丈夫でしょう。
以前にも書きましたが、Windows 2000 Service Pack 4 用の更新プログラム ロールアップ 1 (KB891861)は、NEC98ってフォルダーをI386にリネームしてから作業を始めないとインテグレートできないので要注意です。
SP4移行のHOTFIXを全て集めます。DirectX9やIE6等も集めておきましょう。A.K OfficeさんのSP+メーカーにQKKさんの作られた、NEC98 Windows 2000 Service Pack 4 用アップデートリストを利用すると手早く集められます。どれを hfslip で統合したかは後述します。
\hfslip\FDVFILES
\hfslip\HF
\hfslip\HFCABS
\hfslip\HFGUIRUNONCE
\hfslip\HFSVCPACK
\hfslip\HFSVCPACK_SW1
\hfslip\HFSVCPACK_SW2
\hfslip\HFTOOLS
\hfslip\REPLACE
\hfslip\SOURCE
それぞれの意味は、hfslipが表示するメッセージや先述のwikiを参照して下さい。
\hfslip\SOURCE へWindows 2000 with SP4 CDの中身を全てコピー
念のため、 ATTRIB -r /d /s *.* でリードオンリーの属性を外す。
\hfslip\SOURCE\I386 を適当な名前 $I386等にリネーム
\hfslip\SOURCE\NEC98 をI386等にリネーム
\hfslip\HF へ集めた hotfixファイルをコピー
2010年6月末時点でのファイル一覧は hf_file_list_2010-06.txt
これです。試行錯誤の過程で必要の無いファイルが混入しているかもしれませんが、結果オーライということで。 もし要らないファイルがわかったら教えて下さいね。
\hfslip\HFCABS へ
IE6SP1Jから
BRANDING.CAB
IEW2K_1.CAB
IEW2K_2.CAB
IEW2K_3.CAB
IEW2K_4.CAB
MAILNEWS.CAB
OEEXCEP.CAB
SCRIPTJP.CAB
WAB.CAB
DirectX9 から
BDANT.CAB
DXNT.CAB
Microsoft Updateから(これは入れなくても、1番目の目標は達成できるけど)
MUAUTH.CAB
MUCATALOGWEBCONTROL.CAB
MUWEB_SITE.CAB
DirectX9に関しては、pc-98パッチは必要有りません。DX8NEC98_254.LZHの98パッチはdsetup32.dllを対象としており、HFSLIPで
統合する場合は必要なし。また上記ファイルは、最新の directx_feb2010_redist.exe でも初期の
directx_9c_redist.exe 04/07/23 35,097,792 等でも中身は同じなので、最新版を無理に用意しなくても大丈夫です。
[SourceDisksNames]
1="Windows CD","CDROM_NT.5",,"\i386" → 1="Windows CD","CDROM_NT.5",,"\NEC98"
\hfslip\SOURCESS\nec98\SVCPACK\HFSLIP.CMD
中の I386をNEC98に変更
私は、sedを使ってバッチファイル中から自動処理でやらせてます。
実際は、文字列置換はSEDを使うなどして、2以降を2つくらいのバッチにまとめて処理させてます。
wgainstall_9160b6b3929938243b7d18417810677d9b9983b7.exe
Windows2000-KB958470-nec98-JPN.EXE
この2つはHFで統合可能だか、そうすると 8.3文字でなく、長いファイル名のファイルができてしまうので、WINNT.EXEを使ったテキストモードでのインストールで失敗するのでHFSLIPしない方がベター
KB975560は2つあるので注意!
Windows2000-KB975560-nec98-JPN.EXE
はHFSLIP可能だが、
Windows2000-NEC98-DirectX9-KB975560-x86-JPN.exe
は HFに入れて統合した場合、msyuv.dllのコピーエラーが出るので統合しない。HFSLIPのバグ??
リモートデスクトップは msiファイルを取りだして
MSRDPCLI.MSI /norestart /quiet でサイレントインストール
その後
KB958470.EXE(Windows2000-KB958470-nec98-JPN.EXE)
を入れる
下記はなぜかHFで統合できない
KB973904.EXE (Windows2000-KB973904-nec98-JPN.EXE)
KB977816.exe (Windows2000-NEC98-WindowsMedia-KB977816-x86-JPN.exe)
Windows2000-KB927779-MDAC28SP1-NEC98.exe も、ちょっと特殊なので、HFできないですね。
dotnetについて
dotnet2 は、必須でないのでインストールしなくても、目標1は可能なのですが、どうせなので、自動でインストールさせます。
基本的には、web等で見つかるSNMsynthの使い方通りで良いのですが、2ch
のHFSLIP Part5 によれば、
NDP30SP2-KB982168-x86.exeを7-Zipなんかで解凍
NDP20SP2-KB976765.msp
NDP20SP2-KB980773.msp
それぞれIExpress化 (参照
日経トレンディネット)
NDP20SP2-KB976765-x86.EXE
NDP20SP2-KB980773-x86.EXE
とリネームしてSNMsynthフォルダに加え、統合とするそうです。
おそらく、これをやっておかないと、NDP20SP2-KB979909-x86.exe がうまく統合できないかも。
ということで、これらは
\HFSLIP\SOURCESS\NEC98\$OEM$\$1\TEMP
の中に仕込んでおき、インストールの最終段階で、HOTFIX.CMDとして組み込みます。2010-06時点では、こんな感じ(HOTFIX.CMD)です。多少一般的なやり方と違いますが、わざわざ、HOTFIX系だけ別ファイルにして最後に実行しているのは、
追加/削除などの変更をしやすい、急いでいるときなどHOTFIX.CMDの最初に仕込んだタイムアウト処理の間に中断しやすい、その後個別に確認しながらデバッグしやすい、等の理由からです。
なお、ここでも 8.3文字列以上のファイル名があるとテキストモードでインストールしようとするとエラーになるため、$oem$
の中に仕込んでおくファイルは、8.3文字にしておく方が無難です。
\$OEM$\$$\SYSTEM32\DRIVERS の中には DISPFLIP.SYS を入れてある。
\$OEM$\$$\SYSTEM32 にはよく使う統合アーカイバー等の dll などを適当に
\$OEM$\$1\DRIVERS は、使いそうなドライバーを片っ端から入れておく
NVIDIAの 77.77_winxp2k_international_whql.exe だと RVII + GF5200FX
でブラックアウトしかし、
84.21_forceware_winxp2k_international_whql.exe だと大丈夫 なぜ?
ただ、このドライバーだと、NV4_DISP2.INF が有るので、8.3文字制限にひっかかるのでファイル名変更が必要
TEMPには、DISPFLIPの設定やら、レジストリの設定やら、長いファイル名のショートカットファイル等を圧縮してまとめたファイル(インストール時に展開)などと、HOTFIXが入れてある。
WIN32APPの中はよく使うエディターやファイラーなどが25MByteほど。
TEXTMODEは、インストール時に必要になるドライバーたちをまとめて入れてある。TXTSETUP.OEMも全部まとめて1ファイルにしてしまった。
ASC.INFHOTFIX全部とDRIVERに少々の追加ファイル、これだけあわせても 500MByteくらいですので、かなり小さくできてると思います。
ASC.SYS
UIDE66.SYS
UIDE66.INF
INIA10X.CAT
SYMC8XX.SYS
SYMC8XX.INF
UIDE133.SYS
UIDE133.INF
INIA100.SYS
INIA10X.INF
SI3112.SYS
SI3112.CAT
SI3112.INF
TXTSETUP.OEM
実際に PenIIIs 1400@700 Single, RAM 512MB, Chanpon2X, GF-FX5200 な RvII に、新品の Intel Mainstream SSD 80Gを接続して試してみました。
FDブートで、FAT32で領域確保 (実際は FDISK でなくてもっと高速なやつで領域確保)、FOMATXでフォーマット
再起動
XPなAT互換機(NetBeui導入済み)の共有フォルダ(RAMDISK上)に接続
WINNT.EXEを UNATTENDを使ってインストール開始。サーバーからファイルがコピーされる。DOSモードで100MなLANとはいえ、RADISKからSSDへなので、かなり高速。
再起動
インストーラーが起動 パーテションを選ぶ←ここだけ手動そうさが入るようにしてある。以後は最後までノータッチ
再起動
GUIなインストーラーが起動
再起動
DOTNET入れるか??で60秒待つ
インストール終了
マイクロソフトアップデートで更新リストが0なのを確認
とここまで、WINNT.EXEを UNATTENDを使ってインストール開始から最後まで、およそ25分でした。
11.覚え書き...32G越えな改造SCSI BIOS + 32G越えな改造 disk.sys を使う場合
disk.sysをMSDOSで起動して2回入れ替える必要が有るのでNTFSでフォーマットしないように
まずオリジナルの disk.sys で無人インストスタート
MS-DOSモードのWINNT.EXE (Win9xからだと winnt32.exe)でファイルコピー後、 ブート用のファイル群の中の
disk.sy_ だけ 改造disk.sys と入れ替え
再起動
インストーラーが、NEC98の中のファイルをWINNT等のディレクトリへ配置。
再びMSDOSで起動し、system32\drivers の中のオリジナル disk.sys を 改造
disk.sys と入れ替え
GUIなインストール部分が終了し再起動
この時点でなぜか、オリジナルのファイルに戻っているので再再度MSDOSを立ち上げ
\winnt\system32\drivers の中の disk.sys を入れ替え
という手順が必要でした めんどくさ〜。たぶん 改造disk.sysはcab圧縮して
disk.sy_ にしても署名がらみではじかれるんですかねぇ。