virt-installで仮想マシンの作成を行ったものの挫折して、その3でvmbuilderを使ってようやく仮想マシンの作成を行えたにも関わらずいろいろトラブルに見舞われて、その4でその主原因がわかったと同時に動機の半分も消滅してしまい、その5まできてようやくvirt-installの使い方がわかってきたKVMの話の続き。今回はその4でもやった、kvmコマンドを使った仮想マシンの起動方法です。virshや仮想マシンマネージャーを使うなら、kvmコマンドを使う必要はないと思うのですが(libvirtだとオプションをすべて設定ファイルで指定できるから。kvmコマンドにもそういうのある?)、せっかくなので。なお、kvm-imgコマンドを使った仮想ディスクファイルの作成方法はその5を参照してください。というわけで、仮想マシンを起動してみます。
kvm -m 512 -boot c -k ja \詳しいコマンドの解説については、ドキュメントを見てもらうことにして、ここでは使いそうなものだけ簡単に。
-hda ~/VirtualMachine/intrepid-amd64/disk0.qcow2
- -m:メモリサイズをメガバイト単位で指定します。
- -boot:起動デバイスを指定します。ハードディスクから起動する場合は"c"、CDドライブから起動する場合は"d"になります。
- -k:ホストOS(というかVNCサーバ?)のキーボードの言語を指定します。ホストOSで日本語キーボードを使っている場合、ゲストOSインストール時に日本語キーボードを指定しても、カーソルキーとかアンダースコアとかが入力できないようです。"ja"を指定するとこれらのキーを入力できます。
また、SDLで起動した場合、"|"(と半角/全角)を入力できません。Shift押しながらBackSpaceの左を押した場合、keycodeが97(右Shiftの左にあるキーと同じ?)になるっぽい。VNCオプションをつけて起動しリモートデスクトップビューワ(Vinagre)を使った場合は、keycodeが132となってうまく入力できます。どこから原因を探ればいいんでしょ…… - -hda:hdaとして使う仮想ディスクファイルを指定します。
- -cdrom:仮想マシン上で使うCDドライブのデバイス名やISOイメージファイルを指定します。
- -vnc:kvmコマンドは仮想マシンを表示するのにマルチメディアライブラリであるSDLを使うそうです。で、"-vnc 127.0.0.1:0"みたいにvncオプションを使うと、SDLの代わりにVNCを使ってくれます(リモートデスクトップビューワで閲覧できます)。どっちが良いかはわからないんですけど、SDLだと再描画に失敗することがたまにある感じ?
- -daemonize:起動した仮想マシンを妖精さん化して働いてもらいます。端末から複数の妖精さんを召喚したい時に便利。
-cdromオプションにブート可能なインストールCDのイメージファイルを指定して、-bootオプションで起動デバイスに指定することで
virt-installのときのようにインストーラを実行することもできます。ただし、その場合ハードウェア構成ファイルが/etc/libvirt/qemu/ディレクトリに作成されませんので、作った仮想マシンをvirshや仮想マシンマネージャー(virt-manager)から起動したい場合は、別途構成ファイルを作成する必要があります。またkvmから直接起動中の仮想マシンも、(なんらかの設定を行わないと?)virshや仮想マシンマネージャーにリストアップされません。-vncオプションを使ってVNCサーバで表示させる場合、[アプリケーション] - [インターネット] - [リモートデスクトップビューワ]などを使って閲覧することになります。あと、このままでもゲストOSからインターネットに接続できるみたいですが、ホストOSからゲストOSに接続するためには別途ネットワーク設定を行う必要があります。
kvmコマンドを使って起動した場合、ウィンドウ上でCtrl+Alt+2を押すことでQEMUモニタに移動できます。このモニタを使えば、起動中の仮想マシンの状態表示や仮想マシン上の入力デバイスの操作、VMスナップショットの取得(サスペンド機能みたいなもの?)といった、さまざまなコマンドを実行できるそうです。


