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