Загрузочный сектор ядра Linux (vmlinuz) в системе x86 с форматом bzImage

Загрузочный сектор ядра Linux (vmlinuz) в системе x86 с форматом bzImage

Используя HEX-просмотрщик, я смотрю на vmlinuz Linux kernel 3.14.28 в архитектуре X86, которая находится в формате bzImage. Загрузочный сектор файла выглядит так:

введите описание изображения здесь

Он определяет два раздела: раздел 1 с файловой системой Ext2 размером 18,9 ГБ, который является активным, и расширенный раздел без логических разделов внутри. Означает ли это, что ядро ​​Linux предполагает, что пользователь создал эти два раздела в своей системе? Почему ядро ​​Linux определило эти два раздела?

решение1

Этот блок данных в основном является реликтом тех дней, когда Linux загружался с дискет и не нуждался в загрузчике. Это действительно загрузочный сектор, но реальный код режима x86 при выполнении просто говорит: "Используйте загрузчик. Извлеките диск и нажмите любую клавишу для перезагрузки".

Данные в конце не являются таблицей разделов, но пространство в конце использовалось для передачи таких настроек, как режим VGA, корневое устройство и некоторые флаги ядру. Если вы изучите значения немного внимательнее, вы увидите, что они не имеют смысла как таблица разделов.

Однако загрузочный блок все еще имеет некоторое значение, поэтому я и сказал выше "в основном". Начало файла тщательно продумано, чтобы также выглядеть как приложение UEFI, что позволяет ядру функционировать как собственный загрузчик. Файл начинается с магической строки MZ (как и DOS .exe) и содержит заголовок PE/COFF.

Связанный контент