====== 家鯖をESXi 5.1U2からV2P, V2Vマイグレーション ======
家鯖をESXiによる仮想サーバから物理サーバにマイグレーションする事にした。
ESXi上で動いているのはFreeBSDとWindows 7の2つ。元々FreeBSDが物理的に動いていたが、Windowsで録画鯖を作ろうと思ってESXiを導入したという経緯がある。結局、nasneを買っちゃったし、そもそも元からテレビを見ないという致命的な不具合(笑)が発覚したので、録画鯖を仕立てる理由もなくなってしまった。ESXiの雲行きも怪しいし、良い機会なのでV2Pしちゃおうと考えた次第。
FreeBSDは物理サーバ時代からのHDDを全てRDM&PCIパススルーで動かしてた為、マイグレーションもへったくれもない。ESXiのUSBメモリを引っこ抜けば、何もしなくてもBSDが起動する素敵仕様。V2Pいっちょあがりっと。
Windowsの方はFreeBSD上のVirtualBoxにV2Vする事にした。録画鯖にはならなかったものの、PS Vitaのコンテンツ管理アシスタントのホストになってたり、巨大なエロ動画ファイルのダウンロードとかで地味に役立つので。こっちは少し苦労したため、作業内容をメモっておく。
===== ESXiのWindows 7をVirtualBoxにマイグレーション =====
==== ファイルのコピー ====
まずはESXiのデータストアからファイルを取り出さない事には始まらない。色々やり方はあると思うが、今回はクライアント側からscpで転送した。
$ scp -rp root@esxiserver:/vmfs/volumes/path_to_datastore/Windows/ esxi_save/
Password:
Windows.vmx 100% 3142 3.1KB/s 00:00
Windows.vmxf 100% 262 0.3KB/s 00:00
Windows.vmsd 100% 0 0.0KB/s 00:00
Windows.nvram 100% 8684 8.5KB/s 00:00
vmware-36.log 100% 202KB 202.1KB/s 00:00
Windows-flat.vmdk 100% 40GB 42.9MB/s 15:55
Windows.vmdk 100% 494 0.5KB/s 00:00
vmware-35.log 100% 202KB 201.6KB/s 00:00
vmware.log 100% 311KB 311.1KB/s 00:00
vmware-31.log 100% 176KB 175.8KB/s 00:00
vmware-32.log 100% 51KB 51.4KB/s 00:00
vmware-34.log 100% 202KB 201.9KB/s 00:00
vmware-33.log 100% 180KB 180.2KB/s 00:00
==== VirtualBoxに仮想マシンを作成 ====
VMの詳細は割愛。
ストレージは既存の仮想ディスクを使う。上で転送したファイルで言えばWindows.vmdkを選択する。
接続するバスは、とりあえずESXiで使っていた物と同じのにして、Windowsが起動するか試してみる。正常に起動すれば後は何もする必要はないが、十中八九「Windowsを起動しています」の画面で“STOP 0x0000007B”ブルースクリーンが出て死ぬ。その時は、接続バスを好きなものに変えて(もちろん変えなくてもいい)、次の対策を行う。
==== “STOP 0x0000007B”対策 ====
“STOP 0x0000007B”ブルースクリーンが出てWindowsを起動出来ない時は、レジストリを修正する必要がある。
- VM起動時にF8連打でWindowsの「詳細ブートオプション」を表示し、「コンピュータの修復」を選ぶ。コンピュータの修復が表示されていなければ、修復用のシステムがインストールされていないって事なので、WindowsのインストールCDから同等の事をする(詳細はググってくだしあ)。\\ {{:blog:2014:win7_boot_option.png|}}
- システム回復オプションのログイン画面が出るので、正常に動いてた時のアカウントでログイン。\\ {{:blog:2014:win7_recovery_logon.png|}}
- コマンドプロンプトを起動。\\ {{:blog:2014:win7_recovery_option.png|}}
- コマンドプロンプトで「**regedit**」と打ち、レジストリエディタを起動。\\ {{:blog:2014:win7_recovery_run_regedit.png|}}
- レジストリエディタの**「HKEY_LOCAL_MACHINE」または「HKEY_USERS」を選択した状態**で **[ファイル]>[ハイブの読み込み]**を選択。
- **d:\Windows\System32\config\SYSTEM** を開く。\\ {{:blog:2014:win7_recovery_load_registory.png|}}
- マウントポイント名を聞かれるので、適当に**attached**などと入れる。\\ {{:blog:2014:win7_recovery_attach_registory.png|}}
- **attached**にSYSTEMレジストリが読み込まれるので、**CurrentControlSet\services**と**ControlSetNNN\services**の中にある下記リスト内の「Start」の値を0にする。ノードが存在しなければ飛ばしてOK。\\ {{:blog:2014:win7_recovery_edit_registory.png|}}
* aliide
* amdide
* atapi
* ataport
* cmdide
* intelide
* LSI_SAS
* LSI_SAS2
* LSI_SCSI
* megasas
* MegaSR
* msahci
* pciide
* pciidex
* viaide
- レジストリエディタ、コマンドプロンプトを終了し、再起動。
以上でマイグレーションしたWindowsが正しく起動するハズ。
===== 参考サイト =====
* [[http://necotek.blog.fc2.com/blog-entry-79.html|マザーボード交換したらブルースクリーン0x0000007Bが出て起動しなくなったので修復した - ねこてっく パソコントラブルサポート日記]]
* [[http://necotek.blog.fc2.com/blog-entry-68.html|OS(windows)が起動しない状態からレジストリを編集する方法 - ねこてっく パソコントラブルサポート日記]]
* [[http://support.microsoft.com/kb/922976/ja|ブート ドライブの SATA モードを変更した後にエラー メッセージが表示される]]
* [[http://support2.microsoft.com/kb/324103/ja|Windows XP における "STOP 0x0000007B" エラーのトラブルシューティング方法]]