Technical Notes
テクニカルノーツ
ハードウェア
-
2014.1.25
Windows7機のマザーボードを換装してみた結果、Linuxでレジストリを書き換えてみた
もしマザーボードが壊れたら Windows7もリリースから早くも4年と3ヶ月が過ぎたが(Windows7は2009年10月22日発売)、Windows8.1がリリースされた現在でもいまだ現役で使用され続けている。OSのリプレースがユーザに直接的なメリットを感じさせないことやユーザ・インターフェイスの大幅な変更がユーザの不評を買ったこともあってWindows8系のOSが商業的に成功を見ていないため、しばらくの間はビジネス市場でWindows7が使い続けられるであろうことは想像に難くないが、Windows7がその役目を終えるまで何の問題なく使い続けられる幸運を誰もが持ち合わせているわけではない。ハードウェアには寿命があるからだ。 もし寿命の尽きたハードウェアがDVDドライブやメモリや電源であれば話は簡単で、パーツを交換すればすむ話だ。不幸にしてハードディスクがまったく動かなったのなら、Windowsのクリーン・インストールを余儀なくされるだろうし(不幸にしてバックアップを取る習慣のない人にはとても悲しいできごとだけれども)、選択肢が限られている分あきらめもつく。だが、問題はマザーボードに障害が起きた場合だ。 Windowsが起動しない ハードディスクには異常がないのだから、他のパーツ同様に交換すればすむんじゃないの?と考えた人(私のことだが)は今のOSを知らない。Windows XPの時代はいざ知らず、Vista以降はマザーボードを換装した場合、Windowsが正常に起動しない。運がよければスタートアップ修復のダイアログを目にすることができようが、結局のところ修復は失敗に終わり、再起動から再びスタートアップ修復を目にする羽目になる。運が悪ければブルースクリーンが表示され、まったく起動しない。 これは最近の Windows は初期インストール後に環境に合わせて最適化され必要なドライバしか読み込まないため、引っ越し先のハードウェアに適応していないことが原因だ。したがって、レジストリの書き換えによって生き残ったハードディスクにインストールされたWindowsを初期状態に戻してやる必要があるのだ。 ただし、この段階で起動しないことが判明したからには、既にマザーボードは交換済みのはずだ。賢明にしてマザーボード換装前にこのエントリと遭遇した人は、この先を読んでスタートアップ修復(またはブルースクリーン)を回避して欲しい。交換前のマザーボードがまだ生きていて、なおかつ手を動かすことに抵抗のない人は、マザーボードを元に戻そう。 そんな面倒なことはごめんだ そんな面倒なことは御免蒙(ごめんこうむる)!という人(私のことだが)にも救いの道はある。世の中にはLinuxというOSもあって、Linuxからレジストリを書き換えるためのchntpwというコマンドを開発した偉い人も存在する。Petter Nordahl-Hagen さんというノルウェーの人だが、なんと読むかはわからない。まあ、ペッターさんでいいだろう。読み方はわからなくても感謝の気持ちは大事だ。ペッターさんに感謝しながら使おう。 chntpwが使えればLinuxのディストリビューション(ディストリビューションが何かわからない人はLinuxディストリビューションを読むこと。こんなにたくさんの種類があるので一言では説明できないのだ。)は何でもかまわないのだが、レジストリを書き換えるだけのためにLinuxを利用しようという人には以下のISOイメージをダウンロードして使うことをおすすめする。 Kaspersky Rescue Disk 10 trinity rescue kit Kaspersky Rescue Disk 10 はアンチウイルスなどのセキュリティ製品で有名なカスペルスキーが配布しているツールで、主な目的はウイルスやマルウェアに感染したコンピュータを修復することだが、修復の過程でレジストリの編集が必要となるケースもあってか chntpwがGUIで使えるようになっている。使いやすい分、こちらの方がおすすめだ。 trinity rescue kit は Windowsマシンの復旧・修復用に作られた 1CD Linux(CD1枚で起動するLinuxのこと。Live Linux ともいう。)で、主にコマンドラインから利用しなければならないし、ハードディスクのマウントの知識など Linux のリテラシが必要になるので比較的ハードルが高い。ISOイメージをCDに焼けない人のために Windows上で自動解凍するとCDまで焼いてくれるバージョンも用意されていたりするのだが、こんなものを使おうという人がISOイメージを焼けないなんてことがあるのかという疑問はあるものの、いつでも感謝の気持ちを忘れてはいけない。Kaspersky Rescue Disk 10 が使えない場合にはありがたく使わせていただこう。 ちなみにどちらも英語版なので、最低限の英語力は必要だ。中学・高校と6年間も英語教育を受けさせてくれた両親・保護者にも感謝を忘れないこと。 Kaspersky Rescue Disk 10 を起動してみた さっそく Kaspersky Rescue Disk 10 の CD を作成して起動してみた。グレーン基調のスマートな画面が表示され、ハードディスクも自動的にマウントされる。スクリーンショットを見れば分かるように、起動直後にはウイルススキャンのウィンドウが表示され、このディスクがセキュリティ目的のためにつくられたことがわかる。画面左側にあるアイコンには、マウントされたハードディスクを表すフォルダアイコンの他、ファイルマネージャ、レジストリ・エディタの他、ブラウザまで用意されている。このアイコンからレジストリ・エディタ(Registry Editor)をダブルクリックする。 レジストリを書き換える レジストリ・エディタからは HKEY_LOCAL_MACHINE\System 配下に複数あるControlSet(ControlSet001 とかControlSet002など。ControlSet001とかControlSet003 の組み合わせの場合もあるし、2個以上ある場合も考えられる。)以下のキーを修正する。ControlSetはWindowsが起動したときに記録されるシステム・レジストリのセットであり、システムの変更状態によっていくつかのバックアップが取られる。少なくとも前回正常起動時のバックアップと現在の ControlSet の2つが存在しているはずだ。Windows が起動したときに、どの ControlSet が使われるかはHKEY_LOCAL_MACHINE\SYSTEM\Select以下をみればわかるのだが、修正漏れがないようにすべてのControlSet に対して修正を施しておくほうが無難だろう。 修正対象のキー 修正は最低限(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 で以上の作業を完了させればいい。 戦いは終わっていない これでようやく Windows を起動できるようになったはずだが、これで終わりというわけではない。マザーボードを変更したことで、チップセットをはじめ、LAN・VIDEO・USBその他諸々のドライバも新しいものが必要になっている。交換したマザーボードに添付されているCDから適宜必要なドライバをインストールしよう。 おっと、これで終わったと思ってはいけない。マザーボードを交換したことによって Windows7 のアクティベーションが無効になっているからだ。システムのプロパティを表示して、再アクティベーションを行う(詳細はこのコンピューターの Windows をライセンス認証するを参照のこと)。プロダクトキーは今まで使っていたものと同じキーでアクティベーションしてくれるが、もちろん保証の限りではない。ライセンスの問題は各自で解決すること。 同様にMS-Officeのアクティベーションも無効になっている可能性が高い。こちらについては Excel や Word を起動すると自動的にアクティベーションを要求されるので、そのままインターネット経由でアクティベーションを実行しよう。私の場合は特に問題もなくアクティベーションが完了した。 次回予告 勘の良い人はお気づきになったかもしれないが、本来、chntpw とはその名の通り Change NT Password、つまり Windows のパスワードを変更するためのコマンドだ。次回は trinity rescue kit を使って、パスワードがわからなくなったマシンを復旧する方法について書いてみようと思う。