一覧に戻る

PC-98 W2Kの自動インストール

Copyright(C)2006 macky
 W2Kのサポートももうじき終わるなどとちまたで騒がれていますので、ここはひとつHOTFIXなどなどを詰め込んだインストール用イメージを作っておかねばと情報収集を始めました。

HotfixIntegrationInst こちらのwikiや SP+メーカーなどがとても参考になりました。
駄菓子菓子、PC-98X1関連の情報はほとんどありません。

SP4を統合したインストールCDは以前に作ったことがありましたので、とりあえず
Windows 2000 Service Pack 4 用の更新プログラム ロールアップ 1 (KB891861)
をインテグレートしてみようとしましたが、こいつがたしか、他機種用うんぬんというエラーを出しインテグレートできません。 試しに、インストールイメージのNEC98ってフォルダーをI386にリネームすると、いてグレーとできてしまいますが(これってバグ??)、実際にインテグレートしたイメージからW2Kをセットアップすると、途中で固まります(^^;)

ということで、せっせと自前でやってみました。とりあえず、INTEL-NICとLGY-98等のNDIS2なNICさえあればフロッピー1枚でネットワークの共有フォルダーへアクセスできるわけなので、CDからのインストールは考えないでいきます。
 

1.共有フォルダーの設置

 とりあえず、TCP/IPとNETBeuiが使える鯖にW2KDIST ってな共有フォルダーを作りました。setupmgr.exeで unattend.txtを編集するとデフォルトで win2000dist ってな名前になりますが、dosから共有することも考えてやはり、ここは8文字で(^^;)
 

2.ファイルの配置


とりあえず、こんな感じです。要らんファイルもたくさん SVCPACKフォルダーの中に混ざってますが、テスト中ってことで、実際に作る方は、要るファイルだけで作ってくださいね。各フォルダーの意味などはここらあたりを参照してください。
 

2-1.W2KDIS

 SP4をインテグレートした、NEC98フォルダーの中身をそのままコピーしただけです。
 

2-2. \W2KDIST\$oem$\$$

 そのまま windowsディレクトリにコピーされるので、SYSTEM32の中にはUNLHA32.DLL等々普段よく使うDLL等を入れておきます。 こんな感じ

\W2KDIST\$oem$\$$\system32\UNZIP32.DLL
\W2KDIST\$oem$\$$\system32\UNLHA32.DLL
\W2KDIST\$oem$\$$\system32\VBRJP200.DLL
 .
 .
 .
\W2KDIST\$oem$\$$\system32\DIRECTX.CPL
\W2KDIST\$oem$\$$\system32\directx8.cpl
\W2KDIST\$oem$\$$\system32\tweakui.cpl
\W2KDIST\$oem$\$$\system32\tweakui.hlp
\W2KDIST\$oem$\$$\system32\tweakui.cnt
DirectXやtweakuiのコントロールパネルもついでに入れてあります。

\W2KDIST\$oem$\$$\system32\DRIVERS\DISPFLIP.SYS
\W2KDIST\$oem$\$$\system32\FLIP32.EXE
DispFlipも、ここで組み込んでしまえば手間かからないので入れてしまいます。

\W2KDIST\$oem$\$$\system32\Poweroff.exe
RvIIで電源落とせるようにこれも入れとこう(^^;)
 

2-3. \W2KDIST\$oem$\$1

\W2KDIST\$oem$\$1\drivers

この中には各ドライバーファイルを入れておきます。私はよく使う下記のW2Kドライバーをそれぞれフォルダーを作って入れておきました。
NIC_SIS9
NIC_RTL
IOEHCI
DISPFLIP
SII3112
UIDE133
IFCUSP
NVIDIA
MATROX
INI100
EHCI
CMI8738
これらは、unattend.txtでこんな感じに指定することで、w2kのインストール時に自動的に組み込まれます。
[Unattended]
DriverSigningPolicy=Ignore
NonDriverSigningPolicy=Ignore
OemPnPDriversPath="Drivers;Drivers\CMI8738;Drivers\IOEHCI;Drivers\INI100;Drivers\MATROX;Drivers\NVIDIA;Drivers\NIC_SIS9;Drivers\NIC_RTL"
NVIDIAやMATROX(G200,G400)等のドライバーも勝手に組み込まれるようにしてますので、このままだとRvII等のオンボードGAの無い機種だと再起動のあとは画面出力がそちらになってしまい、画面が拝めなくなりますので先に書いたように DISPFLIPも一緒に組み込んでしまおうという寸法です。
 

