HYLOGICS

今後は各分室にコンテンツを移して、ここは雑記や暮らしを中心としたライフログ的な何かにしていく予定です。

【CentOS6】シリアルコンソール経由でKVMに接続する

前置き

普段は踏み台経由でssh接続しているのでシリアルコンソールは必要ないのだけど、リモートで仮想マシン編集してるとネットワークが使えない状況で仮想マシンにログインしたいことがたまにあります。前々からやろうと思って放置してましたが、設定してみました。

設定内容

CentOS6では/etc/grub.confを編集するだけでOK。 具体的には以下の通り。

# cat /etc/grub.conf | grep -v ^#
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
title CentOS (2.6.32-504.8.1.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-504.8.1.el6.x86_64 ro root=UUID=a1fdc0dc-caed-4493-b9e5-e420a97d415c rd_NO_LUKS rd_NO_MD crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_LVM rd_NO_DM console=ttyS0,115200
    initrd /initramfs-2.6.32-504.8.1.el6.x86_64.img
title CentOS (2.6.32-431.20.3.el6.x86_64)
# diff /etc/grub.conf*
14,15d13
< serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
< terminal --timeout=5 serial console
18c16
<    kernel /vmlinuz-2.6.32-504.8.1.el6.x86_64 ro root=UUID=a1fdc0dc-caed-4493-b9e5-e420a97d415c rd_NO_LUKS rd_NO_MD crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_LVM rd_NO_DM console=ttyS0,115200
---
>    kernel /vmlinuz-2.6.32-504.8.1.el6.x86_64 ro root=UUID=a1fdc0dc-caed-4493-b9e5-e420a97d415c rd_NO_LUKS rd_NO_MD quiet rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_LVM rd_NO_DM

(serialterminalの行を追加し、kernelオプションにconsole=ttyS0,115200を追加してます)

反映

/etc/grub.confを変更したら再起動で反映。

動作確認

シリアルコンソールが有効になっているかどうかは以下の通り確認出来ます。

# initctl list | grep serial
serial (ttyS0) start/running, process 1064

(stop/waitingならNG、start/runningならOK)

シリアルコンソールを利用する

設定が完了するとvirsh console <domain>で接続できるように。

# virsh console serial
ドメイン serial に接続しました
エスケープ文字は ^] です

CentOS release 6.6 (Final)
Kernel 2.6.32-504.8.1.el6.x86_64 on an x86_64

serial.hylogics.com login: 

以上です。

参考サイト

仮想マシンにシリアルコンソールで接続できるようにする | ユニキャストラボ

OSSはアルミニウムの翼で飛ぶ: RHEL6/CentOS6/SL6 on KVM時のシリアルコンソール設定