lost and found ( for me ? )

KVM: virsh コンソール接続 ( guest OS Ubuntu )

virsh console でVMにコンソール接続する設定方法 ( guest OS Ubuntu編 )

ネットワークリーチャビリティがなかったり、sshがはいってなかったり、起動時のメッセージをみたい時などに有効。
この設定するようにしてから、 ssh で接続するのめんどくさくなった。

[ 手順 ]

1. VMにシリアルコンソールデバイスがあるかチェック ( ない場合は作成 )
2. /etc/init/ttyS0.conf を編集
3. /boot/grub/menu.lst を編集 ( not grub2 )
4. 動作確認

[ 例 ]

1. VMにシリアルコンソール接続があるかチェック

/etc/libvirt/qemu/VM名.xml に下記があるかチェック

   <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target port='0'/>
    </console>

シリアルコンソールがない場合はシリアルコンソールを追加する。
vmbuilder で 適当にVM ( ubuntu ) を作成したらコンソールがなかった。。

root@hat1:~# virsh

virsh # list --all
Id 名前 状態
----------------------------------
- centos5-1 シャットオフ
- centos5-1-clone シャットオフ
- centos5-1-clone2 シャットオフ
- ubuntu シャットオフ
- WANem-VM シャットオフ

virsh # edit ubuntu

下記を追加。

   <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target port='0'/>
    </console>

2. /etc/init/ttyS0.conf を編集

参考URL
https://help.ubuntu.com/community/SerialConsoleHowto

VMを起動

virsh # start ubuntu
ドメイン ubuntu が起動されました

VMの情報

DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
root@ubuntu:~# cat /etc/lsb-release | tail -1
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
root@ubuntu:~# uname -r
2.6.32-25-generic-pae

/etc/init/ttyS0.conf ファイルを作成

root@ubuntu:~# cat /etc/init/ttyS0.conf
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -L 115200 ttyS0 vt102

start ttyS0 実行しないとダメみたい。これ実行しなかったら、出力だけされて、入力できなかった。

root@ubuntu:~# start ttyS0
ttyS0 start/running, process 703

3. /boot/grub/menu.lst を編集 ( not grub2 ! )

seraial , terminal 行を追加
あと、kernel 行の最後に console=ttyS0,115200n8

serial -speed=115200 -unit=0 -word=8 -parity=no -stop=1
terminal -timeout=10 serial

title Ubuntu 10.04.1 LTS, kernel 2.6.32-25-generic-pae
uuid 65f17be2-08c8-470f-84bd-1fad69913455
kernel /boot/vmlinuz-2.6.32-25-generic-pae root=UUID=65f17be2-08c8-470f-84bd-1fad69913455 ro quiet splash console=ttyS0,115200n8
initrd /boot/initrd.img-2.6.32-25-generic-pae

rootで ttyS0 にアクセスできるようにする ( ubntu だとデフォルトで書いてある ) . CentOS は記述する必要があった。

root@ubuntu:~# egrep -i ^ttys0 /etc/securetty
ttyS0

4. 動作確認

VMを再起動し、console 接続できるかチェック。

virsh # list --all
Id 名前 状態
----------------------------------
7 ubuntu 実行中
- centos5-1 シャットオフ
- centos5-1-clone シャットオフ
- WANem-VM シャットオフ

コンソール接続。OK

virsh # console 7
Connected to domain ubuntu
エスケープ文字は ^] です

Ubuntu 10.04.1 LTS ubuntu ttyS0

ubuntu login: root
Password:
Last login: Wed Oct 6 08:03:59 UTC 2010 on ttyS0
Linux ubuntu 2.6.32-25-generic-pae #44-Ubuntu SMP Fri Sep 17 21:57:48 UTC 2010 i686 GNU/Linux
Ubuntu 10.04.1 LTS

Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
root@ubuntu:~#
virsh #

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.