Cómo / por qué Cat escribe un ISO de arranque en un dispositivo

Recientemente descubrí que puedo crear una llave USB de arranque a partir de un file ISO simplemente usando cat (o dd ).

No puedo encontrar ninguna información sobre cómo funciona esto. Por qué debería:

 cat my.iso > /dev/sdb && sync 

tomar ese file y escribir todos los files que contiene, en formatting de arranque, a un dispositivo?

Un file ISO es una image completa del sistema de files con formatting. All cat o dd does es hacer una copy bit a bit de esa image del sistema de files a su medio de destino.

No hay magia detrás de escena. La preparación del sistema de files ISO se hizo de antemano (a menudo con una herramienta especializada). Todo lo cat hace el cat es escribir esa colección de bytes. No interpreta el .iso en absoluto, ni comprende que está tratando de crear un medio extraíble de arranque en absoluto.
Requiere el soporte adecuado del núcleo y del controller del dispositivo para que las write funcionen en ese medio. Un poco de "magia" sigue ahí, ya que los medios ópticos grabables no funcionan exactamente de la misma manera que los discos duros convencionales. Pero esa magia no implica interpretar el contenido del file ISO.

Puede montar el file .iso directamente sin quemarlo utilizando un assembly de bucle (si tal cosa está disponible en su sistema operativo). Del mismo modo, puede crear un file que contenga, por ejemplo, un sistema de files ext4 , y podría cat en una partición.

Esto funciona porque la image iso se procesó con isohybrid , que instala un gestor de arranque syslinux normal en la image iso. Esto es posible porque iso9660 normalmente no utiliza los primeros sectores de la image, por lo que se puede colocar allí un cargador de arranque de disco duro más o less normal. Cuando se graba en un disco óptico, se ignora y la BIOS arranca el disco utilizando el método convencional de arranque toro cdrom de el torito. Cuando la image se coloca en una unidad flash, se carga el sector de arranque syslinux.