# 名前付きパイプ

VMwareやHyper-Vといった仮想化ソフトウェアの名前付きパイプを利用することにより、Tera Termから名前付きパイプを介して、仮想マシンのゲストOSへシリアルコンソール接続を行うことができるようになります。

       +---------------+
       | Guest OS      |
       |               |
       +----[COM]------+
       | Hypervisor    |
       +------+--------+
              |
              |                              +-------------+
              |                              |             |
              +-------[Named pipe]-----------+  Tera Term  |
                                             |             |
                                             +-------------+

## Linux on VMware

VMware Player 3.1.5 + Fedora 16の組み合わせを例としてあげます。

VMware Player 3以降で名前付きパイプに対応しましたが、古いバージョンでは未対応なので、新しいバージョンにアップグレードして下さい。「仮想マシンの設定」ダイアログ - ハードウェア - シリアルポートにおいて、「名前付きパイプを使用する」を選択し、下記の通り入力します。

- 「\\.\pipe\vmware-serial-port」
- 「この端末はサーバです」
- 「接続先はアプリケーションです」

Fedora 16は、デフォルトではシリアルコンソールが使用されていません。GRUB2の設定を変更することにより、ブートローダおよびLinuxブートログ、ログインプロンプトをシリアルコンソールに出力することができるようになります。
GRUB2の設定方法について示します。 root権限で、/etc/default/grub を編集します。

    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="Fedora"
    GRUB_DEFAULT=saved
    GRUB_CMDLINE_LINUX="rd.md=0 rd.dm=0 rd.lvm.lv=VolGroup/lv_swap quiet rhgb rd.lvm.lv=VolGroup/lv_root rd.luks=0 LANG=ja_JP.UTF-8  KEYTABLE=jp106"
    GRUB_TERMINAL="serial console"
    GRUB_SERIAL_COMMAND="serial --unit=0 --speed=38400"
    GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,38400"

次に、grub2-mkconfigコマンドを実行し、設定を反映させます。

    # grub2-mkconfig -o /boot/grub2/grub.cfg

以上より、VMwareからFedoraを起動すると、名前付きパイプ(\\.\pipe\vmware-serial-port)が作成されるので、Tera Termから接続可能となります。なお、ブレーク信号には対応していないので、Tera Termから"Send break"してもMagic SysRq keyは動作しません。

参考までに、Fedora 15以前では Legacy GRUB が採用されているため、シリアルコンソールの設定が異なります。 root権限で、/boot/grub/grub.conf を直接編集します。

    default=0
    timeout=5
    #splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    serial --unit=0 --speed=38400
    terminal --timeout=5 serial console
    title Fedora (2.6.38.6-26.rc1.fc15.i686.PAE)
            root (hd0,0)
            kernel /vmlinuz-2.6.38.6-26.rc1.fc15.i686.PAE ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=ja_JP.UTF-8 KEYTABLE=jp106 selinux=0 rhgb quiet console=tty0 console=ttyS0,38400
            initrd /initramfs-2.6.38.6-26.rc1.fc15.i686.PAE.img

## Windows Server on Hyper-V

Windows Server 2008 R2 の Hyper-V を使い、仮想マシン上で Windows Server を動作させる例を挙げます。

Hyper-V のCOMポートの設定で、名前付きパイプを指定します。名前付きパイプの形式は「\\.\pipe\」となります。 当該名前付きパイプを使って、Tera Termから Hyper-V のCOMポートに接続することができます。 なお、ゲストOSは Windows Server でないと、SAC(Special Administration Console)は利用できません。デスクトップ版WindowsではSACは利用不可なので、名前付きパイプで接続しても、何もできません。