前回は、VMware Workstationの仮想ディスク(.vmdk)を、qemu-img convertによって、qcow2形式に変換し、仮想マシンそのものは別途新規作成、という手順を踏んだ。
これらの作業を一括で行ってくれる、virt-convert というコマンドも存在する。
ヘルプ(virt-convert --help)を見れば使い方は分かるだろう。詳細はmanページにも記載がある。
ただ、内部的には qemu-img convert を使っているので、前回の手順と大きな違いは無い。
好きな方を使えばいいだろう。
1つだけ試しに変換してみたが、手間に大きな違いはなかった。
主にUbuntuで実験した内容を書くかもしれない。 もしかしたら、つまらない時事ネタかも。 いつか、紙媒体の書籍にしたいので、このブログの内容の転載はお控え願います。引用は可。 まずは、「目指せ!電子書籍化!」です。
2017年1月19日木曜日
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ゲスト化していく。
とはいえ、仮想マシンごと移行するのではなく、仮想ディスク(.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仮想マシンにリストアする、という形をとる。
やり方はそんなに難しくないので、簡単に流れだけ書いておく。
次は、VMware workstationのゲストで動かしていた環境だな。
今回のコンバート対象は、もともと物理環境で動いていたWindows7 Entだ。
こちら、搭載されていたSSDは既にツブしてあって、そもそもコンバート元が存在しない。
実は、環境をツブす前に、Windows Backupでバックアップを作成していて、そのバックアップデータからKVM仮想マシンにリストアする、という形をとる。
やり方はそんなに難しくないので、簡単に流れだけ書いておく。
- virt-managerから仮想ディスクを作成。
ここでは、元々使っていたディスクサイズと同程度か、それ以上のサイズにしよう。 - virt-managerから仮想マシンを作成。
1で作成した仮想ディスクを使用する。また接続I/F(IDEとかSATAとか)は、元々使っていた構成と同じにしよう。 - virt-managerのcd-romデバイスに、Windowsのインストールメディアか、バックアップ時に作成しておいたシステム修復ディスクを指定。
- 仮想マシンを起動。(CD-ROMブートさせる)
- 後はメニューに従ってシステムリストアさせる。
- 構成に併せてOSをカスタマイズする。
- 再アクティベートする。
- 不要なアプリケーションの削除
まずは以前導入済みで、仮想環境として不要となるアプリケーションの削除をしよう。
以前、物理マシン上で動かしていた頃、Intel Rapid Strage TechnologyやSSD用のツールキットを使っていたが、これらは不要となるだけでなく、なぜかCPU使用率が上がってしまうので削除する。
また、KVM仮想マシン上のWindowsでは、VMware Workstationも動かせないようなので、こちらも削除してしまう。
自分の場合、VMware Workstationの仮想マシン領域にiSCSI領域を使用していたため、こちらも不要だ。仮想マシンの必要なファイルを取得したら、iSCSIも停止してしまおう。 - 不要なデバイスの削除
管理者権限でコマンドプロンプトを起動し、以下のコマンドを実行しよう。
set devmgr_show_nonpresent_devices=1
Start DEVMGMT.MSC
デバイスマネージャーが起動してくると思うので、メニューバー「表示」から「非表示のデバイスの表示」を選択しよう。
メインウィンドウのツリーに、薄いアイコンがたくさん出てくると思う。これは、過去に接続したことのあるデバイスで、今は接続されていないもの、だ。
これらは、再度接続すれば認識されるが、もう二度と接続しないものもあるだろう。レジストリ領域を無駄に消費してしまうので、これらを削除してしまおう。
この中で正常に動作していないデバイスとして「PCIシンプル通信コントローラー」と「PCIデバイス」が見つかるかもしれないが、その二つは今は放置しておいて構わない。
この手順は、次の「VirtI/Oドライバの追加とデバイス切り替え」の後にも実施しておこう。 - VirtI/Oドライバの追加とデバイス切り替え
こちらは、HDD用とそれ以外で手順が異なる。
個別に対応する。- ドライバディスクの入手
ドライバディスクは、Fedoraプロジェクトのサイトからダウンロードできる。
ホストOS上でダウンロードしておこう。 - NetworkデバイスのVirtI/Oへの切り替えとドライバインストール
- ゲストOSを停止
- Networkデバイスを、VirtI/Oへ変更
- ゲストOSを起動
先ほどダウンロードしたドライバディスクを、ゲストOSのCD-ROMデバイスへマウント - デバイスマネージャーで、ネットワークデバイスが「不明なデバイス」になっていると思うので、右クリックから「ドライバの更新」を行い、ドライバの場所としてCD-ROMを選ぶ
- ドライバがインストールされる
同じように「PCIシンプル通信コントローラー」と「PCIデバイス」もドライバインストールする
ドライバディスクの中にQXLドライバもあるが、これをインストールしたら再起動でハングするようになった。spice-projectの方でドライバを配布しているため、そちらを使用しよう。
「標準VGAグラフィックアダプター」のドライバ更新だ。
そこまで出来たら、一度再起動して動作を確認してみよう。 - 仮のHDD追加とドライバインストール、OSディスクのデバイス切り替え
こちらはちょっと面倒だ。以下の流れで実施する。- ゲストOS停止
- 新しい仮想ディスクをゲストに追加
(このとき、インターフェースをVirtIOにすること) - ゲストOS起動
- ゲストOSのデバイスマネージャにドライバが無いSCSIコントローラーが表示されるので、他のドライバと同じように更新
- ゲストOS停止
- 先ほど追加した仮想ディスクを削除
- もともと使っていた仮想ディスク(仮想マシンのOSが入っているディスク)のインターフェースをVirtIOに変更する
- ゲストOS起動
- ドライバディスクの入手
- Guest-Agentの導入
仮想ドライバのメディアの中に、guest-agentというフォルダがある。
ゲストにコイツも入れておこう。ホストからの制御が出来るようになるっぽい。
(vmware-toolsとかその類)
Windows Installer形式なので、デバイスドライバの導入ほど手間はかからないはずだ。 - そのほか
後は、IPアドレスの固定化など、自分の環境に合わせて実施すればいい。
次は、VMware workstationのゲストで動かしていた環境だな。
2017年1月12日木曜日
WindowsをKVMゲストにコンバート(コンバート対象)
ある程度KVM環境は整った。
今度は、今まで使っていたWindowsをKVMゲストに持ってくる、という作業だ。
今まで使っていたWindows環境というのが意外と多く、整理してみると以下の通りになる。
Win7 Enterpriseで作成されている環境は、VMware Workstationホストとしての機能と、Blu-rayディスクの視聴にのみ使っていた。
どちらの機能も不要になるため、移行対象かどうか、という点に関しては△にしている。
(一旦移行しておいて、後で削除、となると思う。)
また、後ろの2つに関しては、環境を作り直すのはそんなに難しくないため、移行対象から外している。
Win7 Homeで作成されている環境もあるが、KVM環境にコンバートするに当たってリモートデスクトップが使いたくなるかもしれない。その時は、Win7 Home→Win7 Proへのエディション更新をすることになるが、それはまだ考えないことにする。
というわけで、次回は物理マシンのWin7 Entのコンバートだ。
今度は、今まで使っていたWindowsをKVMゲストに持ってくる、という作業だ。
今まで使っていたWindows環境というのが意外と多く、整理してみると以下の通りになる。
| OS | ハコ | 目的 | 移行対象 |
|---|---|---|---|
| Win7 Ent | 物理マシン | Blu-rayディスク視聴、VMware Workstationホスト | △ |
| Win7 Home | VMware Workstation | Web、カメラデータ取り込み、音楽再生等 | ○ |
| Win7 Pro | VMware Workstation | 仕事が出来る環境(ほぼ未使用) | ○ |
| Win7 Home | VMware Workstation | Win7用ゲーム | ○ |
| WinXP Pro | VMware Workstation | Win7非対応ゲーム | ○ |
| Win7 Home | VMware Workstation | Blu-ray作成用環境 | × |
| Win7 Home | VMware 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が強制リブートされる…。
ネットで調べても見つからない…。
(逆パターンはいくらでも実績あるんだけどね…)
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にして何日も放置し、更新プログラムの自動適用を繰り返させれば、ある程度収まるかと思っていたんだが、これが収まらない。
挙句、更新プログラムの適用にも失敗しまくるとうい事象が発生し、どうにもならない状態だった。
なんとなく対策が打てたと思うので、ざっと記載。
具体的には、
ただし、適用する直前に、wuauserv(Windows Update)というサービスを停止しておく。
停止しておかないと、パッチが適用できないようだ。
サービスを停止してすぐパッチを適用すれば、サクッとパッチ適用でき、OS再起動すればすぐに反映される様子。
今のところ、CPU使用率もほぼゼロ、メモリも40MB程の消費で済んでいるし、更新プログラムの自動適用も進んでいるようだ。
もう一台のWin7マシン(ノート型)でも試してみよう。
自宅には、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
ただし、適用する直前に、wuauserv(Windows Update)というサービスを停止しておく。
停止しておかないと、パッチが適用できないようだ。
サービスを停止してすぐパッチを適用すれば、サクッとパッチ適用でき、OS再起動すればすぐに反映される様子。
今のところ、CPU使用率もほぼゼロ、メモリも40MB程の消費で済んでいるし、更新プログラムの自動適用も進んでいるようだ。
もう一台のWin7マシン(ノート型)でも試してみよう。
登録:
投稿 (Atom)