すでにスラッシュドット ジャパン等で報道されているように,Windows Vista 用の更新として,WindowsUpdateによって配布された「KB943899」に致命的な不具合が存在した模様.特にWindows Vista採用の一部ノートPCにおいては,Windowsが立ち上がらなくなるようだ.
このKB943899は,12月にMSダウンロードセンターからダウンロードが可能となり,その後,1月のWindowsUpdateの推奨更新に加えられたようだ(未確認情報).MSサイトの説明によれば,KB943899の更新を行うことにより,下記の点が改善される(注:MS日本語ページが機械翻訳のためなのか,意味がよくわからないので,一部原文を参照して翻訳した)
- ハイバネート状態にコンピュータを切り替えようとすると,「STOP 0x000000A0 」エラーが表示される.
- ハイバネート状態,またはスタンバイ状態に移行する場合,あるいは,それらの状態から復帰する場合,「STOP 0x0000009f」エラーが表示される. この問題は,ワイヤレス ネットワーク接続を持つコンピュータで発生する.
- 一定時間,PCを操作していないのに,ハードディスクの回転が止まらない.(The disk does not spin down after a specified time of inactivity)
このようにKB943899更新は,電源と節電に関する不具合を解消するための更新だが,この更新に含まれるハードディスク設定の変更に問題があったようだ.その変更とは…
私のメインマシンもそうなのだが,サーバや一部のPCにおいては,RAIDが構築されており,ハードディスクが複数台,内蔵されている場合がある.ハードディスクの内蔵台数にもよるが,このようなハード構成をしているマシンにおいては,1つの問題がある.
それはマシン起動時のハードディスクへの突入電流だ.ご存じの方も多いと思うが,PCだけではなく通常の電器製品においても,電源投入時に,通常動作時以上の電流が流れる製品がある.この時の電流が突入電流だ.詳しくは上記のリンクを参照してほしいのだが,節電のために,機械の電源を頻繁にオンオフすると,逆に節電にならない場合があるのは,そのためだ.また突入電流は,機械やその電源に対して負荷をかけるため,故障の原因ともなりえる.
複数台のハードディスクを内蔵したマシンの電源投入時に,内蔵ハードディスクのすべてのモーターが一斉に回り出すと,かなりの突入電流が生じるらしい.その結果,内蔵電源に負荷をかけ,電源を劣化させたり,場合によっては,電源の容量を超えてしまうこともありえる.
これに対処するために,シリアルATA規格から,「Staggered Spin-up」という機能がハードディスクに追加された.これは,マシン起動時に複数台のハードディスクのモーターを同時に回転開始せず,一台ずつ順番に回転させることを可能とする機能だ.
このStaggered Spin-upと似たハードディスク機能として,「Power-Up In Standby」という機能を持つハードディスクも存在する.この機能が有効なハードディスクは,電源投入時と同時にスタンバイ状態となる.従って,電源投入時にモーターは回転しない.このスタンバイ状態のハードディスクは,PC本体から送信される「spin up」コマンドを受信しない限り,モーターは回転しない.先ほどのStaggered Spin-upとの違いは,
- Staggered Spin-upは,ハード的な手法(信号線)
- 「Power-Up In Standby」は,ソフト的な方法(コマンド)
であることだろう(未確認).
話が長くなったが,KB943899更新は,どうやらハードディスクに対して,この「Power-Up In Standby」機能を有効にするコマンドを送信するようだ.このため,
- 内蔵ハードディスクが「Power-Up In Standby」機能を持つ
- BIOS側が,「Power-Up In Standby」機能が有効になった状態でのマシン電源投入を想定していない.すなわち,マシン電源投入直後に「spin up」コマンドをハードディスクに送信しない.
上記2つの条件を満たすPCにKB943899更新を適用した後は,電源投入時にハードディスクのモーターが永遠に回転を開始しないため,OSブートが不可能となり,タイムアウト・エラーがBIOSにより表示されてしまう.
上記3条件を満たすPCは,主にノートPCであり,スラッシュドット ジャパンの記事では
- Let's note CF-R6M/CF-R6A(BIOSがV1.00L13 / V2.00L10)
- ThinkPad T60
などが例としてあげられているので,特にVistaノートPCのユーザは,要注意だ.
ただ,仮にこの更新が原因で,PCがブートしなくなっても,仙石氏提供の修復用LinuxをUSBフラッシュメモリ等に入れ,そこからLinuxを起動することによって,修復が可能のようだ.
さらにKB943899更新は,バッテリー関係設定をも変更するため,この起動不具合以外にも,ディスプレイ表示異常,光学ドライブ使用不能などの不具合も起こっている模様.
ちなみに私のメインマシンは,3台のハードディスク(Seagate: ST3320620AS SATA3Gb/s x 3)でRAID5を構成しているVista PCだ.このメインマシンには,すでにKB943899更新がインストールされているが,今のところPCの起動には問題がないようだ.
今後,KB943899更新の更新がリリースされると思うが,それまでの間,この更新の適用は保留しておいた方が無難だと思われる.