cat
我最近发现只需使用(或) ,即可从 ISO 文件创建可启动 USB 闪存盘dd
。
我找不到任何有关其工作原理的信息。为什么会:
cat my.iso > /dev/sdb && sync
获取该文件并将其包含的所有文件以可启动格式写入设备?
答案1
ISO 文件是完整的格式化文件系统映像。它cat
所做dd
的就是将该文件系统映像逐位复制到目标媒体。
幕后并没有发生任何魔法。 ISO 文件系统的准备工作是事先完成的(通常通过专门的工具)。所做cat
的就是将字节集合写出。它根本不解释.iso
,也不理解它正在尝试创建可启动的可移动介质。
它确实需要内核和设备驱动程序的适当支持才能使该write
介质在该介质上工作。这里有一点“魔力”,因为可写光学介质的运行方式与传统硬盘驱动器不完全相同。但这种魔力并不涉及解释 ISO 文件的内容。
您可以.iso
使用循环挂载(如果您的操作系统上有这样的功能)直接挂载该文件,而无需刻录它。类似地,您可以创建一个包含文件系统等的文件ext4
,并将cat
其添加到一个分区。
答案2
这是可行的,因为 iso 映像是用 处理的isohybrid
,它将普通的 syslinux 引导加载程序安装到 iso 映像中。这是可能的,因为 iso9660 通常不使用映像的前几个扇区,因此可以将或多或少正常的硬盘引导加载程序放置在那里。当刻录到光盘时,它会被忽略,BIOS 使用传统的 el torito cdrom 引导方法来引导光盘。当映像被放置在闪存驱动器上时,syslinux 引导扇区被加载。