目次
統合インストール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の内容をコピーする。準備のスクリプトは、
- SSINIT.BAT
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%
SP3の統合
/integrate オプションを使うことで、サービスパックをインストールイメージに統合することができる(参考:更新プログラムのコマンドラインスイッチ)。SP3の統合スクリプトは、
- SSSP3.bat
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を統合することができる)。
更新プログラムの統合
XPの更新プログラム一覧 (1)にある更新プログラムも、/integrate オプションでインストールイメージに統合することができる。
%SSUPDATE%\WindowsXP-KB892130-ENU-x86.exe /quiet /integrate:%SSTARGET% if errorlevel 1 goto onerror
XPの更新プログラム一覧 (1)には145個の更新プログラムがあるので、これをずらっと並べたスクリプトがこちら。
make.bat - XP更新プログラム統合スクリプト
echo Success!
Sucess!
goto onexit と表示されれば統合成功だ。
更新プログラムの日付の古い順に統合している。だが、なぜかKB2859537(Windows カーネルの脆弱性により、特権が昇格される)は、統合の順番が後ろの方だとエラーになってしまうので、最初に統合するようにしてある。
統合まとめ
XPの更新プログラムのダウンロード の手順に従って更新プログラムをダウンロードし、
SSINIT.bat → SSSP3.BAT → make.bat
の順に実行すれば、SOURCEのイメージとUPDATEの更新プログラムを統合したイメージがTARGETにできあがる。容量は約1GBに増えているはずだ。
ISOイメージの作成
できあがったインストールイメージをCDにするために、まず起動可能なISOイメージを作る。必要なのは、ISOイメージ作成ソフトと、ブートイメージを抽出するソフトだ。
El Toritoブートイメージの読み出し
起動可能なISOイメージを作成するには、El Toritoブートイメージが必要だ。このイメージはWindows Vista以降のものはAIK(Windows自動インストールキット)の中に etfsboot.com というファイル名で提供されているのだが、XPのものは提供されていない。自分でCD-ROMから抽出するしかないようだ。
CD-ROMからEl Toritoブートイメージを抽出するWindows標準のコマンドは存在しないので、サードパーティ製のコマンドを使うほかない。2種類紹介する(BBIEは作者が公開を停止してしまったようなので、SoftPediaのリンクを掲載しておく)。
ソフト名 | サイト | ダイレクト リンク | SoftPediaページ |
---|---|---|---|
Bart's Boot Image Extractor (Nu2 Productions) | http://www.nu2.nu/bbie/ | 削除済み | SoftPedia |
GetElTorito (Olof Lagerkvist) | http://www.ltr-data.se/opencode.html | geteltorito.zip | SoftPedia |
ZIPファイルをダウンロードしたら、中から.EXEファイルを取り出して、カレントフォルダかC:\Windowsにコピーしておく。
CD-ROMドライブがZ:ドライブの場合には、
bbie z: ren image1.bin boot.img
とすると、image1.binというファイル名でブートイメージが抽出されるので、それをboot.imgにリネームするようにしている。
GetElToritoを使うならば、
geteltorito \\.\z: >>boot.img
と標準出力をファイルにリダイレクトする。ドライブ名の前に\\.\をつける必要がある。
どちらもISOイメージファイルからの抽出もできる。できあがるファイルのサイズは2Kbyte。これはCD-ROMの1セクタに相当する。内容はNTLDRに制御を渡すコードになっている。
私の把握している限りでは、XPのCD-ROMのブートイメージには2種類ある。一つは初期からSP2適用済み版までに使われたもの。もう一つはSP3適用済み版のもの。後者の中身を覗いてみると、AMD64という文字が見つかる。SP2とSP3の間にx64版XPがリリースされているので、ブートイメージもx64対応したのであろう。それぞれのSHA1ハッシュ値を掲載する。
SHA1ハッシュ値 | |
---|---|
SP2まで | 21d494d1d1565a99593635a2ca7ef1b9f549040a |
SP3 | 14c7e7e14dff41b78e199ebcc7d30ed13b1aa067 |
(この他に、ソフト開発用に提供されたHome/Professional同梱CDが手元にある。そのブートローダーのハッシュ値は 37d23e284fca2e0e914fb7bb488fc87507b4bb27 になっている)。
Understanding the Basics of El Torito by Slipstreaming an XP CD (Largely) Under Linux
http://will.tip.dhappy.org/projects/unsorted/xp_cds/eltorito_extraction.html
OSCDIMGでISOファイル作成
OSCDIMG.EXEの入手
Windows上でISOファイルを作るツールはたくさんあるが、ここではMicrosoftのOSCDIMG.EXEを使ってみる。OSCDIMG.EXEは、Windows AIK(自動インストールキット)のコマンドの一つだ。現在AIKはWindows ADKという名称になっている。
Version | 対象の Windows | ダウンロードページ | サポートしている Windows |
||||
---|---|---|---|---|---|---|---|
XP | Vista | 7 | 8 | 10 | |||
1.0 | Vista | Windows 自動インストール キット (AIK) (direct) | ○ | ○ | - | - | - |
2.0 | Vista | Windows Vista SP1 および Windows Server 2008 用の自動インストール キット (AIK) (direct) | ○ | ○ | - | - | - |
3.0 | 7 | Windows 7 用の Windows 自動インストール キット (AIK) (direct) | - | ○ | ○ | - | - |
Windows 7 SP1 用の Windows 自動インストール キット (AIK) 補足プログラム (direct) | |||||||
4.0 | 8 | Windows 8 用 Windows ADK (direct) | - | ○ | ○ | ○ | - |
5.1 | 8.1 | Windows 8.1 Update 用 Windows ADK (direct) | - | ○ | ○ | ○ | - |
- | 10 | Windows ADK のダウンロード (direct (Version 1809用)) | 1) | ○ |
Windows XP上で行う場合
Windows XPで実行可能なAIK/ADKはVersion 1.0(Vista用)のみだ(2.0も使える)。ダウンロードセンターのページでダウンロードすると、vista_6000.16386.061101-2205-LRMAIK_JA.imgというファイルが手に入る(サイズは699MB)。これをCD-Rに焼く、あるいは拡張子を.ISOにリネームしてVirtual CD-ROM Control Panelを使ってマウントし、インストールする。
CD中のSTARTCD.EXEを実行するとインストーラが起動するので、Windows AIKセットアップ(W)を選んでインストールする。インストール先を変更しなければ、C:\Program Files\Windows AIK\Tools\PETools\の中にOSCDIMG.EXEが存在しているはずだ。
AIKを使う予定がなければ、OSCDIMG.EXEを別のフォルダにコピーして、AIKはアンインストールしてかまわない。
(この手順はWindows 10上でも実行可能だった)。
Windows 10上で行う場合
Windows ADK のダウンロードページからWindows ADK for Windows 10 Version xxxx を入手すると書かれたリンクをクリックして、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にコピーしておく。
- makeiso.bat
oscdimg -n -m -o -bboot.img -lSSXP %SSTARGET% SSXP.iso
Oscdimg のコマンド ライン オプション | |
---|---|
-n | 長いファイル名を使用可能にする。 |
-m | イメージの最大サイズ制限を無視します。 |
-o | MD5 ハッシュ アルゴリズムを使用してファイルを比較し、重複するファイルを 1 回だけエンコードすることで、記憶域を最適化します。 |
-b | El Torito ブート セクタ ファイルの場所を指定します。 |
-l | ボリューム ラベルを指定します。 |
ISOイメージをDVD-Rに書き込む
できあがったISOファイルをDVD-Rに書き込む(本当はCD-Rにしたかったのだが、サイズが700MBを越えてしまった)。MicrosoftのCDBURN.EXE/DVDBURN.EXEを使うことにする。Windows Server 2003 Resource Kit Tools の中にある。
Download Center | ダイレクトリンク | サイズ |
---|---|---|
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 は未インストール
インストールした画面。
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などを一括してインストールするサイレント・インストーラ を作ってみた。
続きは、更新プログラムをまとめてインストールへ。