■VMwarePlayerで、Lenny on Lenny シリアルコンソール接続
参考:Linux on VMware でシリアルコンソールを使う方法
http://d.hatena.ne.jp/pyopyopyo/20120213/p1
■前提条件1:Lennyのカーネルオプションの確認(ホスト)
$ sudo apt-get install kernel-package
$ uname -m;uname -r
x86_64
2.6.26-2-amd64
$ dpkg -L kernel-package | grep amd64\$
/usr/share/kernel-package/Config/config.amd64
$ grep "CONFIG_SERIAL_8250=\|CONFIG_SERIAL_8250_CONSOLE=" \
/usr/share/kernel-package/Config/config.amd64
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
■前提条件2:Lennyのカーネルオプションの確認(ゲスト)
※カーネルのバージョンが同じなので、ホストで見ても同じ。
$ sudo apt-get install kernel-package
$ uname -m;uname -r
i686
2.6.26-2-686
$ dpkg -L kernel-package | grep i686\$
/usr/share/kernel-package/Config/config.i686
$ grep "CONFIG_SERIAL=\|CONFIG_SERIAL_CONSOLE=" \
/usr/share/kernel-package/Config/config.i686
CONFIG_SERIAL=y
CONFIG_SERIAL_CONSOLE=y
■シリアルコンソールを有効にする(grub)
$ sudo cp -pi /etc/inittab /etc/inittab.bak
$ sudo vim /etc/inittab
$ diff /etc/inittab /etc/inittab.bak
63c63
< T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
---
>
■inittabの再読み込み
※webで検索すると、以下なのだが。。。
$ sudo init q
$ sudo telinit q
■反映しないので、以下を実行。
$ sudo pkill getty
$ ps -ef | grep getty | head -1 | awk '{print $2}' | xargs sudo kill
$ ps -ef | grep ttyS | cut -c 40- | head -1
00:00:00 /sbin/getty -L ttyS0 115200 vt100
■コンソールはデフォルトで許可。
$ sudo grep ttyS0 /etc/securetty
ttyS0
■grub1の設定変更
$ whereis -b grub
grub: /usr/sbin/grub /usr/lib/grub
$ /usr/sbin/grub --version
grub (GNU GRUB 0.97)
$ sudo cp -pi /boot/grub/menu.lst /boot/grub/menu.lst.bak
$ sudo vim /boot/grub/menu.lst
$ sudo diff /boot/grub/menu.lst /boot/grub/menu.lst.bak
122,124d121
< serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
< terminal --timeout=10 serial console
<
127c124
< kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro console=tty0 console=ttyS0,115200n8
---
> kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro quiet
■grubのアップデート
$ sudo /usr/sbin/update-grub
[sudo] password for labunix:
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: /boot/vmlinuz-2.6.26-2-686
Updating /boot/grub/menu.lst ... done
■再起動後のコマンドラインの確認
※kernel行のオプションを取得する箇所
$ cat /proc/cmdline
root=/dev/sda1 ro console=tty0 console=ttyS0,115200n8
■シリアルドライバの設定の追加
※仮想マシン側は電源OFFの状態で行う。
$ sudo cp -pi vmware/vmlenny86/vmlenny86.vmx vmware/vmlenny86/vmlenny86.vmx.bak
$ sudo vim vmware/vmlenny86/vmlenny86.vmx
$ sudo diff vmware/vmlenny86/vmlenny86.vmx vmware/vmlenny86/vmlenny86.vmx.bak
73,76d72
< serial0.present = "TRUE"
< serial0.fileType = "pipe"
< serial0.fileName = "/tmp/vmware-serial-port"
< serial0.pipe.endPoint = "server"
■ホスト側socatの導入
$ sudo apt-get install socat
■ユーザ名(username)、パスワード(PASSWORD)でログインした様子
※仮想マシンはvmrun の noguiオプションで起動
$ sudo socat /tmp/vmware-serial-port stdout
username
Password: PASSWORD
Last login: Tue Feb 14 22:12:09 JST 2012 on ttyS0
Linux vmlenny86 2.6.26-2-686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
No mail.
username@vmlenny86:~$ tty
tty
/dev/ttyS0
■例えば「/etc/init」でvt102に変更すると、
username@vmlenny86:~$ echo $TERM
echo $TERM
vt102
■普段使いに。
$ vim sirial.sh
$ cat sirial.sh
if [ `id -u` -ne "0" ];then
echo "Sorry! Not Permit User"
exit 1
else
socat /tmp/vmware-serial-port stdout
fi
$ sudo chown root:root sirial.sh
$ sudo chmod 700 sirial.sh
$ sudo ./sirial.sh