一般家庭で動かしている多くのLinuxサーバは、昔はクライアントとして使っていたデスクトップ機やノートPCという場合が多いかと思います。
それらの多くのPCには「RS-232C(シリアルポート)」が搭載されているはずです。
Linuxサーバと普段使用しているクライアントPCとをRS-232Cで接続し、Linuxサーバにログインする方法を紹介します。
RS-232Cでログインするメリットは、以下が挙げられます。
- server機にディスプレイ、キーボード、マウスが不要になる。
- telnet、sshを起動しなくていいので、不要なdaemonを立ち上げずportを閉じることができる。
LinuxサーバとクライアントPCをRS-232Cで接続するために「シリアルクロスケーブル」を用意する必要がありますが大型の家電量販店で、だいたい1500円ぐらいで入手できます。
ケーブルを繋いだ後に、Linuxサーバの設定変更を実施すれば、クライアントPCのTeraTermなどのターミナルからシリアルポートを使用してLinuxサーバにログインができるようになります。
よって設定をおこなう際には、ディスプレイ・キーボードを接続、またはtelnet、ssh接続をおこなう必要があります。
以下に、転送速度115200bps、パリティ無し8ビットでの接続をおこなうための設定方法を記載します。
項番1. inittabの編集
inittabへ赤字部分を追加します。
# vi /etc/inittab ----中略---- 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 s0:12345:respawn:/sbin/agetty -L 115200 ttyS0
設定を追加したら、以下のコマンドで設定を反映させる。
#init q
項番2.マスターコンソールと仮想コンソールの作成
以下のコマンドを実行して、マスターコンソールと仮想コンソールの作成をおこないます。
# cd /dev# rm -f console tty0 # mknod -m 622 console c 5 1 # mknod -m 622 tty0 c 4 0
以上の設定でRS-232Cでの接続が可能になりました。
しかしこれではrootではログインができない状態です。一般ユーザでログインした後でsuすれば良いのですが、不便ということであれば「/etc/securetty」の設定が必要になります。(補足1)
またブートローダでGRUBを使用している場合、「grub.conf」を編集することで起動時からRS-232C経由でターミナルに出力することが可能です。(補足2)
補足1.rootでログイン
securettyに赤字部分を追加します。
#vi /etc/securetty ----中略---- tty8 tty9 tty10 tty11 ttyS0
上記を追加したことにより、コンソールからrootでログインできるようになります。
補足2.起動時からコンソール出力させる。(GRUB)
grub.confに赤字部分を追加します。
# vi /boot/grub/grub.conf ----中略---- default=0 timeout=10 serial --unit=0 --speed=115200 -word=8 --parity=no --stop=1 terminal --timeout=10 serial console #splashimage=(hd0,0)/grub/splash.xpm.gz <==splashimageをコメントアウト title Red Hat Linux (2.4.7-10) root (hd0,0) kernel /vmlinuz-2.4.7-10 ro root=/dev/hda3 console=tty0 console=ttyS0,115200n8r initrd /initrd-2.4.7-10.img ----中略----
上記の設定により起動時からコンソール出力させることができます。