======統合インストール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% [[slp-oembios-activation]]を行いたい場合は、SSINIT.BATの実行後にOEMBIOS.*ファイル群の入れ替え(copyoem.bat)を行う必要がある。 ====SP3の統合===  /integrate オプションを使うことで、サービスパックをインストールイメージに統合することができる(参考:[[updatepackageswitch]])。**SP3の統合スクリプト**は、 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-update-list-1]]にある更新プログラムも、/integrate オプションでインストールイメージに統合することができる。 %SSUPDATE%\WindowsXP-KB892130-ENU-x86.exe /quiet /integrate:%SSTARGET% if errorlevel 1 goto onerror  [[xp-update-list-1]]には145個の更新プログラムがあるので、これをずらっと並べたスクリプトがこちら。 {{:make.bat|}} - **XP更新プログラム統合スクリプト**  **echo Success!**\\  **Sucess!**\\  **goto onexit** と表示されれば統合成功だ。  更新プログラムの日付の古い順に統合している。だが、なぜか**KB2859537**(Windows カーネルの脆弱性により、特権が昇格される)は、統合の順番が後ろの方だとエラーになってしまうので、最初に統合するようにしてある。\\ ====統合まとめ====  [[download-xp-update]] の手順に従って更新プログラムをダウンロードし、\\   [[#準備|SSINIT.bat]] -> [[#SP3の統合|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/|削除済み|[[http://www.softpedia.com/get/System/Boot-Manager-Disk/Bart-s-Boot-Image-Extractor.shtml|SoftPedia]]| |**GetElTorito**\\ (Olof Lagerkvist)|[[http://www.ltr-data.se/opencode.html/#CmdUtils|http://www.ltr-data.se/opencode.html]]|[[http://www.ltr-data.se/files/geteltorito.zip|geteltorito.zip]]|[[http://www.softpedia.com/get/CD-DVD-Tools/CD-DVD-Images-Utils/GetElTorito.shtml|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セクタに相当する。内容は[[wpjp>NTLDR]]に制御を渡すコードになっている。  私の把握している限りでは、XPのCD-ROMのブートイメージには2種類ある。一つは初期からSP2適用済み版までに使われたもの。もう一つはSP3適用済み版のもの。後者の中身を覗いてみると、AMD64という文字が見つかる。SP2とSP3の間にx64版XPがリリースされているので、ブートイメージもx64対応したのであろう。それぞれのSHA1ハッシュ値を掲載する。 ^ ^SHA1ハッシュ値^ |SP2まで|21d494d1d1565a99593635a2ca7ef1b9f549040a| |SP3|14c7e7e14dff41b78e199ebcc7d30ed13b1aa067| (この他に、ソフト開発用に提供されたHome/Professional同梱CDが手元にある。そのブートローダーのハッシュ値は 37d23e284fca2e0e914fb7bb488fc87507b4bb27 になっている)。 El Toritoブートイメージの抽出については、このサイトが詳しい。\\ **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は、[[https://technet.microsoft.com/ja-jp/library/dd799292(v=ws.10).aspx|Windows AIK(自動インストールキット)]]のコマンドの一つだ。現在AIKは[[https://msdn.microsoft.com/ja-jp/library/hh825486.aspx|Windows ADK]]という名称になっている。 ^Version^対象の\\ Windows^ダウンロードページ^サポートしている\\ Windows||||| ^:::^:::^:::^XP^Vista^7^8^10^ |1.0|Vista|[[https://www.microsoft.com/ja-jp/download/details.aspx?id=10333|Windows 自動インストール キット (AIK) ]] ([[http://download.microsoft.com/download/e/f/1/ef11d672-a958-4c00-9b09-7cf8050bb39f/vista_6000.16386.061101-2205-LRMAIK_JA.img|direct]])|○|○|-|-|-| |2.0|Vista|[[https://www.microsoft.com/ja-jp/download/details.aspx?id=9085|Windows Vista SP1 および Windows Server 2008 用の自動インストール キット (AIK) ]] ([[https://download.microsoft.com/download/a/b/6/ab62e6c8-398f-4ca0-beb4-1c5b6dc50395/6001.18000.080118-1840-kb3aik_ja.iso|direct]])|○|○|-|-|-| |3.0|7|[[https://www.microsoft.com/ja-jp/download/details.aspx?id=5753|Windows 7 用の Windows 自動インストール キット (AIK) ]] ([[http://download.microsoft.com/download/E/C/9/EC98BD8E-A6D3-400A-8B9B-5EFDC32693C0/KB3AIK_JA.iso|direct]])|-|○|○|-|-| |:::|:::|[[https://www.microsoft.com/ja-jp/download/details.aspx?id=5188|Windows 7 SP1 用の Windows 自動インストール キット (AIK) 補足プログラム]] ([[http://download.microsoft.com/download/A/0/2/A028549A-51F8-4F57-9D32-EB6FDEEF0648/waik_supplement_ja-jp.iso|direct]])|:::|:::|:::|:::|:::| |4.0|8|[[https://www.microsoft.com/ja-jp/download/details.aspx?id=30652|Windows 8 用 Windows ADK]] ([[http://download.microsoft.com/download/9/9/F/99F5E440-5EB5-4952-9935-B99662C3DF70/adk/adksetup.exe|direct]])|-|○|○|○|-| |5.1|8.1|[[https://www.microsoft.com/ja-JP/download/details.aspx?id=39982|Windows 8.1 Update 用 Windows ADK]] ([[http://download.microsoft.com/download/6/A/E/6AEA92B0-A412-4622-983E-5B305D2EBE56/adk/adksetup.exe|direct]])|-|○|○|○|-| |-|10|[[https://developer.microsoft.com/ja-jp/windows/hardware/windows-assessment-deployment-kit|Windows ADK のダウンロード]] ([[https://download.microsoft.com/download/0/1/C/01CC78AA-B53B-4884-B7EA-74F2878AA79F/adk/adksetup.exe|direct (Version 1809用)]])|((サポートOSは不明))||||○| ===Windows XP上で行う場合===  Windows XPで実行可能なAIK/ADKはVersion 1.0(Vista用)のみだ(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|サイレント・インストーラ]] を作ってみた。 続きは、[[updates-silent-installer]]へ。