先日、一部メーカー製PCで、Windows XP SP3導入後リブートが繰り返されるという問題が発生したが、今回はこのトラブルの原因ともなったクライアントPCのOS展開時の注意点を考えてみたい。

多数のクライアントPCを運用する大規模企業ユーザーでは、クライアントPCのOS、あるいはアプリケーションソフトについて、統一した環境を整備する負担が問題になる。台数が少ない場合には1台ずつ手作業で設定しても何とかなるが、台数が数十台、数百台ともなると、いちいち手作業で環境を構築するのは非現実的だ。

そこで、クライアントOSの展開(deployment)を支援するための仕組みが、いろいろと考案されている。マイクロソフトの場合、Windows Server 2003ではRIS(Remote Install Service)、Windows Server 2008ではWDS(Windows Deployment Service、 Windows展開サービス)を用意している。さらに、TechNet Onlineでは「デスクトップ展開」というコンテンツを用意しており、WindowsやOfficeをスムーズに展開する際に関わってくるノウハウについて、さまざまな情報を提供している。

OS展開の方法には2種類ある

クライアントPC向けにOSの展開を行う方法は、大きく分けると2種類ある。

ひとつは、ネットワークブートを行ったクライアントPCが通常と同様にOSのセットアッププログラムをダウンロードして実行する方法だ。これだけでも、CD-ROMやDVD-ROMといったメディアをいちいち用意してセットアップを行う手間を軽減できる。

さらにWindowsの場合、その際に使用する応答ファイルを事前に作成しておくことで、セットアップの際にさまざまな項目を手作業で設定する負担をなくして、セットアップ作業の無人化を可能にしている。Windowsで無人セットアップを行うための応答ファイルを作成するには、マイクロソフトダウンロードセンターで無償配布しているWindows AIK(Automated Installation Kit)を使用する。

・Windows自動インストールキット(AIK)

もうひとつの方法は、セットアップを完了した状態のハードディスクをイメージ化して、それを他のコンピュータに展開する方法だ。この方法には、デバイスドライバ、業務に固有のアプリケーションソフト、Service Packやその他のセキュリティ修正プログラムなどをすべてインストールした状態で展開を行えるので、大幅な効率アップを期待できる。

サードパーティー製のソフトウェアでも、同様の機能を提供する製品がある。よく知られている製品としては、「ノートン ゴースト」がある。

Windows Server 2003のRIS(Remote Install Service)に添付してあるイメージ作成ツール「riprep.exe」を使用すると、セットアップ済みのWindows XPをイメージ化して、他のPCに展開できる。OSのみならず、アプリケーションソフトやデバイスドライバ、Service Pack、セキュリティ修正プログラムまですべて用意した状態を複製できるので、効率の良い展開が可能だ

ただし、単にイメージを複製するだけではコンピュータ名が同じになってしまう。Windowsの場合、個々のWindowsごとに固有のSID(Security Identifier)を持つ仕様になっているが、イメージを展開しただけではこのSIDも同じになってしまい、不具合を引き起こすことがある。そこでWindowsではsysprepユーティリティを用意して、この問題に対処している。

セットアップ済みイメージの展開と、SP3再起動問題の関係

ともあれ、多数のクライアントPCを対象にしてOSを展開する場合、セットアップ済みWindowsのイメージ展開がきわめて有用な手段であるのは間違いない。しかし、運用に際して注意を怠ると、後になって予想もしていなかったようなトラブルを引き起こすことがある。その一例が、一部メーカーのPCで発生している、Windows XP SP3(Service Pack 3)適用時の再起動問題だ。

これは、AMD製のCPUを搭載した一部メーカーのPCにWindows XP SP3をインストールすると、インストール後に再起動を繰り返す状態となり、使用不可能になってしまうというものだ。実は、このトラブルとOSのイメージ展開には密接な関係がある。

企業におけるクライアントPCの展開と同様、PCメーカーでは多数の製品に同一の環境を構築する必要があるため、マスターとなるイメージを用意して、それを出荷時に展開する方法をとっている。マイクロソフトの説明によると、Windows XP SP3で発生したトラブルは、Intel製のCPUを搭載したPCで作成したイメージをAMD製CPUを搭載したPCに展開したことが原因だという。

・Intel以外のプロセッサを搭載したコンピュータでWindows XP Service Pack 2ま>たはService Pack 3にアップグレードすると、エラー メッセージ "Stop 0x0000007E>" が表示される http://support.microsoft.com/kb/888372/

CPUが備える省電力機能などを有効に活用するため、Windows XP以降はCPUの機種ごとに、固有のプロセッサドライバを用意する仕様になっている。Intel製CPUを搭載したPCでマスターを用意した場合、当然ながらプロセッサドライバもIntel製CPUに対応したものになる(ファイル名はintelppm.sys)。

ところが、イメージを展開した先がAMD製CPUを搭載したPCであれば、当然ながらAMD製CPUに対応するプロセッサドライバが必要になる。そこにIntel製CPUに対応したプロセッサドライバを含むイメージを展開した結果、それに合わせた内容のレジストリキーが残ってしまい、AMD製CPUを使用しているにもかかわらずIntel製CPU用のプロセッサドライバを読み込もうとして不具合が発生する、というわけだ。

Windows XP以降は、CPUごとにプロセッサドライバを用意して、省電力機能などを最大限に利用できるようにしている。そのため、イメージ展開に際して展開元と展開先でCPUの構成が異なるとトラブルの原因になる場合があり、それがWindows XP SP3の再起動問題によって露見したというわけだ

この問題は、PCメーカーが出荷時に行うイメージ展開だけでなく、企業でクライアントPCのOSを展開する場面でも同様に発生する可能性がある。セットアップ済みOSのイメージを展開するという点で、本質的な違いはないからだ。問題が発生する箇所はプロセッサドライバとは限らず、ハードウェア構成の組み合わせによっては、起動用のハードディスクを認識できない可能性も考えられる。

セットアップ済みイメージの展開をスムーズに行うには

つまり、セットアップ済みイメージを展開する際に、イメージ作成に使用したPCとイメージ展開先のPCでハード構成が異なっていると、今回のSP3再起動問題のように、トラブルに見舞われるリスクが存在するということになる。

もっとも確実な回避策としては、クライアントPCの機種を統一する方法が挙げられる。同一機種であれば、CPU(と、それに対応するプロセッサドライバ)やチップセットが異なることはないから、それらの相違に起因するトラブルも回避できる。完全に同一機種で統一するのが難しい場合でも、CPUやチップセットの系列をある程度揃えることで、リスクを軽減できるだろう。

また、クライアントPCの機種を統一することの副次的メリットとして、故障発生時の代替用本体、あるいは交換用パーツの入手・管理が楽になる点が挙げられる。メーカーによっては、企業における長期間の運用を前提としたサポート体制、パーツ提供体制を構築している場合もあるので、そうした製品を利用すると、クライアントPCの展開が容易になるだろう。

このように、クライアントPCの導入・展開ひとつとっても、目先の低コストに惑わされて、後から余計なトラブルを抱え込む事態につながる可能性がある。そうした点にも注意を払って、「安物買いの銭失い」にならないようにしたいものだ。