goo blog サービス終了のお知らせ 

たまはなの備忘録

色々やってて
忘れそうなことを
残しておく所です。

Disk2vhdで仮想化!!Windows2000server

2014-02-04 15:08:01 | 備忘録
備忘録1号。

Disk2vhdで仮想化!!Windows2000serverの巻
Hyper-Vじゃなくて、VirtualPC or Virtualserver用

文字ばかりで乱文なのは
備忘録なので、ご容赦を
そして、途中まではあるけど
起動までできたよ!ってのがなかったので
誰かの手助けにでもなれば。てとこですね。

まずDisk2vhdって言うのは
マイクロソフトから提供されてるツールで
物理ハードディスクを仮想化用ハードディスクへ
変換してくれると~~っても便利な無料ソフトです。

だがしかし!
全てに対応しているわけではない様で
ACPI非対応だとダメという話です。
※試したのが対応品だったので、未対応のができるかできないかは試してません。
ついでに、簡単そうにみえますが
これを使うだけでは、起動できない割合の方が高い気がします!!!!

確認方法は
デバイスマネージャー開いて
コンピュータの所をクリックして
標準PCとなっていたら非対応
もう一つの確認方法
システムルート内のsystem32内にある
HAL.DLL
のプロパティを開いて
バージョン情報タブにある
正式ファイル名をクリックして
その中がそのままHAL.DLLだったら
非対応という事です。

前置きは長くなりましたが

当然、仮想化とかそんな予定も無く運用していて
突然サーバがふっとんだ!
例:マザーが壊れた。だけど、交換品がない!
という場合もあると思います。
それも、新しいPCならともかく
昔から業務で使用しているサーバ系
今回はWindows2000server
それ以外にも、NTだったり
簡単に言うと今回は
Hyper-Vでは動作保障のないPCという事。
Hyper-Vで動くか調べてみたけど
動くけど不安定でブルースクリーンでまくる
とか、まともにインストールすらできないとかばかり
なので、やる気も起きないという感じになっちゃいました。

昔NTserverの物理環境を仮想化した事はあったのですが
たぶん、ハードウェアがNT時代より新しくなったから
特に何もせずに起動出来たのだろうと勝手に予想。

これに味をしめたたまはなは
2000でもいけるんじゃね?
と思い、実験開始!!
昔よりもDisk2vhdのバージョンも上がり
今は、2.01
色々あるネットのページよりも若干違いますね。
よくあるのが1.63かな?
とりあえず、XPと7で立ち上げた画面のチェックボックスが
少し違います。
7もってる人で気になる人は
XPの互換モードで起動してみてください。

使い方は、これを見るくらいの人なので
そこまで難しいわけでもないので特には記載しません。

そんなこんなで仮想化用ハードディスクが完成しました。

んじゃぁ立ち上げるかぁ
と、色々設定して立ち上げる。
がしかし!
最初のWindows2000の画面が出て
その後
画面左上で白のカーソルが点滅してるだけで
いつになってもすすみません!!

のんきなたまはなは
ま、そのうちなんとかなるだしょ。
という感じで、実験を一時中断。
そうこうしているうちに
営業所のサーバが壊れる!!
※破損部品はマザーボード
代替品なし!!!
あせったたまはなは
薄い期待を込めてオークションを探す!
かれこれ10年前位の製品でしたが
動作確認品が運よく出品されてた!
すかさず購入!
そして、営業所へ急遽出張し
HDD、CPU、メモリだけを取り外し
新しく買った筐体、電源、マザーボードに組み込む
何とか起動を確認!!一安心♪

だが、ここでたまはな考える
恐らく、次同じことが起これば
次は無い=営業所としての業務ができなくなる=売上と取引先の信用おちる!

これではダメやんと思い
途中で投げ出していた仮想化に再度チャレンジ
結果、同じ様に
黒い画面で白い点滅から進まない。
色々試行錯誤する。
しばらくして、ん。もしかして
起動前の読み込み部分でおかしいってことは
普通に起動出来ている仮想化PC内部の起動用データもってくればいいんじゃね?
と、思いつく。
ここで、最初に書いたHAL.DLLが問題なんじゃ?
てことは、ntoskrnl.exeもか?
基本部分は同じなので
Windows2000 pro SP4から
2個のファイルをそれぞれコピー
元ファイルは使うかもしれないから別名にしといた。
boot.iniいじって指定してあげてみた。
2個コピーした状態だと、結果、
ntoskrnl.exeがねぇよ!ってエラー
(実はiniファイルの設定ミスorz)
やりなおしたけど、普通に?エラー
てことは、HAL.DLLはそのままじゃないとダメなのね???
そりゃそうだわな??とか一人つっこみしながら
HAL.DLLだけ元に戻して起動!

