ラベル Windows7 の投稿を表示しています。 すべての投稿を表示
ラベル Windows7 の投稿を表示しています。 すべての投稿を表示

2017年1月19日木曜日

WindowsをKVMゲストにコンバート(virt-convert)

前回は、VMware Workstationの仮想ディスク(.vmdk)を、qemu-img convertによって、qcow2形式に変換し、仮想マシンそのものは別途新規作成、という手順を踏んだ。

これらの作業を一括で行ってくれる、virt-convert というコマンドも存在する。
ヘルプ(virt-convert --help)を見れば使い方は分かるだろう。詳細はmanページにも記載がある。

ただ、内部的には qemu-img convert を使っているので、前回の手順と大きな違いは無い。
好きな方を使えばいいだろう。

1つだけ試しに変換してみたが、手間に大きな違いはなかった。

2017年1月16日月曜日

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

今度は、過去にVMware Workstationの仮想マシンとして稼動していた環境を、KVMゲストに移行する。
とはいえ、仮想マシンごと移行するのではなく、仮想ディスク(.vmdk)をQEMU用(.qcow2)にコンバートして、その仮想ディスクを使う新しい仮想マシンを作成する、という形だ。

適当に仮想ディスクを取り出して、そのファイルがあるディレクトリで以下のコマンドを実行だ。
(sagittarius) $ sudo qemu-img convert \
-c \
-p \
-O qcow2 \
Windows\ 7_x64_Home-cl2.vmdk \
/var/lib/libvirt/images/pegasus.qcow2
ここでは、元の仮想ディスクのファイル名がWindows 7_x64_Home-cl2.vmdk、コンバート後の仮想ディスクファイル名をpegasus.qcow2、コンバート後の形式をqcow2で指定している。
他にもオプションがあるが、とりあえずこれだけ抑えておけばいいだろう。

変換には時間がかかるが、-pオプションで経過が表示されるので、気長に待とう。
(仮想ディスクサイズ128GB、実質使用サイズ36GBで、大体1時間ぐらい?)

変換が終わったら、念のために書式を確認しておく。
(sagittarius) $ sudo qemu-img info /var/lib/libvirt/images/pegasus.qcow2

確認が出来たら、今まで通りに仮想マシンを作ってみよう。
仮想ディスクのI/Fは、VMwareで使っていた時と同じにしておいた方が無難だ。

無事に起動できたら、WindowsをKVMゲストにコンバート(ホストWin)の後半と同様に、OSカスタマイズしておこう。

また、このWindowsは、Home Editionだ。したがって、リモートデスクトップ接続することが出来ない。
今までのVMware Workstation上のゲストOSの場合は、これでも問題は無かった。
ホストOS側にリモートデスクトップ接続し、このゲストをフルスクリーンで起動すれば良かったからだ。
今回、KVM環境に移行したため、グラフィック関連が弱くなってしまい、操作性が悪い。ゲストOSが正常起動するのであれば、ソレに対してリモートデスクトップ接続して操作したい。
そのため、Windows7のHome EditionからProfessional Edition以上にアップグレードさせようと思う。
通常であれば、Any time Upgradeを使うことになると思う。
必要に応じて実施しよう。

エディション変更が出来たら、ユーザパスワードを設定したり、IPアドレスを固定化して、リモートデスクトップ接続が出来るか確認だ。

また、この仮想マシンには、USBデバイス(デジタルカメラ)を接続したい。
そのため、PCI-Eに挿入したUSB拡張カードをゲストにアサインしておく。
(PCIパススルーだ。GPU以外はすんなりパススルー出来る。)

ざっとココまで。後は色々動かしてみて、期待した処理が出来るか確認すればいい。

残りも必要に応じて、KVMゲスト化していく。

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のゲストで動かしていた環境だな。

2017年1月12日木曜日

WindowsをKVMゲストにコンバート(コンバート対象)

ある程度KVM環境は整った。
今度は、今まで使っていたWindowsをKVMゲストに持ってくる、という作業だ。
今まで使っていたWindows環境というのが意外と多く、整理してみると以下の通りになる。
OSハコ目的移行対象
Win7 Ent物理マシンBlu-rayディスク視聴、VMware Workstationホスト
Win7 HomeVMware WorkstationWeb、カメラデータ取り込み、音楽再生等
Win7 ProVMware Workstation仕事が出来る環境(ほぼ未使用)
Win7 HomeVMware WorkstationWin7用ゲーム
WinXP ProVMware WorkstationWin7非対応ゲーム
Win7 HomeVMware WorkstationBlu-ray作成用環境×
Win7 HomeVMware Workstationビデオ編集用環境×

Win7 Enterpriseで作成されている環境は、VMware Workstationホストとしての機能と、Blu-rayディスクの視聴にのみ使っていた。
どちらの機能も不要になるため、移行対象かどうか、という点に関しては△にしている。
(一旦移行しておいて、後で削除、となると思う。)

また、後ろの2つに関しては、環境を作り直すのはそんなに難しくないため、移行対象から外している。

Win7 Homeで作成されている環境もあるが、KVM環境にコンバートするに当たってリモートデスクトップが使いたくなるかもしれない。その時は、Win7 Home→Win7 Proへのエディション更新をすることになるが、それはまだ考えないことにする。

というわけで、次回は物理マシンのWin7 Entのコンバートだ。

2016年12月27日火曜日

閑話休題(VMware Workstation on KVM)

う~ん…。
Linux KVMの上にWindows7を載せて、そのWindows7にVMware Workstation(11)を導入、そのVMware WorkstationでゲストOSを動かすことって出来ないのかなぁ…?
何度かやってるけど、起動しようとするとWindows7ごとハングして、暫くしたらWindows7が強制リブートされる…。
ネットで調べても見つからない…。
(逆パターンはいくらでも実績あるんだけどね…)

2016年11月4日金曜日

Win7(64bit)のWindows Update

ちょっと今回はKVMやLinuxとは関係ない話題。

自宅には、Windowsマシンが数台いて、そのうち1台は、ミドルタワー型。
そいつがWindowsメインマシンで、それとは別に作業用のWindowsノートPCが1台いる。
(他にも、WinXPノートが2台ほど稼動可能な状態でいるけど、使ってない。)

で、使っているタワー型&ノート型はいずれもWin7の64bitモデル。

最近、コイツらのWindows Updateが上手く動いてくれないんだ。

具体的には、何もしていない状態ではsvchost.exeがCPU1個分(4コアモデルなら25%、2コアモデルなら50%)を使い切ってしまい、さらにメモリもアホみたいに消費する。
(4コア8GBMemモデルで、1.5GB程メモリを消費する。)

更新プログラムの自動インストールをOnにして何日も放置し、更新プログラムの自動適用を繰り返させれば、ある程度収まるかと思っていたんだが、これが収まらない。

挙句、更新プログラムの適用にも失敗しまくるとうい事象が発生し、どうにもならない状態だった。

なんとなく対策が打てたと思うので、ざっと記載。

具体的には、
  • KB3050265
  • KB3102810
の2つのパッチを、Microsoft Update Catalogからダウンロードして、個別に適用すればよいようだ。

ただし、適用する直前に、wuauserv(Windows Update)というサービスを停止しておく。
停止しておかないと、パッチが適用できないようだ。
サービスを停止してすぐパッチを適用すれば、サクッとパッチ適用でき、OS再起動すればすぐに反映される様子。

今のところ、CPU使用率もほぼゼロ、メモリも40MB程の消費で済んでいるし、更新プログラムの自動適用も進んでいるようだ。

もう一台のWin7マシン(ノート型)でも試してみよう。