\W2KDIST\$oem$\$1\HOTFIX


SVCPACK.INFで組み込んでもエラーになるファイルを、再起動後に組み込ませます。ここに入れておけば、とりあえずインストールドライブのルートにHOTFIX\としてコピーされて再起動後でも実行できるようです。

06/06/15時点でこんだけ入ってます
\W2KDIST\$oem$\$1\HOTFIX\KB886903.exe
\W2KDIST\$oem$\$1\HOTFIX\KB890046.EXE
\W2KDIST\$oem$\$1\HOTFIX\KB905414.EXE
\W2KDIST\$oem$\$1\HOTFIX\KB893756.EXE
\W2KDIST\$oem$\$1\HOTFIX\KB905495.exe
\W2KDIST\$oem$\$1\HOTFIX\KB908531.EXE
\W2KDIST\$oem$\$1\HOTFIX\DLYSHTDN.EXE
\W2KDIST\$oem$\$1\HOTFIX\WAITIDLE.EXE
 なお、これらのファイルは、WindowsUpdateカタログなどなどからダウンロードしたファイルをリネームしたものです。当然、NEC98専用なファイルがある場合は、そちらを使います。(アタリマエ
 

\W2KDIST\$oem$\$1\WIN32APP

 秀丸とかファイラーとか HDBENCHとかSuperPIとかが入ってます。ルートにコピーされます。すぐ使いたいファイルなど入れておいて、デスクトップへのショートカットを作っておきます。

2-4. \W2KDIST\$oem$\Textmode

 ブート時に使用されるSCSIやIDE等のOEMドライバーを入れておきます。うまくいけば起動時のF6キーを押して、フロッピーでドライバーを追加、を省略できます。
 
06/06/15時点でこんだけ入ってます
\W2KDIST\$oem$\Textmode\TxtSetup.oem
\W2KDIST\$oem$\Textmode\si3112.cat
\W2KDIST\$oem$\Textmode\SI3112.inf
\W2KDIST\$oem$\Textmode\Si3112.sys
\W2KDIST\$oem$\Textmode\SilSupp.cpl
\W2KDIST\$oem$\Textmode\Inia10x.inf
\W2KDIST\$oem$\Textmode\INIA100.SYS
\W2KDIST\$oem$\Textmode\UIDE133.INF
\W2KDIST\$oem$\Textmode\UIDE133.SYS
\W2KDIST\$oem$\Textmode\inia10x.cat
\W2KDIST\$oem$\Textmode\ASC.SYS
\W2KDIST\$oem$\Textmode\asc.INF
このTXTSETUP.OEMは適当に作った、こんなファイルです。とりあえず使いそうなやつ、全部アリにしたつもりなのですが、CHANPON3はこれでOKなんですが、CHANPON2Xはまだダメです。F6なら大丈夫なんですけどね。謎です。
# ------------------- Windows 2000 TXTSETUP.OEM --------------------------
[Disks]
d0 = "PC-98X1 bootable SCSI Device Driver Disk", \INIA100.SYS, \

[Defaults]
;scsi = INIA100
;scsi = IFC_USP
;SCSI=UIDE133_W2000
SCSI = Si3112_NT

[scsi]
INIA100 = "INITIO INI-A10XU2W SCSI Host Adapter"
Si3112_NT = "Silicon Image SiI 3x12 SATALink Controller for Windows NT 4.0 and 2000"
IFC_USP = "MELCO Ultra SCSI IFC-USP"
UIDE133_W2000 = "I-O DATA UIDE-133 (for Windows 2000/XP)"

[Files.scsi.INIA100]
inf    = d0, INIA10x.INF
driver = d0, INIA100.SYS, INIA100

[Files.SCSI.Si3112_NT]
driver = d0,si3112.sys, Si3112
inf = d0,SI3112.inf

[Files.scsi.IFC_USP]
driver = d0, ASC.SYS, IFC_USP
inf = d0,asc.inf

[Files.SCSI.UIDE133_W2000]
driver = d0,UIDE133.sys,UIDE133_W2000
inf    = d0,UIDE133.inf


 

2-5. \W2KDIST\SVCPACK\

SVCPACK.INF で使用されるファイル群を入れておきます。
HOTFIXES.CMDから呼び出すレジストリファイルです。デフォルト共有禁止やら、適当に設定したいものを入れておきます。ついでに、DispFlipも登録します。これらは、起動後に設定変更できるようにデスクトップの regフォルダーへコピーしてしまいましょう。FLIPが3種類あるのは、切り替えのタイミングなどの違いをワンクリックで代えられるようにデス。
\W2KDIST\SVCPACK\NoShare.REG
\W2KDIST\SVCPACK\flipsys.REG
\W2KDIST\SVCPACK\flipoff.REG
\W2KDIST\SVCPACK\flipAUTO.REG

よく使うショートカットを作っておいてまとめてデスクトップへコピーしておきます
\W2KDIST\SVCPACK\TAC32.lnk
\W2KDIST\SVCPACK\Poweroff.lnk
\W2KDIST\SVCPACK\HIDEMARU.lnk
\W2KDIST\SVCPACK\Hdbench.lnk
\W2KDIST\SVCPACK\FLIP32.lnk
\W2KDIST\SVCPACK\admntool.lnk
たとえば、FLIP32の場合は、コマンド名を%windir%\system32\Flip32.exe こんな感じで指定しておけばドライブレターが何であっても大丈夫です。またショートカットキーに F とか割り当てておけば、とりあえず手探り切り替えでも便利ですよね。
admntoolってのは%SystemRoot%\system32\compmgmt.msc /sのショートカットです

\W2KDIST\SVCPACK\REG.EXE
 レジストリ操作用の実行ファイル

HOTFIXファイルなどのアップデート用実行ファイル 各々MSサイトからダウンロードしてリネームしておきます。
\W2KDIST\SVCPACK\WGAINST.EXE
\W2KDIST\SVCPACK\JV15.EXE
\W2KDIST\SVCPACK\IE6SP1.EXE
\W2KDIST\SVCPACK\DX9CNEC.EXE
\W2KDIST\SVCPACK\DOTNETFX.EXE
\W2KDIST\SVCPACK\qchain.exe
\W2KDIST\SVCPACK\Q818043.EXE
\W2KDIST\SVCPACK\MP9.EXE
\W2KDIST\SVCPACK\LANGPACK.EXE
\W2KDIST\SVCPACK\KB917953.EXE
\W2KDIST\SVCPACK\KB917736.EXE
\W2KDIST\SVCPACK\KB917734.exe
\W2KDIST\SVCPACK\KB917344.Exe
\W2KDIST\SVCPACK\KB914389.EXE
\W2KDIST\SVCPACK\KB913580.EXE
\W2KDIST\SVCPACK\KB912919.EXE
\W2KDIST\SVCPACK\KB911564.exe
\W2KDIST\SVCPACK\KB911280.EXE
\W2KDIST\SVCPACK\KB908531.EXE
\W2KDIST\SVCPACK\KB908523.EXE
\W2KDIST\SVCPACK\KB908519.EXE
\W2KDIST\SVCPACK\KB905915.exe
\W2KDIST\SVCPACK\KB905749.EXE
\W2KDIST\SVCPACK\KB901214.EXE
\W2KDIST\SVCPACK\KB901017.EXE
\W2KDIST\SVCPACK\KB900725.EXE
\W2KDIST\SVCPACK\KB899589.EXE
\W2KDIST\SVCPACK\KB899587.EXE
\W2KDIST\SVCPACK\KB896424.EXE
\W2KDIST\SVCPACK\KB896423.EXE
\W2KDIST\SVCPACK\KB896422.EXE
\W2KDIST\SVCPACK\KB896358.EXE
\W2KDIST\SVCPACK\KB893803.exe
\W2KDIST\SVCPACK\KB891861.EXE
\W2KDIST\SVCPACK\KB890830.exe
\W2KDIST\SVCPACK\KB867460.exe
\W2KDIST\SVCPACK\KB842773.EXE
\W2KDIST\SVCPACK\KB823353.exe
WGAINST.EXE DOTNETFX.EXE LANGPACK.EXE MP9.EXE は面倒なのでえいやと、AT機用のSP+メーカーで作ったファイルを使っちまいました。ie6sp1.exe は念のため、PC-98機で必要ファイルをDL後に、IEXPRESSで再パッケージ化します。DX9cNEC.exe は、もちろんPC-98用のパッチを当ててから必要なファイルのみをIEXPRESSで再パッケージ化してあります。なお、パッケージかしないでも、そのままファイルを全部一緒においといても大丈夫みたいです。(最初はそうやってました)

再起動後に追加するHOTFIXをレジストリに登録したり、その他設定をします。(後述)
\W2KDIST\SVCPACK\HOTFIXES.CMD

3,各ファイルの編集

3-1. \W2KDIST\DOSNET.INF

下記の項目に、svcpack を書き加えます
 
[OptionalSrcDirs]
uniproc
svcpack

3-2. \W2KDIST\SVCPACK.INF

06/06/15現在こんな感じです
[Version]
Signature="$Windows NT$"
MajorVersion=5
MinorVersion=0
BuildNumber=2195

[SetupData]
CatalogSubDir="\nec98\SVCPACK\"

[ProductCatalogsToInstall]

[SetupHotfixesToRun]
WGAINST.EXE /Q:A /R:N
DOTNETFX.EXE /Q:A /R:N
LANGPACK.EXE /Q:A
ie6sp1.exe /Q:A /R:N
DX9cNEC.exe /Q:A /R:N
MP9.EXE /Q:A /R:N

;BTS2 for Windows Update
KB842773.EXE /Q /N /Z
;Windows 2000 Service Pack 4 用の更新プログラム ロールアップ 1 (KB891861)
KB891861.EXE /Q /N /Z
KB901214.EXE /Q /N /Z
;Windows 2000 用セキュリティ更新プログラム (KB893756)
;to HOTFIX.CMD
KB899587.EXE /Q /N /Z
KB896423.EXE /Q /N /Z
;com_microsoft.893803_WindowsInstaller_v31_NEC_only
KB893803.EXE /Q /N /Z
;Windows 2000 用セキュリティ更新プログラム (KB905414)
;to HOTFIX.CMD
KB899589.EXE /Q /N /Z
;Windows 2000 用セキュリティ更新プログラム (KB901017)
KB901017.EXE /Q /N /Z
KB896422.EXE /Q /N /Z
;Windows 2000 用セキュリティ更新プログラム (KB890046)
;to HOTFIX.CMD
KB896358.EXE /Q /N /Z
KB900725.EXE /Q /N /Z
KB905749.EXE /Q /N /Z
;Windows 2000 用 Internet Explorer 6 Service Pack 1 のセキュリティ更新プログラム (KB905495)
;to HOTFIX.CMD
KB896424.EXE /Q /N /Z
KB908523.EXE /Q /N /Z
KB905915.EXE /Q /N /Z
KB912919.EXE /Q /N /Z
KB908519.EXE /Q /N /Z
KB911564.exe /Q /N /Z
KB823353.exe /Q:A /R:N
;Microsoft Data Access Components 2.5 Service Pack 3 用セキュリティ更新プログラム (KB911562)
;error となるので組み込まない
KB908531.EXE /Q /N /Z
KB917734.exe /Q /N /Z
KB914389.EXE /Q /N /Z
KB911280.EXE /Q /N /Z
KB917736.EXE /Q /N /Z
KB913580.EXE /Q /N /Z
KB917953.EXE /Q /N /Z
KB917344.Exe /Q:A /R:N
KB890830.exe /Q /N /Z
KB867460.EXE /QN
HOTFIXES.CMD
QCHAIN.EXE
 

いくつか、補足としては...
;to HOTFIX.CMD
とコメントアウトしてあるものは、ここではうまく組み込めないので、最後から2行目の HOTFIXS.CMDで
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
へ登録して、再起動後に組み込みます。

KB91156は、未だPC98用がリリースされてないみたいですね? 緊急なのに大丈夫かいな(^^;)
 

3-3. \W2KDIST\SVCPACK\HOTFIXES.CMD

 
@echo off
SET INSTSVC=%~dp0
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
%INSTSVC%REG ADD %KEY%\505 /VE /D "KB893756" /f
%INSTSVC%REG ADD %KEY%\505 /V 1 /D "%systemdrive%\HOTFIX\KB893756.EXE /Q /N /Z" /f
%INSTSVC%REG ADD %KEY%\510 /VE /D "KB905414" /f
%INSTSVC%REG ADD %KEY%\510 /V 1 /D "%systemdrive%\HOTFIX\KB905414.EXE /Q /N /Z" /f
%INSTSVC%REG ADD %KEY%\504 /VE /D "KB890046" /f
%INSTSVC%REG ADD %KEY%\504 /V 1 /D "%systemdrive%\HOTFIX\KB890046.EXE /Q /N /Z" /f
%INSTSVC%REG ADD %KEY%\507 /VE /D "KB905495" /f
%INSTSVC%REG ADD %KEY%\507 /V 1 /D "%systemdrive%\HOTFIX\KB905495.EXE /Q /N /Z" /f
%INSTSVC%REG ADD %KEY%\511 /VE /D "KB908531" /f
%INSTSVC%REG ADD %KEY%\511 /V 1 /D "%systemdrive%\HOTFIX\KB908531.EXE /Q /N /Z" /f
%INSTSVC%REG ADD %KEY%\511 /VE /D "KB886903 NET11_SP1" /f
%INSTSVC%REG ADD %KEY%\511 /V 1 /D "%systemdrive%\HOTFIX\KB886903.EXE /QN" /f

rem =======================================================================
rem エラーになるのでコメントアウト
rem %INSTSVC%REG ADD %KEY%\513 /VE /D "KB911562" /f
rem %INSTSVC%REG ADD %KEY%\513 /V 1 /D "%systemdrive%\HOTFIX\KB911562.EXE /Q /N /Z" /f
rem =======================================================================
rem 以下必要に応じて追加
rem %INSTSVC%REG ADD %KEY%\500 /VE /D "DOTNET2" /f
rem %INSTSVC%REG ADD %KEY%\500 /V 1 /D "%systemdrive%\HOTFIX\DOTNET2.EXE /Q:A /R:N" /f
rem %INSTSVC%REG ADD %KEY%\501 /VE /D "LNGPACK2" /f
rem %INSTSVC%REG ADD %KEY%\501 /V 1 /D "%systemdrive%\HOTFIX\LNGPACK2.EXE /Q:A /R:N" /f
rem %INSTSVC%REG ADD %KEY%\502.1 /VE /D "WaitIdle" /f
rem %INSTSVC%REG ADD %KEY%\502.1 /V 1 /D "%systemdrive%\HOTFIX\WaitIdle.exe /cpu=10 /time=10" /f
rem %INSTSVC%REG ADD %KEY%\503 /VE /D "904706D9" /f
rem %INSTSVC%REG ADD %KEY%\503 /V 1 /D "%systemdrive%\HOTFIX\904706D9.EXE /Q /N /Z" /f
%INSTSVC%REG ADD %KEY%\514 /VE /D "再起動" /f
%INSTSVC%REG ADD %KEY%\514 /V 1 /D "%systemdrive%\HOTFIX\DLYSHTDN.exe /reboot /t=5" /f
rem ドメインマスターにしない
%INSTSVC%REG IMPORT %INSTSVC%NoDM.reg
rem デフォルト共有の禁止
%INSTSVC%REG IMPORT %INSTSVC%NoShare.REG

rem =======================================================================

rem regとlnkをデスクトップにコピー
copy %INSTSVC%*.lnk %systemdrive%\DOCUME~1\ALLUSE~1\デスク~1
MD "%systemdrive%\Documents and Settings\All Users\デスクトップ\REG"
copy %INSTSVC%*.reg %systemdrive%\DOCUME~1\ALLUSE~1\デスク~1\REG

rem =======================================================================
rem DispFlip組み込み

rem もしトライデントが組み込まれていたら組み込みのみ
IF EXIST "%systemdrive%\WINNT\system32\drivers\TRINEC.SYS" GOTO FLIPOFF

rem 内蔵がなくて、OEMがある場合は自動切換えへ
rem atiでの動作は未確認
IF EXIST %systemdrive%\WINNT\system32\drivers\g200mini.sys GOTO FLIPAUTO
IF EXIST %systemdrive%\WINNT\system32\drivers\g400DHM.sys GOTO FLIPAUTO
IF EXIST %systemdrive%\WINNT\system32\drivers\NV4_MINI.SYS GOTO FLIPAUTO
IF EXIST %systemdrive%\WINNT\system32\drivers\ati2mtag.sys GOTO FLIPAUTO

:FLIPOFF
 %INSTSVC%REG IMPORT %INSTSVC%flipoff.REG
 goto end

:FLIPAUTO
 %INSTSVC%REG IMPORT %INSTSVC%flipAUTO.REG
 goto end

:end
EXIT
 

最後の DISPFLIPの組み込みでちょっとした細工をしてあります。Ra40とRvIIでいろいろ試していたのですが、RvIIの場合は再起動後にDispFlipは組み込んであり自動切り替えしてほしいが、Ra40では後付VGAが有効になっていても、Tridentがデフォルトで動作しているので、DispFlipで切り替えてしまうと、ブラックアウトしてしまい、操作できなくなる(^^;) ということです。なので、その場合は組み込みのみで自動切り替えはしたくない となります。
そこで、driversフォルダーにインストールされているVGAのドライバーファイルを見て、適当に条件分岐させてます。VxxxなどのTrident以外のオンボード機や、ATI系のビデオカード(一応上記では追加してあるけどあれで良いのか?)などの場合は適当に変更してください。
 

3-4, unattend.txt,  unattend.bat

この辺は setupmgr.exe 等で作成したり検索してみれば、だいたい勝手がわかると思います。
 
;SetupMgrTag
[Data]
    UnattendedInstall="Yes"
   AutoPartition=0
    MsDosInitiated=0
    winntupgrade = "no"
    win9xupgrade = "no"
    win31upgrade = "no"

[Unattended]
    UnattendMode=FullUnattended
    Repartition=No
    OemSkipEula=Yes
    OemPreinstall=Yes
    TargetPath=\WINNT
    UnattendSwitch=Yes
    CrushDumpSetting=0
    DriverSigningPolicy=Ignore
    NonDriverSigningPolicy=Ignore
OemPnPDriversPath="Drivers;Drivers\CMI8738;Drivers\IOEHCI;Drivers\INI100;Drivers\MATROX;Drivers\NVIDIA;Drivers\NIC_SIS9;Drivers\NIC_RTL"




他にもいろいろあるけど省略


;プロダクトidも先に入れておくと便利デス
[UserData]
    ProductID="xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"

;とりあえず全部コピーしておいて..
[OEMBootFiles]
UIDE133.SYS
UIDE133.INF
TXTSETUP.OEM
SilSupp.cpl
Si3112.sys
SI3112.INF
SI3112.CAT
Inia10x.inf
INIA10X.CAT
INIA100.SYS
ASC.SYS
ASC.INF

;インストールに使うカードを行をコメントアウトすること。
;複数指定してしまうとエラーになるので注意!
;TXTSETUP.OEM の[scsi]セクションにかかれてある表記と全く同じにしておかないとエラーになるので注意!
[MassStorageDrivers]
  "INITIO INI-A10XU2W SCSI Host Adapter"=OEM
;   "Silicon Image SiI 3x12 SATALink Controller for Windows NT 4.0 and 2000"=OEM
;   "MELCO Ultra SCSI IFC-USP"=OEM
;   "I-O DATA UIDE-133 (for Windows 2000/XP)"=OEM

 

4.その他

インストール直後からBigDriveへ対応させておきます

MSHDC.IN_ の拡張子を.cabに変更して解凍
下記を追加
HKR,Parameters,EnableBigLba,%REG_DWORD%,1
cab圧縮(LZXで高圧縮)して拡張子を.IN_に戻す
 参考:   ここ とかここ

2006/6/15

 現在のWindowsUpdateを参考に作ったんだから、これ以降にアップデート増えれば当然、hotfix全部済みってわけには、いかんわな..
 
作成 2006.6.15  macky