家鯖を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のデータストアからファイルを取り出さない事には始まらない。色々やり方はあると思うが、今回はクライアント側から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

VMの詳細は割愛。

ストレージは既存の仮想ディスクを使う。上で転送したファイルで言えばWindows.vmdkを選択する。

接続するバスは、とりあえずESXiで使っていた物と同じのにして、Windowsが起動するか試してみる。正常に起動すれば後は何もする必要はないが、十中八九「Windowsを起動しています」の画面で“STOP 0x0000007B”ブルースクリーンが出て死ぬ。その時は、接続バスを好きなものに変えて(もちろん変えなくてもいい)、次の対策を行う。

“STOP 0x0000007B”ブルースクリーンが出てWindowsを起動出来ない時は、レジストリを修正する必要がある。

  1. VM起動時にF8連打でWindowsの「詳細ブートオプション」を表示し、「コンピュータの修復」を選ぶ。コンピュータの修復が表示されていなければ、修復用のシステムがインストールされていないって事なので、WindowsのインストールCDから同等の事をする(詳細はググってくだしあ)。
  2. システム回復オプションのログイン画面が出るので、正常に動いてた時のアカウントでログイン。
  3. コマンドプロンプトを起動。
  4. コマンドプロンプトで「regedit」と打ち、レジストリエディタを起動。
  5. レジストリエディタの「HKEY_LOCAL_MACHINE」または「HKEY_USERS」を選択した状態[ファイル]>[ハイブの読み込み]を選択。
  6. d:\Windows\System32\config\SYSTEM を開く。
  7. マウントポイント名を聞かれるので、適当にattachedなどと入れる。
  8. attachedにSYSTEMレジストリが読み込まれるので、CurrentControlSet\servicesControlSetNNN\servicesの中にある下記リスト内の「Start」の値を0にする。ノードが存在しなければ飛ばしてOK。
    • aliide
    • amdide
    • atapi
    • ataport
    • cmdide
    • intelide
    • LSI_SAS
    • LSI_SAS2
    • LSI_SCSI
    • megasas
    • MegaSR
    • msahci
    • pciide
    • pciidex
    • viaide
  9. レジストリエディタ、コマンドプロンプトを終了し、再起動。

以上でマイグレーションしたWindowsが正しく起動するハズ。




  • blog/2014/2014-10-13.txt
  • 最終更新: 2015-01-06 11:51
  • (外部編集)