マザーボードを載せ替える(激闘編)

午前中にひと通りやることやって日曜の続き。
まずはバラして元の環境に戻す。無事に起動を確認…ということは、やっぱりハード変更による何かがトリガーであることが確定。とりあえずASUSのドライバを7とXPにインストール…しようとしたらXPにはドライバ側で蹴られてしまった。根本的にXPには対応してなかった。まあ、こればかりはサポート終わっているOSだし仕方がない。XPは切り捨てる方向で、万一だめだった時のハード戻しの時専用ってことで決断。
この段階で内蔵している別のHDDが急に読み取り専用になるという想定外トラブルが。レジストリの調整という手段が有効なのだがうまい方法がよくわからなかった。しかし、

マイクロソフト コミュニティ
「diskpart」というコマンドを使って、ディスクの書き込み禁止属性を解除するというものです。
1. スタート > すべてのプログラム > [コマンド プロンプト] を右クリックして [管理者として実行]
2. 黒い画面が出たら「diskpart」と入力して Enter キー
3. 「list volume」と入力して Enter キー (外付け HDD の Volume 番号を確認します)
4. 「select volume #」と入力して Enter キー (# は 3 で確認した外付け HDD の Volume 番号)
5. 「attributes disk clear readonly」と入力して Enter キー
上記操作後、「ディスクの属性が正しく消去されました」と表示されたらコマンド プロンプトを閉じて、外付け HDD
に書き込みできるか確認します。

を発見。試してみたら一発で成功。おお。ついでにgigazineの記事にあったこのソフトを使って、以前からやりたかった起動ドライブ用のSSDの領域をいじる*1
そして改めてマザーボードを差し替えて起動っ!…まったく同じ症状で失敗。うーむドライバじゃなかったのか。ということで改めてネットで検索すると「Windows7以降はOS側の問題で、マザーボードを変えると起動しなくなる」という情報が。てっきりOS起動後にドライバインストールで整合性を取ると思ったんだが、「ASUSのドライバが無いから動かない」というよりも「レジストリレベルで違うハードウェアと認識することになるので、そもそもハードを認識できない」だったとは…。ということで、また別のHPに書いてあった方法を頼る。

Windows7機のマザーボードを換装してみた結果、Linuxでレジストリを書き換えてみた | テクニカルノーツ | 有限会社ワン・エックス
修正は最低限(ControlSet001の場合)、
HKEY_LOCAL_MACHINE\System\ControlSet001\Services\Msahci
の Startエントリの値を 0 に書き換えてやれば Windowsは起動する。ただし前述の通り、不要なドライバを読み込まないようになっているのは最適化のためなので、逆に不要なドライバを読み込むことによって起動に時間がかかるようになる可能性もある。どれほどの影響があるかは不明だが、以下のキーについても同様に Startエントリを 0 に書き換えておいたほうがいいようだ。
Aliide.sys
Amdide.sys
Atapi.sys
Ataport.sys
Cmdide.sys
Intelide.sys
Pciide.sys
Pciidex.sys
Viaide.sys
まだマザーボードを交換していない、もしくは元のマザーボードに戻した人は、Windows を起動して Regedit で以上の作業を完了させればいい。

ということでまた旧ハード環境に戻して上記処理を完了、改めて起動したら…できた!よかった。下手すりゃまた一週間放置するところだった。
Windows7の再アクティベーションを行ってから、ドライバやら増設ボードやらを1つずつ組み上げては確認をして、ひと通りの環境が戻ったのが22:30。まだ音回りの確認というか調整が微妙なんだけど、まあとりあえずはOKとしよう。使い勝手等もこれからのんびり検証だけど、少し動画サイトやゲームを動かす限り、これまであった一瞬のもたつきとか遅延がなくなった感じなので、効果は出ているのだろうと思う。

*1:Windows7とXPで2つに分けていたけど、事実上XPは使わないも同然なのでXPのスペースをギリギリまで絞ってそれをWin7に分け与えた。フリーなのに特に問題なく終わったので素晴らしいソフトといえる。