修改 Ubuntu Installer 从串口输出的方法
修改 Ubuntu Installer 从串口输出的方法
1. 问题背景
在某些只有串口(无VGA/显示器)的设备上安装 Ubuntu 时,发现默认的安装器(installer)输出在VGA,导致无法通过串口终端看到安装界面,影响无人值守或远程安装。
2. 初步尝试:修改 ISO 的 grub.cfg
- 首先尝试将制作好的 Ubuntu 安装U盘或ISO镜像挂载到Linux系统。
- 编辑
/boot/grub/grub.cfg
或/boot/grub/loopback.cfg
,在linux
启动参数行末尾添加:console=ttyS0,115200n8
- 保存后重新制作U盘并启动设备,发现串口依然没有输出。
- 进入installer的命令行(shell)后,查看
/proc/cmdline
,发现并没有包含自己添加的串口参数。
3. 问题定位:查找实际生效的启动参数
- 在installer的命令行下,使用如下命令查找启动参数来源:
grep -r '<cmdline内容片段>' /
- 发现
/cdrom/isolinux/txt.cfg
文件中有与/proc/cmdline
相同的启动参数内容。 - 说明实际生效的启动参数并不是来自 grub.cfg,而是来自
isolinux/txt.cfg
。
4. 解决办法:两种方式修改 txt.cfg 增加串口参数
方式一:Linux下直接挂载和编辑
- 挂载ISO镜像或U盘
sudo mount -o loop ubuntu-xx.xx.iso /mnt/iso # 或 sudo mount /dev/sdX1 /mnt/usb
- 编辑
/isolinux/txt.cfg
文件- 找到类似如下的启动项:
append initrd=/casper/initrd quiet ---
- 在行末添加串口参数:
append initrd=/casper/initrd console=ttyS0,115200n8
- 保存文件。
- 找到类似如下的启动项:
- 重新制作启动U盘或ISO(如有需要)。
- 启动设备并连接串口终端(如minicom、putty、screen等,波特率115200)。
- 此时Ubuntu installer的输出即可在串口终端看到,可以通过串口进行安装操作。
方式二:Windows下使用PowerISO修改ISO文件
- 用PowerISO打开Ubuntu ISO镜像文件。
- 在PowerISO中浏览到
/isolinux/txt.cfg
文件。 - 将
txt.cfg
文件导出到本地磁盘。 - 用记事本或其他文本编辑器打开
txt.cfg
,找到类似如下的启动项:
在行末添加串口参数:append initrd=/casper/initrd quiet ---
保存文件。append initrd=/casper/initrd console=ttyS0,115200n8
- 将修改后的
txt.cfg
文件重新导入到ISO镜像的原位置,覆盖原文件。 - 保存ISO镜像。
- 用修改后的ISO制作启动U盘,或直接用作安装介质。
- 启动设备并连接串口终端(如putty、SecureCRT等,波特率115200),即可看到Ubuntu installer的串口输出。
5. 总结与建议
- Ubuntu installer 的实际启动参数可能来源于
isolinux/txt.cfg
,而不是grub.cfg
,尤其是在传统BIOS/Legacy模式下启动时。 - 修改
txt.cfg
的append
行,添加console=ttyS0,115200n8
,即可让安装器输出重定向到串口。 - 如遇到串口无输出,建议进入installer命令行,查看
/proc/cmdline
,并全盘 grep 启动参数,定位实际生效的配置文件。 - 不同发行版/镜像可能配置文件路径略有不同,建议多尝试和查找。