Windowsの再インストール無しでIDEモードからAHCIモードにする [自作PC]
BIOSのデフォルトがIDEモードだったりして、せっかくのSATAなのにAHCIモードでインストールできなかった場合の対処方法
・だめもとでBIOSをIDE->AHCIにしてみる。
・だめだったら、regedit.exeを起動し、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msahci
のStartを4->0にする
もし0だったのにBSOD(7B)が出たら諦める。
・OSが起動するはず。起動したらMSのAHCIドライバが入る。ここで再起動を要求されるが一応再起動したほうがいいかもしれない。(自分は面倒だったので再起動しなかったが)
・ベンダ固有のAHCIドライバをインストールする。再起動を当然求められるので再起動。無事AHCIモードになる。
詳細説明
Windowsの初回インストール時に使わないデバイスドライバのStartオプションは4(OnDemand、デバイスが存在したらPnPによってロードされる)に設定される。
しかし、OSの起動プロセスの初期段階では、PnPに依存しないで問答無用でディスクを読み込むためのデバイスドライバをロードしないといけない。そのようなデバイスはStartオプションが0になっている。
AHCIにしたディスクも当然ブート時にロードされる必要があるので、0にしないといけないが、デバイスがインストールされていない、もしくは入っていたとしても4になっているため動かない。
regeditで0になっているデバイスは以下のような振る舞いをする
・ブート時に問答無用でロードされる
・AddDeviceが呼ばれたときに、無事見つけることができたらそのデバイスが使われるであろう。
・もし見つからない場合には、OSは直ちにUnloadを呼び出しカーネルメモリを開放するだろう。
よって、4->0にすると上記のステップのために、ほんのわずか起動が遅くなる副作用がある。気になる人は正しいドライバを入れた後はいらないデバイスを0->4にすることで、無用なデバイスがカーネルに読み込まれないようにすることができる。しかし、Windowsは無いデバイスは適切にUnloadするようになっているので、下手にいじって動かなくなるよりは、動く状態でそのままにしておいたほうがよいだろう。
追記
Windows XP のシステム ディスクを他のコンピュータに移動した後に STOP 0x0000007B エラーが表示される
http://support.microsoft.com/kb/314082/ja
この中ではレジストリファイルを用意すれば対応できるように書いてあるが、
本当にやらなければいけないことはatapi,intelide,pciide,scsiportの4つのドライバの起動タイミングを4->0に変更している。これでIDEと(今は化石となってしまった)SCSIが起動できるようになっている。
今回のAHCI対策はこれを応用した。
さらに追記
AHCIにすることで、OS/ブラウザの起動などがかなり軽くなりました。Vistaだから重いのではなくて、単にHDDのパフォーマンスが出ていませんでした・・・
さらにさらに追記
SuperfetchサービスをOFFにすると、サスペンドを常用していない人にとっては体感は良くなります。
・だめもとでBIOSをIDE->AHCIにしてみる。
・だめだったら、regedit.exeを起動し、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msahci
のStartを4->0にする
もし0だったのにBSOD(7B)が出たら諦める。
・OSが起動するはず。起動したらMSのAHCIドライバが入る。ここで再起動を要求されるが一応再起動したほうがいいかもしれない。(自分は面倒だったので再起動しなかったが)
・ベンダ固有のAHCIドライバをインストールする。再起動を当然求められるので再起動。無事AHCIモードになる。
詳細説明
Windowsの初回インストール時に使わないデバイスドライバのStartオプションは4(OnDemand、デバイスが存在したらPnPによってロードされる)に設定される。
しかし、OSの起動プロセスの初期段階では、PnPに依存しないで問答無用でディスクを読み込むためのデバイスドライバをロードしないといけない。そのようなデバイスはStartオプションが0になっている。
AHCIにしたディスクも当然ブート時にロードされる必要があるので、0にしないといけないが、デバイスがインストールされていない、もしくは入っていたとしても4になっているため動かない。
regeditで0になっているデバイスは以下のような振る舞いをする
・ブート時に問答無用でロードされる
・AddDeviceが呼ばれたときに、無事見つけることができたらそのデバイスが使われるであろう。
・もし見つからない場合には、OSは直ちにUnloadを呼び出しカーネルメモリを開放するだろう。
よって、4->0にすると上記のステップのために、ほんのわずか起動が遅くなる副作用がある。気になる人は正しいドライバを入れた後はいらないデバイスを0->4にすることで、無用なデバイスがカーネルに読み込まれないようにすることができる。しかし、Windowsは無いデバイスは適切にUnloadするようになっているので、下手にいじって動かなくなるよりは、動く状態でそのままにしておいたほうがよいだろう。
追記
Windows XP のシステム ディスクを他のコンピュータに移動した後に STOP 0x0000007B エラーが表示される
http://support.microsoft.com/kb/314082/ja
この中ではレジストリファイルを用意すれば対応できるように書いてあるが、
本当にやらなければいけないことはatapi,intelide,pciide,scsiportの4つのドライバの起動タイミングを4->0に変更している。これでIDEと(今は化石となってしまった)SCSIが起動できるようになっている。
今回のAHCI対策はこれを応用した。
さらに追記
AHCIにすることで、OS/ブラウザの起動などがかなり軽くなりました。Vistaだから重いのではなくて、単にHDDのパフォーマンスが出ていませんでした・・・
さらにさらに追記
SuperfetchサービスをOFFにすると、サスペンドを常用していない人にとっては体感は良くなります。
コメント 0