KVMのインストール(debian)

virt-installは使わない方法。

・前提条件
intel VT もしくは AMD-V をサポートしているCPUが必要。
以下確認コマンド。

# grep vmx /proc/cpuinfo
もしくは
# grep svm /proc/cpuinfo

BIOSの設定変更
CPUの仮想化支援機構を有効にする。
項目としては「Secure Virtual Machine Mode」など。

・必要パッケージのインストール

# apt-get install kvm

KVMモジュールのロード

# modprobe kvm_amd

・ゲストOS用のディスクイメージの作成

# kvm-img creat -f qcow2 vm00.img 4GB
qcow2はKVMで推奨されているファイルフォーマットの名前。

※ゲストOSのディスクとしてホストOSのディスクパーティションを指定することも可能。
 その場合は物理マシンからOSを起動可能(ブートローダは必要)
 LVMでパーティションを作ってLVを割り当てるのが一般的らしい。

・インストールISOの用意
適当にダウンロード

・ゲストOSのインストール

# kvm -hda vm00.img -cdrom "ISOの場所" -boot d -m 256 -monitor telnet::4444,server,nowait -vnc :0 -daemonize

以下、オプションの意味
-hda vm00.img
 アタッチするディスクの指定
-cdrom
 アタッチするCD-ROMイメージの指定
-boot d
 CD-ROMからブートする
-m 256
 メモリの割当(MB)
-monitor telnet::4444,server,nowait
 ホストOSのport4444にtelnetすることによりqemuモニタに接続する
 nowaitオプションを指定しないと、モニタに接続するまでqemuがホールドする
-vnc :0
 VNCの接続番号を指定する
 "ホストOSのID":0 にVNCで接続すればゲストOSに接続できる
-daemonize
 プロセスをデーモン化する(バックグラウンドで動かす)

次のオプションをつけるとSSH越しでもコンソール画面を表示出来るらしい

# kvm [省略] -curses -virtioconsole stdio

VNCでゲストOSに接続して適当にインストール
インストール後にゲストOSを終了できないときはqemuモニタから強制終了させる。

# telnet localhost 4444
(qemu) q

・ゲストOSの起動

# kvm -hda vm00.img -m 256 -monitor telnet::4444,server,nowait -vnc :0 -daemonize

※-vnc :0 -> 5900、-vnc :1 -> 5901 というポートマッピング

・ゲストOSの終了
FreeBSDの場合は shutdown -p で落とす。
(shutdown -h では落ちきらず、qemuモニタから落とす必要があるため)