PVE 虚拟机配置xterm.js

PVE创建虚拟机后默认只有novnc方法连接虚拟机,无法复制粘贴,很不方便,因此可以打开xterm.js的方式弥补此缺陷

关闭 VM,并且新增 serial port 給 VM 在PVE Host 中用 qm 命令建立 serial port,假設我的 VM ID 是 100

qm set 100 -serial0 socket

重新开启 VM,用 dmesg 验证是否有 ttyS 出现

dmesg | grep ttyS

如果出現如下代表有了

[    3.521757] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A

接下来配置VM的grub,进入VM的ssh

cd /etc/default/
vi grub

修改grub中的GRUB_CMDLINE_LINUX值

GRUB_CMDLINE_LINUX="quiet console=tty0 console=ttyS0,115200”

更新grub

debian based
update-grub
redhat based
grub2-mkconfig --output=/boot/grub2/grub.cfg

在虚拟机添加

/etc/init/ttyS0.conf

并添加如下

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[12345]
stop on runlevel [!12345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102

设置自启动

systemctl enable serial-getty@ttyS0.service
systemctl start serial-getty@ttyS0.service

重启VM,测试xterm,已经可以用

官方文档如下:https://pve.proxmox.com/wiki/Serial_Terminal