串口控制台是做什么的
服务器没有显卡、显示器或网络尚不可用时,串口控制台是唯一能看到装机过程与启动日志的通道。做法是给内核加 console=ttyS0,115200n8 之类的参数,让内核输出重定向到串口,再在客户端用串口工具或服务器的带外管理(Serial over LAN)连接。要做到能登录,还要额外启用监听该串口的 getty 服务,仅加内核参数只能看到内核输出。
基本信息
| 内核参数 | console=ttyS0,115200n8(设备与波特率按机器调整) |
|---|---|
| 引导配置 | /etc/default/grub 加参数后重新生成 grub.cfg |
| 登录服务 | systemctl enable --now serial-getty@ttyS0 |
| 客户端工具 | screen、minicom,或带外管理工具的串口重定向 |
| 验证方法 | 登录后用 who 或 w 查看会话来源 |
典型使用场景
- 无显卡服务器安装操作系统,需要全程观察安装界面与报错
- 网络不可用的紧急场景,通过带外串口登录排查系统问题
- 启动卡住时抓取内核早期输出,网络 SSH 尚未就绪阶段的日志只有串口可见
- 机房现场维护:用串口线连接笔记本,避免迁就显示设备
- 验证引导参数改动效果,直接在串口看到内核打印确认
- 交付验收时保留串口登录通道,作为 SSH 之外的管理备路
GRUB 追加串口参数
GRUB 追加串口参数
cp /etc/default/grub /etc/default/grub.bak # 改动前备份
sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="console=ttyS0,115200n8 /' /etc/default/grub
grep GRUB_CMDLINE_LINUX /etc/default/grub # 确认参数已写入
grub2-mkconfig -o /boot/grub2/grub.cfg # 重新生成引导配置
systemctl enable --now serial-getty@ttyS0 # 让串口可登录
systemctl status serial-getty@ttyS0 --no-pager | head
# 客户端侧连接示例:
# screen /dev/ttyUSB0 115200
# 或 minicom -D /dev/ttyUSB0 -b 115200
who # 登录后确认会话来自 ttyS0参数与现象对照
| 项 | 取值示例 | 不一致的后果 |
|---|---|---|
| 串口设备 | ttyS0、ttyS1、ttyAMA0 | 写错设备看不到任何输出 |
| 波特率 | 115200、9600 | 客户端与内核不一致会显示乱码 |
| 数据格式 | n8 表示无校验、8 位数据 | 格式不符同样出现乱码 |
| getty 服务 | serial-getty@ttyS0 | 未启用则只能看输出不能登录 |
| 带外管理 | Serial over LAN 重定向 | 需与 BIOS 串口重定向设置匹配 |
内核 console 参数与 getty 服务是两件事:前者决定内核往串口打印什么,后者决定串口上能否出现登录提示;只配前者时表现是「有输出但无法登录」,这不是配置失败。
带外管理(如 BMC 的 Serial over LAN)使用前要确认 BIOS 中的串口重定向设置已开启并选对了物理串口,否则客户端连上后没有内容。