如何使用 dd 对 CD 进行原始写入?

如何使用 dd 对 CD 进行原始写入?

如何对我的 CD 驱动器进行原始写入/dev/scd0?我想将引导加载程序(占用两个扇区)直接写入 CD,可以吗?

答案1

由于 CD 不是传统的块设备,因此通过 dd 写入可能不会产生可用的 CD。如果您想将映像写入 CD,请使用 工具wodim(以前称为cdrecord)。

wodim dev=/dev/cdrom file.iso

Brasero Disc Burner或者,您可以使用Ubuntu 默认安装中包含的图形应用程序。

还要注意的是,与从硬盘等块设备启动相比,从 CD 启动使用的过程不同。它不是仅仅执行映像第一个扇区中的代码,而是利用称为El Torito 可启动 CD 规格。实际上,CD 映像中有一个表格,说明在哪里可以找到适用于一种或多种 CPU 架构的引导加载程序。引导加载程序要么直接存在于 CD 本身上,要么存在于软盘映像中。在后一种情况下,BIOS 会模拟由该映像支持的软盘驱动器并从那里正常启动。

如果你想从 CD 启动 Linux,我建议使用ISOLINUX引导加载程序。可以在软件包中找到引导加载程序的副本syslinux

如果您想使用其他自定义启动代码,软盘仿真模式可能是一个更简单的选择。

答案2

我发现您的方法存在一些缺点......

首先,通常不可能在 CD-ROM 上写入任意扇区 - 与硬盘不同,光学介质不支持随机写入。想想 CD-R 盘、打开/关闭会话和其他东西。

其次,从 CD 启动的过程与从 ​​HD 启动的过程完全不同 - 在某些情况下,可启动 CD-ROM 使用软盘映像或模拟硬盘等。请参阅埃尔托里托标准以了解更多详细信息

因此,要制作可启动 CD,我想您需要使用以下方法准备可启动 ISO 映像:ISOLINUX或其他引导加载程序。使用某些标准程序(例如 Brasero 或 K3b)将该 ISO 刻录到 CDROM 即可生成可引导磁盘。

相关内容