virsh consoleの設定をすれば、virsh console <ホスト名>でコンソールをつかむことができます。 sshを入れ忘れた場合などに有効です。 例によってそのままやってみただけですが、メモとして残します。
環境
ホストOSはDebian 7.3で、ゲストOSはUbuntu 13.10のサーバー版とします。
また、Ubuntu 13.10のホスト名をhost01
とします。
ホストOS:Debian 7.3(wheezy)
ゲストOS:Ubuntu 13.10 server
ゲストOSのホスト名:host01
参考サイト
KVMゲストOSへのコンソール接続設定 - jitsu102の日記
lost and found ( for me ? ): KVM: virsh コンソール接続 ( guest OS Ubuntu )
virsh consoleの設定
今回の作業は全てroot権限で行っています。
ホスト側の設定
VMにシリアルコンソール接続があるか確認
# less /etc/libvirt/qemu/host01.xml <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console>
上記のような記述があればOKです。
もしなければ、host01
がシャットダウンされているのを確認してから、
# virsh edit host01
で上記の設定を追加してください。 私の環境ではデフォルトで入っていました。
VMの起動
上記設定の確認が終わったら、host01
を起動します。
# virsh start host01
ゲスト側の設定
/etc/init/ttyS0.conf の作成
/etc/init/ttyS0.conf を新規作成します。 以下のように設定を書いてください。
# vim /etc/init/ttyS0.conf start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -L 115200 ttyS0 vt102
ttyS0のスタート
# start ttyS0 ttyS0 start/running, process 1839
/etc/default/grubの編集
/etc/default/grubに以下の設定を追記してください。
# vim /etc/default/grub +GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8" +GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
動作確認
ここまでで設定は終わりなので、virsh consoleを試してみましょう。
# virsh console host01 Connected to domain host01 Escape character is ^] Ubuntu 13.10 host01 ttyS0 host01 login:
こんな感じで出ていれば成功です。 ユーザ名とパスワードを入れてログインできます。 "Ctrl"+"]"で、ログアウトできます。