ラックマウントサーバでは当たり前となっているメンテナンスポート。シリアルポートを利用してログインを可能とする仕組みだ。ここでは同等の機能を実現すべく、ログインを可能とするまでの手順を紹介しよう。
なお、この機能はカーネルオプションで「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.