Serial Consoleを使う

めっきり使用されることが少なくなった感があるシリアルコンソールですが、使ってみればなかなか便利、そして、まだまだ案外使えるもんです。

何がそんなに便利なの?

サーバーは通常、淡々とリクエストに答えてくれていれば良いわけで、そのようなハードにキーボードやディスプレイを繋いでおく必要はありません。SSH / SFTP で充分に事足ります。でも、非常時には?

SSH / SFTP で接続できないような事態に陥ったとき、そんな時でもシリアルコンソールなら接続できます。OSが起動してからでないと接続が出来ないSSH / SFTP に対して、OS起動中のメッセージすらシリアルコンソールなら確認することができるのです。遠隔操作というわけには行きませんが、無駄にキーボードやディスプレイを準備しなくても済む便利なものです。

実は自分、この便利さに気付いたのはつい最近なのですが。

意外に生きてるSerial Port

最近のマザーボードからすっかり消えた感のあるSerial Portですが、コンシューマー向けの機能が少ないシンプルな構成のマザーボードなどではまだまだ見かけますし、バックパネルからは消えていてもヘッダピンとして残っている場合があります。USB変換のシリアルポートを購入する前にあなたのマザーボードにシリアル(COM)ヘッダピンが無いか確認してみてください。

ヘッダピンがあれば、そこからブラケットでSerial Port端子を設置することが出来ます。

売っている店舗を探すのも大変になりつつありますが、自分はCOMON (カモン)のIDC-BBという製品を購入しました。また、ケーブルは同じくCOMON (カモン)の99FFC-18という製品を購入しました。

秋葉原の千石通商で購入したのですが、CompuAce (コンピュエース)でも売っているようです。

皆さんも探してみて下さい。

一つ、注意点があります。実はSerial Portのピン配列は2パターンあります。ケーブルもまるでLANケーブルかのようにストレートとクロスが存在します。

どちらを適用すべきかよく調査してから購入してください。例えばブラケットは上記の他にIDC-GBが、ケーブルも99FF18などがあります。

SerialConsoleの設定

/etc/event.d/ttyS0 ファイルを作成します。

$ sudo nano /etc/event.d/ttyS0

内容は下記のように。

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6

respawn
exec /sbin/getty 115200 ttyS0

GRUBの設定

/boot/grub/menu.lst ファイルを編集します。

$ sudo nano /boot/grub/menu.lst

まず、GRUBメッセージの出力をシリアルコンソールに出す設定です。

ファイル先頭に下記の内容を追加します。

# Enable console output via the serial port. unit 0 is /dev/ttyS0, unit 1 is /dev/ttyS1...
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=15 serial console

タイムアウトの15秒は好きな数値に変更して下さい。

次に起動メッセージをシリアルコンソールに出す設定です。

下記の固まりを見つけて、ro以下に「console=tty0 console=ttyS0,115200n8」を追記します。

理屈は分かりませんが、ここの行コメントの「#」は付けたままです。外すとうまくいきません。

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/mapper/ws2-root ro console=tty0 console=ttyS0,115200n8

編集し終えたら、設定反映します。update-grub を実行します。

$ sudo update-grub
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /vmlinuz-2.6.24-23-server
Found kernel: /memtest86+.bin
Replacing config file /var/run/grub/menu.lst with new version
Updating /boot/grub/menu.lst ... done
$

/boot/grub/menu.lst の最後部が下記のように変わります。

## ## End Default Options ##

title           Ubuntu 8.04.2, kernel 2.6.24-23-server
root            (hd0,0)
kernel          /vmlinuz-2.6.24-23-server root=/dev/mapper/ws2-root ro console=tty0 console=ttyS0,115200n8 quiet splash
initrd          /initrd.img-2.6.24-23-server
quiet

title           Ubuntu 8.04.2, kernel 2.6.24-23-server (recovery mode)
root            (hd0,0)
kernel          /vmlinuz-2.6.24-23-server root=/dev/mapper/ws2-root ro console=tty0 console=ttyS0,115200n8 single
initrd          /initrd.img-2.6.24-23-server

title           Ubuntu 8.04.2, memtest86+
root            (hd0,0)
kernel          /memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

Tera Term の設定

Tera Term を起動し、メニュー「設定(S)」→「シリアルポート(E)」を選択します。

もし、選択できるようになっていなかったら、メニュー「ファイル(F)」→「新しい接続(N)」でシリアルを選択してOKして開いたウインドウ上でもう一度試してみて下さい。

Tera Term シリアルポート設定

パラメータが合っていることを確認してOKします。もし、修正していたら、設定の保存をしておくと良いでしょう。

さぁ、メニュー「ファイル(F)」→「新しい接続(N)」でシリアルを選択します。OKで接続します。

Tera Term シリアルポート接続

といっても、まだ、Ubuntu Server側の設定反映が済んでいないので繋がりません。

いよいよ接続確認

Ubuntu Serverを再起動してみましょう。

$ sudo shutdown -r now

設定がうまくいっていれば、再起動直後から下記のようにTera Term上にメッセージが現れます。

何かキーを押すと、通常のディスプレイに表示されるものと同じ「Press `ESC' to enter the menu...」というメッセージが表示されます。

起動直後コンソールメッセージ

[Esc] を押してみるとこの通り。

コンソールカーネル選択画面

シリアルコンソール接続でも通常のディスプレイとキーボードを接続した状態と同じオペレーションが可能です。

起動中のメッセージも出ます。

起動中のコンソールメッセージ

ボーレートも115,200と高速ですのでなかなか快適です。

[記事作成日: 2009-05-13]

Homepage banner and link for this title's top page
Top > Knowledge > Ubuntu 8.04 LTS Server > Serial Consoleを使う
このエントリーをはてなブックマークに追加
DELL 今週のキャンペーン情報
mouse computer お急ぎの方に!最短当日出荷モデルicon
DELL 【SOHO法人様向け】デル・イチオシページ(ノートブック)
Fujitsu わけあり品 ビジネス向けicon
Microsoft Surface
レノボ・ショッピング 短納期モデル
DELL Web広告 限定ページ
Fujitsu Campaign (キャンペーン)icon
マウスコンピューター/G-TuneHP Directplus オンラインストアデル株式会社