======統合インストールISO作成======
OSのインストール後に、サービスパックや更新プログラムをインストールするのは面倒だ。その手順を省けるように、あらかじめ統合してあるインストールCDがあれば便利である。統合インストールイメージの作成に挑戦してみる。\\
このように**統合**することを、英語では **slipstream** と呼ぶようだ。
以下のスクリプト(BATファイル)で使う環境変数のリストを示す。
^環境変数^用途^未指定時のデフォルト^
|SSSOURCE|元のインストールCDのフォルダ|カレントフォルダ\SOURCE|
|SSTARGET|統合イメージのフォルダ|カレントフォルダ\TARGET|
|SSUPDATE|更新プログラムのフォルダ|カレントフォルダ\UPDATE|
こういう行が各スクリプトの先頭に置かれる。
if not defined SSSOURCE set SSSOURCE=%CD%\SOURCE
if not defined SSTARGET set SSTARGET=%CD%\TARGET
if not defined SSUPDATE set SSUPDATE=%CD%\UPDATE
=====インストールイメージの作成=====
====準備====
インストールCDの内容をコピーする。**準備のスクリプト**は、
if not defined SSSOURCE set SSSOURCE=%CD%\SOURCE
if not defined SSTARGET set SSTARGET=%CD%\TARGET
rmdir /s /q %SSTARGET%
xcopy /e /h /i /y /q %SSSOURCE% %SSTARGET%
if not defined SSTARGET set SSTARGET=%CD%\TARGET
if not defined SSUPDATE set SSUPDATE=%CD%\UPDATE
%SSUPDATE%\WindowsXP-KB936929-SP3-x86-JPN.exe /quiet /integrate:%SSTARGET%
echo %errorlevel%
**echo %errorlevel%** の行が\\
**echo 0** と表示されるようなら統合に成功だ。\\
\\
XPにサービスパックをインストールする場合には、SPなしの状態にいきなりSP3をインストールすることはできないが、/integrate オプションで統合する場合にはその制限はない(SPなしのXPにSP3を統合することができる)。
%SSUPDATE%\WindowsXP-KB892130-ENU-x86.exe /quiet /integrate:%SSTARGET%
if errorlevel 1 goto onerror
[[xp-update-list-1]]には145個の更新プログラムがあるので、これをずらっと並べたスクリプトがこちら。
bbie z:
ren image1.bin boot.img
とすると、image1.binというファイル名でブートイメージが抽出されるので、それを**boot.img**にリネームするようにしている。\\
**GetElTorito**を使うならば、
geteltorito \\.\z: >>boot.img
と標準出力をファイルにリダイレクトする。ドライブ名の前に**\\.\**をつける必要がある。
どちらもISOイメージファイルからの抽出もできる。できあがるファイルのサイズは2Kbyte。これはCD-ROMの1セクタに相当する。内容は[[wpjp>NTLDR]]に制御を渡すコードになっている。
私の把握している限りでは、XPのCD-ROMのブートイメージには2種類ある。一つは初期からSP2適用済み版までに使われたもの。もう一つはSP3適用済み版のもの。後者の中身を覗いてみると、AMD64という文字が見つかる。SP2とSP3の間にx64版XPがリリースされているので、ブートイメージもx64対応したのであろう。それぞれのSHA1ハッシュ値を掲載する。
のみだ(2.0も使える)。[[https://www.microsoft.com/ja-jp/download/details.aspx?id=10333|ダウンロードセンターのページ]]でダウンロードすると、**vista_6000.16386.061101-2205-LRMAIK_JA.img**というファイルが手に入る(サイズは699MB)。これをCD-Rに焼く、あるいは拡張子を.ISOにリネームして[[https://www.microsoft.com/en-us/download/details.aspx?id=38780|Virtual CD-ROM Control Panel]]を使ってマウントし、インストールする。
{{ ::aikvista.png?nolink |Windows AIK Version 1.0のインストール}}
CD中のSTARTCD.EXEを実行するとインストーラが起動するので、**Windows AIKセットアップ(__W__)**を選んでインストールする。インストール先を変更しなければ、**C:\Program Files\Windows AIK\Tools\PETools\**の中に**OSCDIMG.EXE**が存在しているはずだ。
AIKを使う予定がなければ、**OSCDIMG.EXEを別のフォルダにコピー**して、AIKはアンインストールしてかまわない。
(この手順はWindows 10上でも実行可能だった)。
===Windows 10上で行う場合===
[[https://developer.microsoft.com/ja-jp/windows/hardware/windows-assessment-deployment-kit|Windows ADK のダウンロード]]ページから**Windows ADK for Windows 10 Version xxxx を入手する**と書かれたリンクをクリックして、ADKのセットアップファイルをダウンロードする。
{{ ::adk10.jpg?nolink |Windows 10 ADKでインストール機能を選択する}}
ダウンロードしたファイル(adksetup.exe)を実行する。途中で、インストールする機能を選択する画面がある。OSCDIMG.EXEを得たいだけなら、**Deployment Tools**のみ選択すれば、インストールにかかる時間も容量も少なくて済む。
**%ProgramFiles(x86)%\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\Oscdimg\**に**OSCDIMG.EXE**が存在しているはずだ。
ADKを使う予定がなければ、OSCDIMG.EXEを別のフォルダにコピーして、ADKはアンインストールしてかまわない。
====ISOファイル作成====
OSCDIMG.EXEをカレントフォルダかC:\Windowsにコピーしておく。
oscdimg -n -m -o -bboot.img -lSSXP %SSTARGET% SSXP.iso
|< 100% 3em - >|
^[[https://technet.microsoft.com/ja-jp/library/cc749036(v=ws.10).aspx|Oscdimg のコマンド ライン オプション]]^^
|-n|長いファイル名を使用可能にする。|
|-m|イメージの最大サイズ制限を無視します。|
|-o|MD5 ハッシュ アルゴリズムを使用してファイルを比較し、重複するファイルを 1 回だけエンコードすることで、記憶域を最適化します。|
|-b|El Torito ブート セクタ ファイルの場所を指定します。|
|-l|ボリューム ラベルを指定します。|
=====ISOイメージをDVD-Rに書き込む=====
できあがったISOファイルをDVD-Rに書き込む(本当はCD-Rにしたかったのだが、サイズが700MBを越えてしまった)。Microsoftの**CDBURN.EXE/DVDBURN.EXE**を使うことにする。[[https://www.microsoft.com/en-us/download/details.aspx?id=17657|Windows Server 2003 Resource Kit Tools]] の中にある。
^Download\\ Center^ダイレクトリンク^サイズ^
|[[https://www.microsoft.com/en-us/download/details.aspx?id=17657|DC]]|http://download.microsoft.com/download/8/e/c/8ec3a7d8-05b4-440a-a71e-ca3ee25fe057/rktools.exe|11.8MB|
%ProgramFiles(x86)%\Windows Resource Kits\Tools にインストールされ、環境変数PATHも設定される。
dvdburn z: SSXP.iso
DVD-RWを消去してから書き込む場合は/eraseオプションを付ける。
dvdburn z: SSXP.iso /erase
=====統合インストールDVD完成=====
これで統合インストールDVDが完成。
* Service Pack 3と更新プログラム140あまりの統合
* Internet Explorer 6 のまま
* Media Player 9 のまま
* IE6、MP9の更新プログラムは未インストール
* .NET Framework は未インストール
{{ :xp-installed-1.jpg?nolink |統合インストールISOでXPをインストールした}}
インストールした画面。
2006年にThinkPad X20からX21に乗り換えたとき、XPを再インストールしようと決めた。だが、SP2適用済みのインストールCDを持っていなかった。そうなると、SPなしのXPをインストールして、次にSP2をインストールすることになる。当時は20GBのHDDに開発ツールなどを詰め込んでいたので、少しでもHDDの空き容量を増やしたかった。そのためには、SP2のアンインストール情報が残るのは嬉しくない。だから、SP2適用済みのインストールCDを自作しようと考えた。だが時間が取れず、諦めてしまった。\\ さらに、2009年にX200に乗り換えるときに、X21にXPを再インストールしようと思い立ち、「どうせだったらSP3統合版を作ってインストールしよう」とnLiteをいじくっていたのだが、それも中断・放置してしまった。 2016年末に、X21再生を思い立ち、統合インストールISO作りを始めたのだが、ダウンロードセンターから多数の更新プログラムが消えているなど、困難が多かった。仕事が忙しくて時間が割けなかったり、途中でマルウェアにPCがやられたりもしたが、約7ヶ月かかって、ここまで到達した。最初の取り組みから10年以上経過しているのだから、感無量である(大袈裟)。だが、IE6/MP9のままというのはイマイチだし、.NET Frameworkのインストールと更新も面倒だ。XPのインストール後に、IE8/WMP11/.NET Frameworkなどを一括してインストールする[[updates-silent-installer|サイレント・インストーラ]] を作ってみた。