2017年1月16日月曜日

WindowsをKVMゲストにコンバート(ホストWin)

というわけで、コンバート作業を行う。
今回のコンバート対象は、もともと物理環境で動いていたWindows7 Entだ。
こちら、搭載されていたSSDは既にツブしてあって、そもそもコンバート元が存在しない。

実は、環境をツブす前に、Windows Backupでバックアップを作成していて、そのバックアップデータからKVM仮想マシンにリストアする、という形をとる。

やり方はそんなに難しくないので、簡単に流れだけ書いておく。
  1. virt-managerから仮想ディスクを作成。
    ここでは、元々使っていたディスクサイズと同程度か、それ以上のサイズにしよう。
  2. virt-managerから仮想マシンを作成。
    1で作成した仮想ディスクを使用する。また接続I/F(IDEとかSATAとか)は、元々使っていた構成と同じにしよう。
  3. virt-managerのcd-romデバイスに、Windowsのインストールメディアか、バックアップ時に作成しておいたシステム修復ディスクを指定。
  4. 仮想マシンを起動。(CD-ROMブートさせる)
  5. 後はメニューに従ってシステムリストアさせる。
  6. 構成に併せてOSをカスタマイズする。
  7. 再アクティベートする。
「構成に併せてOSをカスタマイズする」の部分だけちょっと特殊で、他のWindowsコンバートでも使用するため、詳細を記載しておく。
  1. 不要なアプリケーションの削除
    まずは以前導入済みで、仮想環境として不要となるアプリケーションの削除をしよう。

    以前、物理マシン上で動かしていた頃、Intel Rapid Strage TechnologyやSSD用のツールキットを使っていたが、これらは不要となるだけでなく、なぜかCPU使用率が上がってしまうので削除する。

    また、KVM仮想マシン上のWindowsでは、VMware Workstationも動かせないようなので、こちらも削除してしまう。

    自分の場合、VMware Workstationの仮想マシン領域にiSCSI領域を使用していたため、こちらも不要だ。仮想マシンの必要なファイルを取得したら、iSCSIも停止してしまおう。
  2. 不要なデバイスの削除
    管理者権限でコマンドプロンプトを起動し、以下のコマンドを実行しよう。
    set devmgr_show_nonpresent_devices=1
    Start DEVMGMT.MSC

    デバイスマネージャーが起動してくると思うので、メニューバー「表示」から「非表示のデバイスの表示」を選択しよう。
    メインウィンドウのツリーに、薄いアイコンがたくさん出てくると思う。これは、過去に接続したことのあるデバイスで、今は接続されていないもの、だ。

    これらは、再度接続すれば認識されるが、もう二度と接続しないものもあるだろう。レジストリ領域を無駄に消費してしまうので、これらを削除してしまおう。

    この中で正常に動作していないデバイスとして「PCIシンプル通信コントローラー」と「PCIデバイス」が見つかるかもしれないが、その二つは今は放置しておいて構わない。

    この手順は、次の「VirtI/Oドライバの追加とデバイス切り替え」の後にも実施しておこう。
  3. VirtI/Oドライバの追加とデバイス切り替え
    こちらは、HDD用とそれ以外で手順が異なる。
    個別に対応する。

    1. ドライバディスクの入手
      ドライバディスクは、Fedoraプロジェクトのサイトからダウンロードできる。
      ホストOS上でダウンロードしておこう。
    2. NetworkデバイスのVirtI/Oへの切り替えとドライバインストール
      • ゲストOSを停止
      • Networkデバイスを、VirtI/Oへ変更
      • ゲストOSを起動
        先ほどダウンロードしたドライバディスクを、ゲストOSのCD-ROMデバイスへマウント
      • デバイスマネージャーで、ネットワークデバイスが「不明なデバイス」になっていると思うので、右クリックから「ドライバの更新」を行い、ドライバの場所としてCD-ROMを選ぶ
      • ドライバがインストールされる

      同じように「PCIシンプル通信コントローラー」と「PCIデバイス」もドライバインストールする

      ドライバディスクの中にQXLドライバもあるが、これをインストールしたら再起動でハングするようになった。spice-projectの方でドライバを配布しているため、そちらを使用しよう。
      「標準VGAグラフィックアダプター」のドライバ更新だ。

      そこまで出来たら、一度再起動して動作を確認してみよう。
    3. 仮のHDD追加とドライバインストール、OSディスクのデバイス切り替え
      こちらはちょっと面倒だ。以下の流れで実施する。
      • ゲストOS停止
      • 新しい仮想ディスクをゲストに追加
        (このとき、インターフェースをVirtIOにすること)
      • ゲストOS起動
      • ゲストOSのデバイスマネージャにドライバが無いSCSIコントローラーが表示されるので、他のドライバと同じように更新
      • ゲストOS停止
      • 先ほど追加した仮想ディスクを削除
      • もともと使っていた仮想ディスク(仮想マシンのOSが入っているディスク)のインターフェースをVirtIOに変更する
      • ゲストOS起動
  4. Guest-Agentの導入
    仮想ドライバのメディアの中に、guest-agentというフォルダがある。
    ゲストにコイツも入れておこう。ホストからの制御が出来るようになるっぽい。
    (vmware-toolsとかその類)
    Windows Installer形式なので、デバイスドライバの導入ほど手間はかからないはずだ。
  5. そのほか
    後は、IPアドレスの固定化など、自分の環境に合わせて実施すればいい。
時間はかかったけど、これでWindows環境が一つ動かせた。

次は、VMware workstationのゲストで動かしていた環境だな。

0 件のコメント:

コメントを投稿