众所周知,在 Proxmox VE 中,LXC 容器能够直接用管理面板提供的 Xterm.js 连接到 Xterm 终端,而使用 QEMU 开启的 Linux 虚拟机就只能用 noVNC 连接到虚拟显示器上的输出。VNC 是图像形式的,意味着我们没法框选文本复制,也没法粘贴内容进去,要复制粘贴就得开个独立的 SSH 程序来完成。
那么有没有什么办法,能让 QEMU 开启的虚拟机,也能在管理面板直接连接终端呢?答案是可以,并且 PVE 官方 Wiki 也提供了相关方式。我查阅了几篇教程,给大家介绍一个我认为最简单的方式。
效果
为客户机添加串口
为需要开启串口终端的虚拟机添加一个串口,具体方式是在 PVE 面板内,在硬件菜单内新建一个串口 0.
当然也可以在 PVE 终端内使用指令来给客户机添加串口,其中 VMID 填写虚拟机的编号:
开启客户机 ttyS
/dev/tty0 是普通的 tty,是输出到屏幕上的。而 /dev/ttyS0 是串口 tty,意味着是输出到系统串口上的。我们开启串口 tty 后,PVE 宿主机就可以靠串口上的 tty 连接到虚拟机的 Xterm 了。
我们使用 getty 来开启串口 tty,并且使用 systemctl 进行守护。首先创建 systemctl 配置:
然后将以下内容粘贴进文件内:
里面的参数代表:波特率 115200,选择 ttyS0,使用 xterm 终端。
然后刷新 systemctl,并且启用并启动该服务:
接下来重启服务器,确保所有配置生效:
现在,再到 PVE 面板里进入虚拟机的控制台,应该就不是启动的 noVNC 而是启动的 Xterm.js 直接连接到终端了,方便许多。
调整终端大小
实测发现,这样操作后,终端的行列数并不会自适应浏览器窗口的大小。我们使用 echo 查看一下目前的终端行列:
可以发现输出了 24 80,浏览器窗口怎么调整它都不会自适应。例如开启一个 top,发现只占了右上角。
我暂时还不知道这个问题该如何解决,不过一个治标不治本的方法是手动调整行列数。使用以下指令可以设置行列数:
例如我设置为 180 列 50 行,top 便可以占满整个浏览器窗口了:
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/6082.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~