Recientemente descubrí que puedo crear una llave USB de arranque a partir de un archivo 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 archivo y escribir todos los archivos que contiene, en formato de arranque, en un dispositivo?
cat
en lugar dedd
cuando hago liveUSBsRespuestas:
Un archivo ISO es una imagen de sistema de archivos completa y formateada. Todo
cat
odd
hace es hacer una copia bit a bit esa imagen del sistema de archivos de medios a sus destinatarios.No hay magia detrás de escena. La preparación del sistema de archivos ISO se realizó de antemano (a menudo por una herramienta especializada). Todo lo que
cat
hace es escribir esa colección de bytes. No interpreta.iso
en absoluto, ni entiende que está tratando de crear un medio extraíble de arranque en absoluto.Requiere el soporte adecuado del núcleo y el controlador del dispositivo para que el
write
s funcione en ese medio. Sigue un poco de "magia", 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 archivo ISO.Puede montar el
.iso
archivo directamente sin grabarlo utilizando un montaje en bucle (si tal cosa está disponible en su sistema operativo). Del mismo modo, puede crear un archivo que contenga, por ejemplo, unext4
sistema de archivos, y podríacat
hacerlo en una partición.fuente
Esto funciona porque la imagen iso se procesó con
isohybrid
, lo que instala un cargador de arranque syslinux normal en la imagen iso. Esto es posible porque iso9660 normalmente no utiliza los primeros sectores de la imagen, por lo que se puede colocar un cargador de arranque de disco duro más o menos normal. Cuando se graba en un disco óptico, se ignora y la BIOS inicia el disco utilizando el método de arranque convencional el torito cdrom. Cuando la imagen se coloca en una unidad flash, se carga el sector de arranque syslinux.fuente