2014年4月6日日曜日

VMware ゲスト Ubuntu にシリアルポートから TeraTerm でログイン

Windows の VMware Player でゲスト OS として Ubuntu をインストールしました。

VMware のコンソールビュー (Ctrl + Alt でカーソルを開放するあれです) や ssh よりも、シリアルコンソールから Ubuntu にログインした方が使いやすそうだったので設定方法を調べてみました。

Windows の名前付きパイプを使って、TeraTerm でゲスト Ubuntu のシリアルポートからログインします。

環境

  • ホスト OS: Windows 8.1
  • VMware: VMware Player 6.0.1 build-1379776
  • ゲスト OS: Ubuntu 12.04.4 LTS Server

ゲスト Ubuntu に 名前付きパイプのシリアルポート追加

Ubuntu をシャットダウン

「仮想マシン設定の編集」でシリアルポートを追加
  • 「名前付きパイプに出力」を選択
  • パイプ名は「\\.\pipe\MyUbuntu」とか (「MyUbuntu」の部分は多分適当で良いです)
  • 「この端末はサーバです」を選択
  • 「接続先はアプリケーションです」を選択
  • 「起動時に接続」をチェック

ゲスト Ubuntu の設定

なぜか ttyS0 ではうまくいかなかったので、ttyS1 でやってます。

Ubuntu を起動

以下のように ttyS1.conf を設置

$ cat /etc/init/ttyS1.conf
start on stopped rc or RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty ttyS1 vt102

ttyS1 立ち上げ

$ sudo start ttyS1
/etc/default/grub を以下のように編集
$ pwd
/etc/default

$ diff -u grub.Original grub
--- grub.Original       2014-02-20 08:51:06.228247607 +0900
+++ grub        2014-02-20 08:59:06.832258739 +0900
@@ -9,15 +9,22 @@A
 GRUB_TIMEOUT=2
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
 GRUB_CMDLINE_LINUX_DEFAULT=""
-GRUB_CMDLINE_LINUX=""
+
+# カーネルの起動メッセージを通常のコンソール (tty1) と
+# シリアルコンソール (ttyS1) の両方に出力
+GRUB_CMDLINE_LINUX="console=tty1 console=ttyS1"

 # Uncomment to enable BadRAM filtering, modify to suit your needs
 # This works with Linux (no patch required) and with any kernel that obtains
 # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
 #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

-# Uncomment to disable graphical terminal (grub-pc only)
-#GRUB_TERMINAL=console
+# GRUB の画面を通常のコンソール (console)
+# とシリアルコンソール (serial) の両方に出力
+GRUB_TERMINAL="console serial"
+
+# --unit=1 で ttyS1 に対応したシリアルポートを指定しているようです
+GRUB_SERIAL_COMMAND="serial --unit=1"

 # The resolution used on graphical terminal
 # note that you can use only modes which your graphic card supports via VBE

GRUB 設定ファイルを作成

$ sudo update-grub

TeraTerm からシリアル接続

「新しい接続」画面
  • 「TCP/IP」 を選択 (「シリアル」を選択ではなく、「TCP/IP」を選択です!)
  • 「ホスト」に「\\.\pipe\MyUbuntu」(ゲスト OS にシリアルポートを追加するときに指定したパイプ名) を入力
  • 「TCP ポート#」、「サービス」、「プロトコル」は何でも良いようです。
  • OK ボタンを押す

これでシリアルポートでログインできます。


0 件のコメント:

コメントを投稿