%20en%20sistema%20x86%20con%20formato%20bzImage.png)
Usando un visor HEX, estoy viendo el kernel vmlinuz Linux 3.14.28 en arquitectura X86 que está en formato bzImage. El sector de arranque del archivo se ve así:
Define dos particiones: la partición 1 con un sistema de archivos Ext2 de 18,9 GB de tamaño que está activa y una partición extendida sin particiones lógicas en su interior. ¿Significa esto que el kernel de Linux supone que el usuario ha creado estas dos particiones en su sistema? ¿Por qué el kernel de Linux ha definido estas dos particiones?
Respuesta1
Este bloque de datos es principalmente una reliquia de los días en que Linux arrancaba desde disquetes y no necesitaba un cargador de arranque. De hecho, es un sector de arranque, pero el código x86 en modo real, cuando se ejecuta, simplemente dice "Use un cargador de arranque. Retire el disco y presione cualquier tecla para reiniciar".
Los datos al final no son una tabla de particiones, pero el espacio al final se usó para transmitir configuraciones como el modo VGA, el dispositivo raíz y algunas banderas al kernel. Si estudias los valores un poco más de cerca, verás que no tienen sentido como tabla de particiones.
Sin embargo, el bloque de arranque todavía tiene algún significado, por eso dije "principalmente" arriba. El inicio del archivo está cuidadosamente diseñado para que también parezca una aplicación UEFI, lo que permite que el propio kernel funcione como su propio cargador de arranque. El archivo comienza con la cadena mágica MZ (como un .exe de DOS) y contiene un encabezado PE/COFF.