cat 如何/为什么将可引导 ISO 写入设备

15 iso cat

我最近发现我可以通过简单地使用cat(或dd)从 ISO 文件创建一个可启动的 USB 密钥。

我找不到有关其工作原理的任何信息。为什么会:

cat my.iso > /dev/sdb && sync
Run Code Online (Sandbox Code Playgroud)

获取该文件并将其包含的所有文件以可引导格式写入设备?

Mat*_*Mat 15

ISO 文件是一个完整的、格式化的文件系统映像。所有catdd所做的就是将该文件系统映像逐位复制到您的目标媒体。

幕后没有魔术。ISO 文件系统准备工作是事先完成的(通常由专门的工具完成)。所有cat确实是写的是收集字节出来。它根本不解释.iso,也不明白它正在尝试创建可启动的可移动媒体。
它确实需要内核和设备驱动程序的适当支持才能使writes 在该媒体上工作。那里有一些“魔力”,因为可写光学媒体与传统硬盘驱动器的操作方式并不完全相同。但是这种魔法并不涉及解释 ISO 文件的内容。

您可以.iso使用循环挂载直接挂载文件,而无需刻录它(如果您的操作系统上有这样的功能)。同样,您可以创建一个包含例如ext4文件系统的文件,并且您可以将cat其添加到分区中。


psu*_*usi 7

这是有效的,因为 iso 映像是用 处理的isohybrid,它将一个普通的 syslinux 引导加载程序安装到 iso 映像中。这是可能的,因为 iso9660 通常不使用映像的前几个扇区,因此可以在那里放置或多或少的普通硬盘引导加载程序。当刻录到光盘时,它被忽略,BIOS 使用传统的 el torito cdrom 引导方法引导光盘。将映像放置在闪存驱动器上时,将加载 syslinux 引导扇区。