コンソール経由でLinuxサーバに接続

一般家庭で動かしている多くの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
----中略----

上記の設定により起動時からコンソール出力させることができます。

タイトルとURLをコピーしました