PVE开启linux下xterm.js控制台

来自三线的随记
Admin讨论 | 贡献2022年5月25日 (三) 12:34的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

赘述

aka: PVE开启Linux的串行(串口)控制台(serial console)

首先需要开启xterm.js控制台的虚拟机需要先添加一个serial串行端口硬件


Linux 8

Centos 8 / Oracle 8 / Redhat 8

1. 通过修改/etc/default/grub文件重新生成grub配置实现

网上很多教程都是修改 /etc/default/grub 文件,添加或者修改一行GRUB_CMDLINE_LINUX配置

然后执行grub2-mkconfig重新生成一份grub.cfg

主要参数在于console,console=tty0即将开机启动的滚屏信息也输出到tty0(节点主输出),console=ttyS0才是控制串行控制台相关的

GRUB_CMDLINE_LINUX="quiet console=tty0 console=ttyS0"

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

然后执行

grub2-mkconfig --output=/boot/grub2/grub.cfg

如果在前文设置了波特率115200的话,这时候reboot会发现其实可能无法生效

需要执行命令

stty -F /dev/ttyS0 speed 115200

2. 通过修改 /boot/grub2/grubenv文件实现(不重新生成grub.cfg,需要留意本身grub.cfg内)

# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
# entries populated from BootLoaderSpec files that use this variable work correctly even
# without a grubenv file, define a fallback kernelopts variable if this has not been set.
#
# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
# the kernelopts variable in the grubenv file and the fallback kernelopts variable.

修改 /boot/grub2/grubenv 文件,在 kernelopts 配置项末尾追加console相关配置,如下

kernelopts=root=/dev/mapper/oracle--disk-root ro crashkernel=auto resume=/dev/mapper/oracle--disk-swap rd.lvm.lv=oracle-disk/root rd.lvm.lv=oracle-disk/swap rhgb quiet console=tty0 console=ttyS0,115200

然后由于定义了波特率,所以同样需要执行

stty -F /dev/ttyS0 speed 115200

重启即可

3. 不重启立刻生效

执行以下命令即可,如果不修改grub相关配置项的话,仅本次生效

systemctl start getty@ttyS0


更多PVE serial console配置参考: https://pve.proxmox.com/wiki/Serial_Terminal