usb启动机制和光盘启动机制有什么区别?

n00*_*let 17 boot iso-image usb-boot

许多 linux/bsd 发行版都有单独的 usb 和 dvd 图像,并且写入 dvd 图像似乎不起作用。这两种机制有什么根本区别?

saw*_*ust 17

首先,USB 的意思是通用串行总线。它是控制和数据总线的标准,就像 PCIe、PCI、EISA 和 ISA 都是总线一样。USB 不是一种设备,如 CD 或 DVD 驱动器。(光驱通常使用带有 ATA 协议的 SATA 或 IDE 总线。)当您使用或提及 USB 时,您可能实际上指的是一个附加设备(又名 USB 小工具)。

在这种情况下,您可能指的是 USB 闪存驱动器,它基本上模拟了典型的硬盘驱动器。如果 PC 的 BIOS 支持从 USB 设备启动,则意味着 BIOS 具有包含USB 协议栈的嵌入式固件,并且可以通过通用串行总线控制闪存驱动器等目标设备。在USB 主机(需要启动的 PC)和USB 小工具(闪存驱动器)之间建立 USB 握手协议后,USB提供的控制和数据机制可以被抽象掉,并且上层 BIOS 启动代码可以像对待硬盘一样对待闪存驱动器。也就是说,必须读取“磁盘驱动器”的第一个扇区才能获得其主引导记录 (MBR)。

光盘不符合PC硬盘布局(零扇区没有MBR)。事实上,光盘有多种格式,但 PC 常用的数据布局是 CD 的 ISO 9660 格式。从 CD/DVD 引导的要求在ISO 9660标准中有详细说明。

如果 BIOS 支持设备,不同启动设备之间的数据传输速率和物理容量差异基本上变得无关紧要。每个受支持的引导设备的 I/O 特性都必须考虑在内,并在 BIOS 的低级设备驱动程序代码中进行处理。请注意,大多数 PC 也可以从以太网网络接口卡 (NIC) 启动,并且该接口与 CD/DVD 和 HDD 有很大不同。然而,软件实现的分层方法将所有低级 I/O 和协议处理委托给较低层,并且 BIOS 可以继续加载和执行引导加载程序的下一阶段。请注意,某些设备差异已被参数化。也就是说,设备的柱面数、磁头数、扇区/磁道数和扇区大小在设备驱动程序中没有硬编码,

...写入 DVD 映像(到 USB 闪存驱动器)似乎不起作用。

这两种媒体布局之间的差异可以通过将两者组合成一个合并的图像文件来消除,该文件可以复制到 CD/DVD 或 HDD/闪存驱动器。ISO 映像(用于刻录到 CD 或 DVD 以制作可启动光盘)可以修改为直接复制到 HDD 或 USB 闪存驱动器以生成混合 ISO/IMG 映像

Hybrid ISO/IMG 格式是对标准 ISO 格式的修改,使镜像符合硬盘启动的预期

标准 ISO 映像通常包括 ISOLINUX 引导加载程序,该加载程序由 BIOS 使用 El Torito 引导标准加载。混合映像用 PC 硬盘驱动器主引导记录 (MBR) 替换 ISO 格式的前 512 个字节(全部为二进制零),其中包含: 来自 GRUB 0.97 版的 stage 1 加载程序映像,以及具有 1 个分区的分区表在混合图像的末尾结束。ISO 映像的其余部分不会被修改。

在 ISO 映像的末尾添加了其他扇区。