ホーム  ざれごと  ワシントン州  ツール  NT豆知識  Win32プログラミングノート  私的用語  ジョーク  いろいろ  ゲーム雑記  Favorites  掲示板   Mail

Windows XP のディスクを新しい環境へ移行

Last modified: Sun Sep 02 22:39:56 2007 PDT

一つ上へ

English

新しいマザーボードを買ってきても、NT や XP のシステムが入っているハードディスクをそのまま差し替えて動くとは限りません。 チップセット、BIOS や CPU が変わる場合には、HAL や ACPI などの部分を更新する必要があります。 通常の PnP では、残念ながらそこまでは面倒を見てくれません。

OSの移行

なにはともあれ、まずバックアップを取っておきましょう。

また、元の環境を壊さないよう、あるいは何度でも試せるよう、バックアップとは別にディスクを用意し、元の環境のクローンを作って実験してみるのがよろしいかと。 クローンしたディスクでなら失敗しても痛くも痒くもありません。

また、手違いによるミスを減らすため、作業の最中は最低限必要なディスクだけを接続し、必要のないディスクは物理的にはずしておくのが賢明です。

また、マザーボードを交換すると十中八九アクティベーションを要求されます。 この場合、猶予はあまり長くなく3日程度なことがあるので、十分な時間が取れるよう予め予定を立てておくほうがいいかも。 まぁ期限が切れてもクローンからやり直せばいいだけの話なんですが、それはそれで面倒なので…。

ブートデバイス用デバイスドライバ

マザーボードの交換で問題になるのは、チップセットやオンボードデバイスの違いによって起動ドライブのインタフェースが変わり、対応するドライバがないとOSの起動ができなくなること。 あらかじめドライバをインストールしておくなどいくつか解決策はあるのですが、PCI接続のIDEにブートドライブを接続していれば、交換前・後ともに共通のドライバが使えて問題なくブートができます。

OSがサポートしているIDEインタフェースのドライバをあらかじめ用意しておく方法が、Windows XP のシステム ディスクを他のコンピュータ に移動した後に STOP 0x0000007B エラーが表示されるという技術情報に出ています。

HAL・カーネルのマルチプロセッサ化

交換前の環境がシングルCPUだった場合、これだけだとマルチCPU対応にならない場合があります。 以下はXPの例です。 マルチプロセッサを認識した場合、基本的にはHAL・カーネルの入れ替えはOSが面倒を見てくれるのですが、交換前に"ACPI Uniprocessor PC"でない場合はそうなりません。 どのHALを使っているかは、デバイスマネージャのコンピュータの項目で確認できます。

この場合、HAL・カーネルを自分で用意してからboot.iniに項目を追加、"ACPI Uniprocessor ACPI"と表記されるHAL(halaacpi.dll)を使ってブートする必要があります。 HALの変え方の詳細は、http://homepage2.nifty.com/winfaq/wxp/setup.html#1232に解説があります。 ただ、サービスパックやWindows Updateを当ててている場合、必要なファイルをインストールCDから展開するよりも、パッチの当たったものを使うほうが良いでしょう。

C:\> pushd %windir%
C:\Windows> dir /s hal*.dll
 ...
C:\Windows> dir /s nt*.exe

などで表示されるファイル一覧の中から、現在使われているHAL・カーネルと同じタイムスタンプのものを %windir%\System32 へコピーしておきます。

あとはboot.iniを編集して、HALを指定してブートできるようにします(元のboot.iniはどこかにバックアップを取るべし)。 現在のブート設定をコピー&ペーストして、/hal=halaacpi.dllを追加した行を作っておきます。 あくまでも一例ですが、こんな感じ。 マシンによって若干違う可能性があるので、必ず自分のboot.iniから作ってください。

multi(0)disk(0)rdisk(0)partition(1)\Windows="XP HAL=ACPI Uniproc" /fastdetect /hal=halaacpi.dll

再起動してブート時のメニューから選べば、あとはOSが面倒を見てくれるはずです。 もう一度再起動すれば、マルチプロセッサ対応のHAL・カーネルに設定されて両方のコアがOSから使えるようになっているでしょう。 タスクマネージャなどで確認できます。
なお、一度設定がなされれば、このメニュー項目は不要です。

もちろん、これではうまくいかないケースもあるでしょう。 また、system32やboot.iniをいじるので危険もあります。くれぐれも自己責任ということで。

これで駄目でも

まだいろいろ試す余地はあります。

もっとHALを!

上記のboot.iniに対するメニューの追加と同じようにして、全てのHALを選択できるようにし、一通り試してみる手もあります。

修復

インストールCDからWindowsの修復を行い、HAL・カーネルその他の設定を任せてしまう方法があります。

インプレイス・アップグレード

また、はるかに手間がかかりますが、交換前のマザーボードでインプレイス・アップグレードを開始し、リブート後のテキストモードセットアップからは交換後のマザーボードで実行する、という手もあります。 以前解説したことがあります

起動に使うインタフェースまたはCD-ROM用のドライバがOS標準でサポートされていない場合、F6で読み込ませるためのドライバディスクをあらかじめ作っておく必要があります。
インストールメディアが古くてSPのレベルが違う場合には、Windows XP SP2 をインストールしたコンピュータで修復インストールを行うとエラーが発生するを 参照。

私は使ったことがありませんが、nLiteなどを使って予めデバイスドライバ・サービスパック・パッチ・各種設定を施したインストールCDを作ると便利そうです。 動作の検証が面倒そうではありますが。

修復セットアップあるいはインプレイス・アップデートはサービスパックやらWindows Updateやらも全部元に戻してしまうので、起動できるようになったらすかさずアップデートしてください。

ブートできるようになったら

マザーボード付属のCDあるいはダウンロードなどで、チップセットやらもろもろのドライバをインストールしておきましょう。

なお、昔のCPU・チップセットなどのドライバは、システムに残ったままです(なので、このディスクはどちらのマザーボードでも起動できる便利なディスクということになります)。 ブート時間が長くなる等マイナーな問題以外に、大きな実害は多分ないと思うので私は放っておいていますが、新しい環境へ移ってデバイスマネージャに現れなくなったあとでもアンインストールは可能です。

詳しくは@IT: 接続されていないデバイスの情報を表示させるなどで。
簡単にまとめておくと、環境変数devmgr_show_nonpresent_devicesを1にセットしてdevmgmt.mscを起動、Viewメニューから"Show hidden devices"を実行。

Since 1996

一つ上へ

ホーム  ざれごと  ワシントン州  ツール  NT豆知識  Win32プログラミングノート  私的用語  ジョーク  いろいろ  ゲーム雑記  Favorites  掲示板   Mail