avatar

LeapHeap Journal

Record moments.

  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
主页 在PVE里使用虚拟串口与虚拟机进行命令行交互
文章

在PVE里使用虚拟串口与虚拟机进行命令行交互

发表于 最近 更新于 最近
作者 LeapHeap
5~6 分钟 阅读

起因

在pve中,如果给虚拟机直通了物理显卡,此虚拟机在加载显卡驱动后就会默认使用直通显卡输出视频流,因此pve对于这个虚拟机的基于虚拟显卡的VNC控制台就无法使用了,虚拟机进入“Headless”状态。因此,为了在这种情况下仍然能通过控制台与虚拟机交互,就需要使用虚拟串口。

实战操作

添加硬件接口

进入pve后台,选中要添加串口的虚拟机,进入硬件选项卡,点击“添加”-“串行接口”,编号使用默认的Serial0即可。确认后更改即写入了配置文件。

修改GRUB引导配置

通过 SSH 进入虚拟机,编辑 GRUB 配置文件:

sudo nano /etc/default/grub

找到 GRUB_CMDLINE_LINUX_DEFAULT 这一行,将其修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty0 console=ttyS0,115200n8"
  • console=tty0:保留常规屏幕输出。
  • console=ttyS0,115200n8:将内核日志和终端输出同时发送到串口,速率为 115200,并设置为首要输出端口。

同时,确保以下几行也存在(如果没有则添加):

GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

修改完毕后,将更改写入GRUB文件,并执行以下命令应用更改:

sudo update-grub

如果使用的是 Arch Linux 等没有 update-grub 的发行版,请执行 grub-mkconfig -o /boot/grub/grub.cfg。

执行完毕后关闭虚拟机,并重新冷启动。此时刚才添加的虚拟串口被应用。

在PVE控制台里使用串口

启动后,由于首要输出端口被设定为串口,因此vnc在加载驱动前也收不到画面。此时需要在控制台右上角的Console选项卡里切换到xterm.js,连接后即可通过串口和虚拟机进行命令行交互。

日志, 技术
服务器
许可协议:  CC BY 4.0
分享

相关文章

3月 7, 2026

在PVE里使用虚拟串口与虚拟机进行命令行交互

起因 在pve中,如果给虚拟机直通了物理显卡,此虚拟机在加载显卡驱动后就会默认使用直通显卡输出视频流,因此pve对于这个虚拟机的基于虚拟显卡的VNC控制台就无法使用了,虚拟机进入“Headless”状态。因此,为了在这种情况下仍然能通过控制台与虚拟机交互,就需要使用虚拟串口。 实战操作 添加硬件接口

3月 7, 2026

使用Docker部署网页版MeshCommander

简介 MeshCommander作为一款方便的第三方英特尔AMT客户端,本质上是一个可通过NPM部署的网页应用,但是官网只发布了官方打包好的桌面客户端。为了方便异地访问时直接在内网使用,故在路由器上部署一个由他人打包好的MeshCommander网页客户端。 前置条件 一台已经安装了Docker的主

3月 7, 2026

使用nginx给Halo后端补上favicon.ico

Halo默认不使用传统的favicon.ico,而是动态载入图标文件,因此某些浏览器认为网站没有图标。所以我使用nginx反代时手动指定nginx返回favicon.ico。 # 精确匹配 favicon.ico 请求 location = /favicon.ico { #

下一篇

上一篇

使用Docker部署网页版MeshCommander

最近更新

  • 在PVE里使用虚拟串口与虚拟机进行命令行交互
  • 使用Docker部署网页版MeshCommander
  • 使用nginx给Halo后端补上favicon.ico
  • 修复微软游戏服务导致的地平线5Xbox版异常
  • 在PVE/Debian上部署UPS状态监控的网页插件

热门标签

Halo 服务器 Web 博客 OpenWrt

目录

©2026 LeapHeap Journal. 保留部分权利。

使用 Halo 主题 Chirpy