Tips記事
» 2003年01月09日 05時05分 UPDATE

シリアルコンソールを使いたい

[木田佳克,ITmedia]

 ラックマウントサーバでは当たり前となっているメンテナンスポート。シリアルポートを利用してログインを可能とする仕組みだ。ここでは同等の機能を実現すべく、ログインを可能とするまでの手順を紹介しよう。

 なお、この機能はカーネルオプションで「Standard/generic (dumb) serial support」に続く設定オプションが有効になっている必要がある。モジュールとしてではなく、常駐イメージとして組み込もう(参考Linux How-To)。

 まず最初に、シリアルポートが利用できるよう設定されている必要がある。ここでは、シリアルポート「ttyS0 (COM1)」、転送スピードを9600bps、パリティ無し8ビットとしている例だ。

# vi /etc/inittab

〜中略〜

s0:12345:respawn:/sbin/agetty -L 9600 ttyS0

を追加し、

# init q

で設定反映させる。

 次に、デバイスファイル「/dev/console」(マスターコンソール)、「/dev/tty0」(仮想コンソール)を作成する。

# cd /dev
# rm -f console tty0
# mknod -m 622 console c 5 1
# mknod -m 622 tty0 c 4 0

 続けてブートマネージャ自体が利用できるようオプション指定をする。

LILOの場合

# vi /etc/lilo.conf

boot = /dev/sdc
serial=0,9600n8
disk = /dev/sdc
bios=0x80
heads=4
sectors=32
cylinders=491
image = /boot/zImage
label = linux
append = "ide0=noprobe ide1=noprobe"
append="console=ttyS0,9600"
root = /dev/hda2
initrd = /boot/initrd
read-only

 「serial=」行では、「0」でttyS0、「9600」で9600bps(ボー)、「n」でパリティ無し、「8」で8ビットを意味している。

 最後には、忘れずにLILOを更新しよう。

# lilo -v

GRUBの場合

 GRUBを利用している場合には、grub.confにserial行、terminal行を追加し、背景画像を非表示にするためsplashimage行をコメントアウトする。

# vi /boot/grub/grub.conf

default=0
timeout=10
serial --unit=0 --speed=9600 -word=8 --parity=no --stop=1
terminal --timeout=10 serial console
title Red Hat Linux (2.4.9-21)
root (hd0,0)
kernel /vmlinuz-2.4.9-21 ro root=/dev/hda6 console=tty0 console=ttyS0,9600n8r
initrd /initrd-2.4.9-21.img

 なお、ハードウェア自動検出デーモン「Kudzu」を自動起動させている場合には、サーバ起動時にシリアルポートがリセットされてしまう。次のように設定しておけばリセットが回避可能だ。

# vi /etc/sysconfig/kudzu

SAFE=yes

 シリアルコンソールでの表示になると、起動に表示されるカラー(エスケープコード)表示も気になる。制限するためには、/etc/sysconfig/initファイル内で次のように指定すればよい。

# vi /etc/sysconfig/init

BOOTUP=serial

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