シリアルコンソール · 1 min read · Feb 02, 2026
シリアルコンソールの設定
シリアルコンソールの設定
このチュートリアルでは、Linuxシステムでシリアルコンソールを設定し、ヌルモデムケーブルを介して接続する方法を示します。これは、Linuxサーバーがヘッドレス構成(キーボードやモニターなし)の場合に非常に便利で、システムに問題が発生した場合(特にSSHが利用できないネットワークの問題)に簡単にコンソールにアクセスできます。最終的には、GRUBメニューがシリアルリンクを介して表示され、システム起動時のメッセージも表示されます。私はサーバーにDebian Etchを、クライアントにUbuntu Edgyを使用していますが、これは任意のLinuxディストリビューションで動作するはずです。
最初のステップ
最初に確認する必要がある最も重要なことは、サーバーに実際にシリアルポートがあるかどうかです :)。サーバーの背面を見て、9ピンのシリアルポートがあるかどうかを確認してください。ほとんどのマザーボードには1つまたは2つのシリアルポートがあります。システム上で、Linuxがシリアルポートを認識しているかどうかを確認します:
root@server:~# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550Aこれにより、私のシステムには1つのシリアルポート、ttyS0があることが示されます(後でこれを覚えておいてください)。
GRUBの設定
次のステップは、GRUBの設定を編集して、メッセージをシリアルコンソールに送信することです。最も重要なことの1つは、パスワードを設定することです。そうしないと、誰でもシリアルケーブルを接続し、システムが起動している間にGRUBの設定行を編集(「e」キーを介して)し、ルートアクセスを取得できます。パスワードが設定されていると、正しいパスワードが入力されない限り、インタラクティブメニューの編集が無効になります。パスワードを設定するには、まずその暗号化されたバージョンを取得する必要があります。
grubを実行し、”md5crypt”コマンドを使用してパスワードを暗号化します:
grub> md5crypt
Password: ********
Encrypted: $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1暗号化されたパスワードのバージョンをコピーします(次のステップで必要です)、その後、quitと入力して終了します。
次に、GRUBの設定を編集する必要があります。/boot/grub/menu.lstファイルを編集し(nano /boot/grub/menu.lstと入力)、このセクションを見つけます:
## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command 'lock'
# e.g. password topsecret
# password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecretその下に、次のように追加します:
password --md5 $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1
serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console$1$AlfMq1$FxRolxW5XvSLAOksiC7MD1をあなたのパスワードの暗号化された形式に置き換えます。2行目は、GRUBにシリアルポートを38,400 bps(標準コンソールと同じ速度)で初期化し、8データビット、パリティなし、1ストップビット(基本的に標準設定)を指示します。–unit=0は、最初のシリアルポート(ttyS0)を使用することを意味します。2番目のシリアルポート(ttyS1)を使用している場合は、–unit=1に変更します。最後の行は、GRUBにメニューをシリアルラインとコンソール(モニター)の両方に表示するよう指示します。
次に、カーネルセクションも編集して、シリアルコンソールにメッセージを出力する必要があります。各カーネル行の最後にconsole=tty0 console=ttyS0,38400n8を追加します(ttyS0を正しいシリアルポートに置き換えます)。私の場合、最終的には次のようになりました:
title Debian GNU/Linux, kernel 2.6.18-4-vserver-686
root (hd0,1)
kernel /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
initrd /initrd.img-2.6.18-4-vserver-686
savedefault
title Debian GNU/Linux, kernel 2.6.18-4-vserver-686 (single-user mode)
root (hd0,1)
kernel /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
initrd /initrd.img-2.6.18-4-vserver-686
savedefault
title Debian GNU/Linux, kernel 2.6.18-3-686
root (hd0,1)
kernel /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
initrd /initrd.img-2.6.18-3-686
savedefault
title Debian GNU/Linux, kernel 2.6.18-3-686 (single-user mode)
root (hd0,1)
kernel /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
initrd /initrd.img-2.6.18-3-686
savedefault CTRL+O(”出力”またはファイルを保存)を押して保存し、Enter(ファイル名を受け入れる)を押し、CTRL+X(実際に終了する)を押して終了します。
シリアルコンソールでのログインを許可
これで、GRUBメニューがシリアル接続を介して表示されますが、まだログインを待機していません(まだ”getty”が実行されていません)。/etc/inittabファイルを編集し、このセクションを見つけます:
# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100その下に(デフォルトの行を編集するのは好きではありません :P)、次のように追加します:
T0:2345:respawn:/sbin/getty -L ttyS0 38400 vt100これで完了です。サーバーはシリアルコンソールを介してGRUBメニューを表示し、ログインを許可します(起動が完了した後)。
テストしてみましょう!
これで全てが完了したので、クライアントを設定する必要があります。私はノートパソコンでGtkTermを使用していますが、任意のターミナルプログラムが機能するはずです(シリアルポートを使用できる限り)。私のノートパソコンにはシリアルポートがないため、eBayで購入したUSB to Serialアダプターを使用しています(ttyUSB0デバイスを作成します)。ターミナルプログラムを次の設定に設定します:
- ポート(Linux): ttyS0またはttyS1(システムにシリアルポートがある場合)、またはttyUSB0(USB to Serialコンバーターを使用している場合)。
- ポート(Windows): COM1またはCOM2
- ビット毎秒: 38400
- データビット: 8
- パリティ: なし
- ストップビット: 1
- フロー制御: なし、ただしハードウェア(RTS/CTS)が正常に動作するはずです
サーバーを再起動します(おそらくSSH接続から、または上記のGRUB設定を編集した方法で)、その後、起動中にヌルモデムケーブルを接続します(つまり、BIOS画面で)。プロンプトが表示されたら任意のキーを押すと、次のようなものが表示されます:

これは、GRUBが正常に動作していることを意味します :)。Enterを押すと、起動し、すべてのメッセージがターミナルウィンドウに表示されるはずです。起動後は、次のようになります:

最後にログインし、正常に動作することを確認します:

おめでとうございます、すべてが設定されて正常に動作しています。
このチュートリアルを楽しんでいただけたら幸いです! :)
Daniel15 (ダニエル・ロ・ニグロ)
http://www.daniel15.com/
http://www.dansoftaustralia.net/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。