boot - CD/DVD 引导扇区

标签 boot dvd cd-rom

谁能给我解释一下 CD/DVD 引导扇区是如何工作的?我从 ISO 镜像中提取了一些引导扇区,发现其中一些有 6 个扇区长,有些有 8 个扇区。我尝试查找,但没有结果。 CD/DVD 引导扇区的最小(最大)长度是多少?是否必须以 0x55 0xAA 结尾?

最佳答案

可启动 ISO 9660 镜像与软盘和硬盘等其他介质有很大不同。在后一种情况下,BIOS 加载单个 512 字节扇区,验证最后 55 AA 字节,然后跳转到它加载的内容。

El Torito 是为 PC 定义可启动 ISO 9660 镜像的扩展,支持各种启动方法。其中四种方法模拟软盘(1.2M、1.44M、2.88M)和硬盘引导扇区; BIOS 会将第一个软盘或硬盘映射到 CD-ROM,以便您可以将可启动软盘或小型可启动硬盘转换为 ISO 镜像。最后一种方法称为 native 引导。 native 引导扇区的长度可以是 1-65535 扇区之间的任意值,或最大 32 MiB。 native 引导扇区不必以 55 AA 结尾。

ISO 9660 native 扇区几乎始终为 2048 字节,因此 native 引导扇区通常为 4 个扇区长 (512 * 4 == 2048)。

您可以在此处找到更多信息,包括 El Torito 标准的链接:
http://wiki.osdev.org/ISO_9660
http://wiki.osdev.org/El-Torito
https://en.wikipedia.org/wiki/El_Torito_(CD-ROM_standard)

此外,本文档还显示了 El Torito 的二进制结构:
http://fossies.org/linux/xorriso/doc/boot_sectors.txt

关于boot - CD/DVD 引导扇区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33702829/

相关文章:

C#:尽可能高效地将大量文件放入 DVD 的代码

video - 将 DVD VIDEO_TS 目录转换为单个 mp4 或 mkv 文件?

windows - 如何使用 Dragon NaturallySpeaking 的高级脚本弹出 CD-ROM 驱动器?

linux - 可以加载到RAM中的可引导Linux镜像

mysql - 重启后无法连接到MySQL服务器: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

boot - GRUB2 UEFI 加载程序如何知道在哪里查找配置文件(或第二阶段的文件所在的位置)?

c - 这个文件不应该以汇编语言开头吗

ffmpeg - 创建简单的 DVD 结构?

c# - 检测磁盘是否为闪存驱动器

c - 如何对音频 CD 驱动器使用 ioctl() 函数