※後で検証の為、試してみたけど
 他の事やりながらだったので
 どっちが必要か結局わからなかった。
 なので、一度どっちもコピーしてみて
 ダメだったら、HAL.DLL戻して
 違ったらHAL.DLLをコピー分にして
 ntoskrnl.exeを元あった分に戻してみてね。
 結果、どっちだったかコメントでも頂けると助かります。

すると!お!!!
Windows2000serverの起動バーが進みだした!!
だがしかし!甘くはなかった
ブルースクリーンでSTOPエラー!!!
0x0000007B
調べてマイクロソフトのページとかみると
レジストリいじる事になるけど
これなら何とかなるかも
てことで
以下がレジストリ内容

==========ここから=======================

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\win2000_sys\ControlSet001\Control\CriticalDeviceDatabase\primary_ide_channel]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\win2000_sys\ControlSet001\Control\CriticalDeviceDatabase\secondary_ide_channel]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\win2000_sys\ControlSet001\Control\CriticalDeviceDatabase\*pnp0600]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\win2000_sys\ControlSet001\Control\CriticalDeviceDatabase\PCI#VEN_8086&DEV_7111]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\win2000_sys\ControlSet001\Services\atapi]
"Start"=dword:00000000
"DisplayName"="標準 IDE/ESDI ハード ディスク コントローラ"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,61,00,74,00,61,00,70,00,69,00,2e,\
00,73,00,79,00,73,00,00,00

[HKEY_LOCAL_MACHINE\win2000_sys\ControlSet001\Services\IntelIde]
"Start"=dword:00000000
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,6e,00,74,00,65,00,6c,00,69,\
00,64,00,65,00,2e,00,73,00,79,00,73,00,00,00

[HKEY_LOCAL_MACHINE\win2000_sys\ControlSet001\Services\PCIIde]
"Start"=dword:00000000

==========ここまで=======================

これを、とりあえずテキスト形式にてどっか適当なとこに保存。
動かしているPCがWin7(Vista)の場合ですが
VHDファイルをマウント。
やり方はコンピュータを右クリックの管理で
ディスクの管理開いて
上側にある操作からVHDの接続で
ファイルを指定してあげれば繋がります。
それ以外のOSの場合は、VHDファイルをマウント出来るツール使ってね。
Gizmo Driveとかですかね。

マウント出来たら
レジストリをハイブします。
方法は、管理者権限でレジストリエディターを起動
HKEY_LOCAL_MACHINE
をクリックして
ファイルからハイブの読み込み
で、今回使用するレジストリ部分は
システムルート→system32\configフォルダ内にある
systemというファイルです。
読み込む時、キー名を入力しなければなりませんが
win2000_sys
と、します。
※上記のレジストリ分の中身と同じにしないと無意味なので。

ここまで終わったら
上記で保存したテキストファイルの拡張子をregに変更して
開きます。

これで、レジストリが書き換わりましたので
書き換わったかどれか1つを確認して
無事書き換わっていたら
ハイブのアンロード(解除)をします。

最後に、VHDのマウントも解除します。

これで一応終わりです。
※レジストリいじる前に一度起動出来るかテストしてみてください。
 もしかしたら、いじらなくても起動出来るかも。

起動確認をしますが
最初はセーフモードで起動させて下さい。
理由は、これを読む位の方たちなので大丈夫でしょう。

無事起動したら
次に普通に起動させます。
恐らく通常起動出来ると思います。

後は、今まで通りに使用出来るか
安定しているか確認すれば終わりです。

読まれる方は理解しているとは思いますが
バンドル品のWin2000serverは規約違反になるので
通常品の場合に限ります。

後1つだけ
VirtualのBIOSでHDDの容量確認したら
元は40GBのHDDなのになぜか136.7GBとかになってた!
気になる方は、VHDファイルを必要な容量で作成して
クローンツールで引っ越してあげれば
そのまま使用出来ます。
※最大認識容量が136.7GBなので、それを超えた容量で作っても
 認識は136.7までしか出来ないので、気を付けて。


長かった第一回備忘録終わり!!

第二回あるのか不明!?!?


コメントを投稿