avatar

LeapHeap Journal

Record moments.

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

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

发表于 2026-03-7 更新于 2026-04- 3
作者 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
分享

相关文章

8月 8, 2026

[备忘] ddns-go docker容器内获取服务器主网卡的稳定ipv6

排除临时v6地址的noprefixroute标记即可。在获取v6地址方式选择by command,使用以下命令: ip -6 addr show dev enp6s0 scope global | awk '/inet6/ && $0 !~ /noprefixroute/ && $2 !~ /^fd

8月 7, 2026

[备忘] OpenClash部署配置简记

背景:2026年8月5日晚从nikki因版本过旧原因迁移到OpenClash新版端。以下是在官方默认配置下做的改动。 插件设置 操作模式 由于个人有依赖UDP的FH5联机需求,所以设置为fakeip-mixed,TUN栈选择Mixed,这样保证UDP流量进TUN透明代理。这也是之前某Youtuber

7月 30, 2026

解决OpenWrt掉IPv6公网的问题

背景:电信宽带,已改桥接,有公网v6。由于存在v6续约超时的bug,所以写一个脚本自动重启wan接口。 创建watchdog主程序 nano /usr/bin/ipv6-watchdog 写入内容: #!/bin/sh ######################################

下一篇

目前家庭服务器的基本状况

上一篇

使用Docker部署网页版MeshCommander

最近更新

  • [备忘] ddns-go docker容器内获取服务器主网卡的稳定ipv6
  • [备忘] OpenClash部署配置简记
  • 解决OpenWrt掉IPv6公网的问题
  • 《红猪》观影笔记
  • Alicks杂记

热门标签

Halo 服务器 Web 博客 OpenWrt

目录

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

使用 Halo 主题 Chirpy