在macOS Ventura系统的MacBook上修改Debian 11.6发行版ISO镜像以启用串口控制台安装的方法咨询
当然可以在你的MacBook(运行Ventura系统)上完成这项操作,我来一步步给你捋清楚具体怎么做:
1. 准备必要工具
首先确保你已经安装了Homebrew(如果还没装,直接在终端里运行官方安装命令就行),然后安装打包ISO需要的工具:
brew install xorriso qemu
xorriso用来重新打包修改后的ISO内容,qemu可以用来测试修改后的镜像是否正常工作。macOS自带的hdiutil和cp等工具也会用到,不用额外安装。
2. 挂载并复制原始ISO内容
假设你已经下载好Debian 11.6的ISO镜像(比如debian-11.6.0-amd64-netinst.iso),先把它挂载到系统里:
hdiutil mount debian-11.6.0-amd64-netinst.iso
挂载成功后,终端会输出镜像的挂载路径,比如/Volumes/Debian 11 amd64 n,记好这个路径。接下来创建一个工作目录,把挂载的ISO内容全部复制进去:
mkdir -p ~/debian-iso-modified/{extract,output} cp -R /Volumes/Debian*/* ~/debian-iso-modified/extract/
复制完成后,卸载原始ISO:
hdiutil unmount /Volumes/Debian*
3. 修改启动配置以启用串口控制台
这一步是核心,我们需要给BIOS和UEFI两种启动方式都添加串口控制台参数:
针对BIOS启动(isolinux)
打开~/debian-iso-modified/extract/isolinux/isolinux.cfg文件,找到默认启动项的append行,在后面添加串口参数console=ttyS0,115200n8(这里假设你的串口设备是ttyS0,波特率115200,8位数据位、无校验、1停止位,可根据实际设备调整)。比如修改后可能是这样:
label install menu label ^Install kernel /install.amd/vmlinuz append vga=788 initrd=/install.amd/initrd.gz console=ttyS0,115200n8 --- quiet
如果想让安装程序默认就用串口控制台,还可以把default项设为install,并缩短timeout时间。
针对UEFI启动(grub)
打开~/debian-iso-modified/extract/grub/grub.cfg文件,找到menuentry 'Install'的部分,在linux行后面同样添加串口参数:
menuentry 'Install' { set gfxpayload=keep linux /install.amd/vmlinuz console=ttyS0,115200n8 --- initrd /install.amd/initrd.gz }
4. 重新打包修改后的ISO
用xorriso把修改好的内容打包成新的可引导ISO,注意替换命令里的isohdpfx.bin路径(如果你的xorriso是通过Homebrew安装的,这个文件一般在/usr/local/lib/ISOLINUX/isohdpfx.bin,如果找不到可以用find /usr/local -name isohdpfx.bin来查找):
xorriso -as mkisofs -r -J -joliet-long -l -cache-inodes \ -isohybrid-mbr /usr/local/lib/ISOLINUX/isohdpfx.bin \ -partition_offset 16 \ -A "Debian 11.6.0 amd64 (Serial Console Enabled)" \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot \ -isohybrid-gpt-basdat \ -o ~/debian-iso-modified/output/debian-11.6-serial.iso \ ~/debian-iso-modified/extract/
执行完这个命令,你就能在~/debian-iso-modified/output/目录下拿到修改好的ISO了。
5. 测试镜像(可选但推荐)
用qemu测试一下修改后的ISO是否能正常通过串口输出:
qemu-system-x86_64 -cdrom ~/debian-iso-modified/output/debian-11.6-serial.iso -serial stdio
如果是M系列芯片的Mac,需要用ARM架构的QEMU命令:
qemu-system-aarch64 -cdrom ~/debian-11.6-serial.iso -serial stdio -M virt -cpu cortex-a72
运行后你应该能在终端里看到Debian安装程序的串口输出,说明修改成功了。
备注:内容来源于stack exchange,提问作者electrophile

