■VMwarePlayerで、Squeeze on Squeeze シリアルコンソール接続
VMwarePlayerで、Lenny on Lenny シリアルコンソール接続
http://d.hatena.ne.jp/labunix/20120214
■前提条件:Squeezeのカーネルオプションの確認(ホスト/ゲスト)
$ dpkg -L kernel-package | grep amd64\$
/usr/share/kernel-package/Config/config.amd64
$ grep "CONFIG_SERIAL_8250_[=C]" \
/usr/share/kernel-package/Config/config.amd64
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CS=m
$ uname -m -r
2.6.32-5-amd64 x86_64
■シリアルコンソールを有効にする
$ sudo cp -pi /etc/inittab /etc/inittab.bak
$ sudo vim /etc/inittab
$ sudo diff /etc/inittab /etc/inittab.bak
63,64c63,64
< T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
< T1:23:respawn:/sbin/getty -L ttyS1 115200 vt100
---
>
>
$ sudo init q
$ ps -ef | grep ttyS | cut -c 40- | head -2
00:00:00 /sbin/getty -L ttyS0 115200 vt100
00:00:00 /sbin/getty -L ttyS1 115200 vt100
■VMXの編集(ホスト側の作業)
・今回はsuspend時に作業した。
・「/tmp」直下であればvmrunを実行したユーザ権限で作成される。
・デフォルトの仮想プリンタが「serial0」を使用していたので、「serial1」とした。
・ここまでで、ログイン出来る。
$ sudo cp -pi vmware/squeeze/squeeze.vmx vmware/squeeze/squeeze.vmx.bak
$ sudo diff vmware/squeeze/squeeze.vmx vmware/squeeze/squeeze.vmx.bak
60c60
< cleanShutdown = "FALSE"
---
> cleanShutdown = "TRUE"
82c82
< checkpoint.vmState = ""
---
> checkpoint.vmState = "squeeze-ef1444d1.vmss"
89,92d88
< serial1.present = "TRUE"
< serial1.fileType = "pipe"
< serial1.fileName = "/tmp/vmsqueeze-serial-pipe"
< serial1.pipe.endPoint = "server"
$ ls -l /tmp/vmsqueeze-serial-pipe
srwxr-xr-x 1 user user 0 2012-02-15 20:40 /tmp/vmsqueeze-serial-pipe
$ sudo apt-get install socat
$ sudo vim vmsqueeze-serial.sh
$ sudo cat vmsqueeze-serial.sh
if [ `id -u` -ne "0" ];then
echo "Sorry! Not Permit User"
exit 1
else
socat /tmp/vmsqueeze-serial-pipe stdout
fi
exit 0
$ sudo chown root:root vmsqueeze-serial.sh
$ sudo chmod 500 vmsqueeze-serial.sh
$ sudo ./vmsqueeze-serial.sh
■grubの設定(ゲスト側の作業)
※ホスト/ゲスト共にGRUB2
コマンドラインに追加するという考え方は同じ。
$ whereis grub
grub: /etc/grub.d /usr/lib/grub /usr/lib64/grub /usr/share/grub
$ dpkg -L grub-common | grep sbin
/usr/sbin
/usr/sbin/grub-mkdevicemap
/usr/sbin/grub-probe
/usr/sbin/grub-mkconfig
$ /usr/sbin/grub-setup --version
/usr/sbin/grub-setup (GRUB) 1.98+20100804-14+squeeze1
$ sudo cp -pi /etc/default/grub /etc/default/grub.bak
$ sudo vim /etc/default/grub
$ sudo diff /etc/default/grub /etc/default/grub.bak
7,9c7,8
< GRUB_TERMINAL="serial console"
< GRUB_SERIAL_COMMAND="serial --unit=0 --speed=15200"
< GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,15200"
---
> GRUB_CMDLINE_LINUX_DEFAULT="quiet"
> GRUB_CMDLINE_LINUX=""
$ sudo /usr/sbin/update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
done
■再起動して再度ログインチェック
※シリアルコンソール接続で表示が無く、応答確認したい場合は、「ENTER」を押してみるのもよい。
$ echo "this is gest,vmsqueeze" && sudo shutdown -r now
this is gest,vmsqueeze
$ echo "this is host squeeze" && sudo ./vmsqueeze-serial.sh
this is host,squeeze