VMware 的 serial port 可以是 named pipe, 在 Linux 下可配合 socat
來連接, 其中一種設定方式如下
保存設定後, 啟動 vM, 這時候 /tmp/serial.sock
就會被產生出來.
執行以下指令連上 VM 的 serial console
$ socat -,raw,echo=0 UNIX-CONNECT:/tmp/serial.sock
將目前的 stdin, stdout, stderr 對 /tmp/serial.sock
收發, 並且關閉 echo (這樣如輸入密碼時才不會被打印出來), raw 代表將如 ctrl+c 之類的組合直發給另一端 (否則 ctrl+c 一按下 socat
就會收到 SIGTERM).
當然, 如果你的 guest OS 是 Linux, 還需要在 kernel command line 加上參數使用 serial port 做為 console, 例如
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS1"
如果想讓 systemd 在 serial port 上等待使用者 login, 可啟動以下 service
$ sudo systemctl enable [email protected]
想連 grub 的 boot menu 都輸出到 serial port 的話, 在 /etc/default/grub
中加上
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
更新 grub 設定
$ sudo update-grub