とほほの、Windows XP マザーボード交換。

とほほの、Windows XP マザーボード交換。

Java Applets で請求書を印刷している、超古い XP のマザーボードが壊れたので、急遽、マザーボード交換するはめになりした。

参考ページは、
以前にもおせわになった、OSそのままマザーボード交換の方法 です。
ところが、Microsoft の肝心のページが無い。

Mergeide.reg というファイルが作れないと苦心していたら、 インターネットに結構公開されているようだ。

github.com/tarao

後、問題は、XP が起動出来ないので、XPの HDD 上のレジストリー情報を、
おんちゃんは、Windows11 上で行わないといけない。

参考にさせてもらったのは、
備忘 マザーボード交換
別の HDD にあるレジストリ(ハイブファイル)を操作する

結局、Windows11 の regiedit を使って、XP の外部HDD上のregistory を、
手作業で、mergeide.reg の内容を取り込むことになるのか?

[HKEY_LOCAL_MACHINE\SYSTEM] ->\WINDOWS\System32\Config\SYSTEM
と言う事なので、念のために、
XP HDD の /WINDOWS/System32/config/systemファイルのバックアップを、Ununtu PC から取って置きます。
Windows11 の registory もバックアップしておいた方がよさそう。
regiedit -> export
ドキュメント/windows11-org.reg

余談だが、おんちゃんは、Ubuntu 20.04 PCもあるので、最近は、Windows の ntfs も普通に Ubuntu からアクセスできる。

当初、XP の \boot.ini の起動オプションで、なんとか出来ないか試してみました。

Windows XP と Windows Server 2003 Boot.ini ファイルで使用可能なスイッチ オプション

/basevideo /sos

2. 手作業は、面倒なので、Python で簡単にできないものか?

どうやら、winreg でアクセスできるようだ。
coriolis/hivex もある。
winreg でレジストリを読み書きするサンプルコード

python-registry2 のサンプルに、csv から取り込む例があるので、参考になるか?

これなら、Windows11 のレジストリーをいじらなくても出来るので、安心ぞね。
早速、起動できない XP HDD から、
/WINDOWS/System32/config/system を、Windows11 の適当なフォルダーに持ってきて、試すのみじゃ。

1) テスト。
samples/printall.py で、リスト出力してみる。

i) windows11 の適当な、フォルダー上で、
msys2 で、git clone する。
# cd /e/local/vscode-python
# git clone # cd \local\vscode-python\
# git clone https://github.com/williballenthin/python-registry.git

ii) Windows11 のターミナルで、python3.7 を使って。
> set PYTHONPATH=E:\local\vscode-python\python-registry;%PYTHONPATH%
> cd E:
> cd \local\vscode-python\python-registry\samples
> python printall.py xp_system
OK。

注) xp_system は、起動できない、XP の レジストリーファイルを持ってきておく。

3. もしかして、kvm-mergeide がそのまま使えるのでは。

4. 結局 hivexregedit と言うのが、そのまま使えるみたいぞね。

ubuntu mate 20.04
$ sudo apt install libwin-hivex-perl

マージの実行、
$ hivexregedit --merge xp_system --prefix 'HKEY_LOCAL_MACHINE\SYSTEM' mergeide.reg

使い方は、man ページにある。
$ man hivexregedit


やっぱり、これも NG でした。使い物にならないです。
仕方がないので、自分で、python で作る事にしました。

5. python で、自分で作っている際に、既存の Windows レジストリーに、以前マージした値がそのまま残っている事がわかりました。
それなのに、載せ替えたマザーボードで、上手く起動できないのは、マザーボードの方に問題がありました。

Intel D945GPM
ですが、デフォルトの bios の設定では、起動 NG でした。
多分、Raid Driver が、FDD で添付されていたので、其れがインストールされていない為のような気がします。
取り敢えず、bios の設定で、
advance -> Drive Configuration
 ATA/IDE Mode <Legacy>
上記で、やっと、既存の Windows XP が起動できました。
この後、TEL で、アクティベーションをしてなんとか、移行ができました。
いまも、TEL で、アクティベーション ができるみたいです。AI の応答ですが。

但し、上記、bios の設定だと、電源ON 直後に、エラーがでます。
Internal Error (9) HARDWARE_UNSUPPORTED
多分、これが、Riad Driver を入れて、bios の設定を、ディフォルトに戻せば、解決するような気がします。
やれやれでした。

6. Ubuntu 20.04 から、Windows レジストリーにアクセスする tool があった。
UbuntuでWindowsのプロダクトキーを取得する。

$ sudo apt install chntpw

自分用の情報。
python ascii to bytes x

7. merge regi を、python で作りました。
途中まで作って、必要がなくなりましたが、序だから、完成させました。
github で公開しました。
tosa-no-onchan/merge_regi

このブログ記事について

このページは、おんちゃんが2022年12月31日 18:31に書いたブログ記事です。

ひとつ前のブログ記事は「ROS2 自作 Turtlebot3(foxbot_core3_r2) Rtabmap_ros with Stereo rgbd and GPS.」です。

次のブログ記事は「ROS2 自作 Turtlebot3(foxbot_core3_r2) Rtabmap_ros with Stereo rgbd and GPS. by T100TA」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