История изменений
Исправление mky, (текущая версия) :
В что-то странное пишете:
ещё 2047 секторов
код bootloader
параметры загрузки ядра, в том числе, на каком разделе и в каком файле искать ядро
Если загрузчик типа lilo, то он не знает про файлы, там в ″код bootloader″ или даже в первый сектор, 512 байт, записывается номер (LBA) сектора, в котором лежат номера секторов с ядром и initramfs и остальная часть загрузчика. То есть при установке определяются номера (адреса) секторов, занятые файлом с ядром и пр. и записываются в файл, а номер сектора с этим файлом записывается в код загрузчика. И после установки загрузчика файлы с ядром нельзя двигать на уровне секторов.
У таких загрузчиков нету «в каком файле искать ядро», они не работают на уровне ФС, при установке загрузчика (обработке конфига) имена файлов превращаются в набор номеров секторов.
А загрузчики типа grub понимают ФС, понимают, что там есть файлы. В случае современного grub (он же grub2), в эти условные 2047 секторов ложится core.img, в который входят драйвера разделов диска, файловых систем и типа «адрес» каталога grub, в котором лежит grub.cfg и другие модули (драйверы) grub. И grub читает этот файл именно как файл, разбирая структуру ФС. В grub.cfg прописаны параметры загрузки ядра и пр., а не в неразмеченой области диска. А адрес может быть типа (0,gpt3)/grub — третий gpt-раздел текущего диска или (mduuid/12345...73b)/boot/grub — каталог на mdraid с uuid 12345...73b.
core.img лежит в /boot/grub/i386-pc/ и его можно поизучать без дампа неразмеченой области. Где-то был скрипт, разбирающий этот файл, в том числе, ЕМНИП, вытаскивающий этот «адрес» каталога grub. Просто так этот в случае i386-pc этот файл грепать смысла нет, он по умолчанию сжатый.
Исходная версия mky, :
В что-то странное пишете:
ещё 2047 секторов
код bootloader
параметры загрузки ядра, в том числе, на каком разделе и в каком файле искать ядро
Если загрузчик типа lilo, то он не знает про файлы, там в ″код bootloader″ записывается номер сектора, в котором лежат номера секторов с ядром и initramfs. То есть при установке определяются номера (адреса) секторов, занятые файлом с ядром и пр. и записываются в файл, а номер сектора с этим файлом записывается в код загрузчика. И после установки загрузчика файлы с ядром нельзя двигать на уровне секторов.
В случае современного grub (он же grub2), в эти условные 2047 секторов ложится core.img, в которых входят драйвера разделов диска, файловых систем и типа «адрес» каталога grub, в котором лежит grub.cfg и другие модули (драйверы) grub. И grub читает этот файл именно как файл, разбирая структуру ФС. В grub.cfg прописаны параметры загрузки ядра и пр., а не в неразмеченой области диска. А адрес может быть типа (0,gpt3)/grub — третий gpt-раздел текущего диска или (mduuid/12345...73b)/boot/grub — каталог на mdraid с uuid 12345...73b.