====== 家鯖を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" エラーのトラブルシューティング方法]]