Linux中使用苹果USB吸入式光驱
我在尝试解决 MacBook Air 11" Late 2010安装Alpine Linux 无法从U盘启动问题时,准备通过刻录CDROM来绕过古早Macbook系统不支持最新Linux iso-hybrid 格式镜像的问题。我最初想在macOS 15上使用我以前购买的苹果USB吸入式光驱来刻录光盘。但是我发现macOS不能读取Linux的 iso-hybrid 格式ISO,提示
那么我想反过来在Linux上刻录这个ISO总可以吧
然而,我发现在Linux上,这个吸入式光驱不能自动吸入光盘:
gemini解释是:
Apple SuperDrive 在插入非 Mac 设备时,默认处于“低功耗/休眠模式”,不会给内部的吸入式机械结构供电,因此光盘塞不进去,或者塞进去后不会自动吸入。
激活吸入式光驱
Linux社区通过逆向工程解决了Apple SuperDrive的激活协议问题,只需要在Linux下向刻录机的USB原始设备发送特定的SCSI/USB初始化指令,就可以解锁供电,使其恢复正常的自动吸入和读写功能。
最轻量级、最直接的方式使使用开源工具 sg3_utils 发送激活指令。
安装工具包:
sudo apt update
sudo apt install sg3-utils
执行
lsblk找到光驱节点(通常是/dev/sr0或/dev/sgX)
lsblk 可以看到光驱设备NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 1024M 0 rom
...
发送解锁指令:
sudo sg_raw /dev/sr0 EA 00 00 00 00 00 01
这里 EA 00 00 00 00 00 01 是苹果专有的 SuperDrive 供电激活魔数。
现在将光盘推入光驱就会听到光驱光驱发出机械响声,随后即可正常吸入光盘。
刻录ISO文件
在Linux环境下有以下光盘刻录软件(gemini对比)
对比维度 |
wodim (cdrecord 派生) |
xorriso |
growisofs |
|---|---|---|---|
主要定位 |
传统 CD/DVD 刻录工具 |
现代 ISO9660 处理与 CD/DVD/BD 刻录全能工具 |
专为 DVD/BD 大容量介质设计的刻录工具 |
支持介质 |
CD-R/RW, DVD-R/RW |
CD, DVD, BD (蓝光) |
DVD-R/RW, DVD+R/RW, BD |
ISO 镜像生成 |
否(需配合 genisoimage / mkisofs) |
是(内置完整 ISO9660/Joliet/RockRidge 操作引擎) |
否(需配合 mkisofs) |
Isohybrid 兼容性 |
一般(对现代混合引导 ISO 容易抛错) |
极佳(原生支持 UEFI/El Torito 引导轨处理) |
良好 |
维护状态 |
停止维护(Fork 自老版 cdrecord,Bug 较多) |
高度活跃(GNU 项目,现代发行版默认推荐) |
维护度低(属于 dvd+rw-tools 包,偶有补丁) |
特点 |
主要针对标准的 CD-R / CD-RW 刻录 |
全能型:兼具 ISO 镜像生成、提取、修改以及 CD/DVD/BD 物理刻录功能,能完美处理 isohybrid(融合 MBR/GPT 分区表和 EFI 引导轨)的镜像写入 |
可以直接将文件系统“边生成边写入”到 DVD 或 BD 介质中,无需先生成临时 ISO 文件,写入大文件和 DVD 镜像时非常稳定 |
注意 |
架构老旧,对大于 4.7GB 的介质支持不佳,且完全停止了积极开发 |
最推荐的现代 Linux 刻录工具 |
适合大容量数据备份、将大型文件直接打包刻录到 DVD 或蓝光光盘中 |
刻录
执行以下命令刻录 Alpine Linux 安装启动光盘(对现代引导格式的兼容性最好)
sudo xorriso -as cdrecord -v dev=/dev/sr0 -eject alpine-standard-3.24.1-x86_64.iso
参考
gemini