Меня немного смущают initramfs и initrd, если они одно и то же. Загружает ли initramfs сначала в память, затем ядро загружается в память, а затем ядро загружает драйверы из файла образа initramfs, включая процесс systemd.

или оба grub загружают оба initramfs и ядро в память одновременно. затем ядро извлекает содержимое в initramfs для продолжения запуска systemd

Содержимое моего /boot:

1 ответ1

1

Меня немного смущают initramfs и initrd, если они одно и то же.

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

Initrd - это начальный виртуальный диск. RAM-диск - это блочное устройство, которое существует в памяти, обычно выделяется из основной памяти, в отличие от блочного устройства, которое использует запоминающее устройство большой емкости. Использование initrd в Linux не рекомендуется в пользу initramfs.

Initramfs - это начальный ramfs. Ramfs использует существующий кеш файловой системы в качестве носителя данных. Ramfs может хранить столько данных, сколько доступно памяти.

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

Нет, поскольку ваше описание не имеет смысла (например, "initramfs загружается в память").
Загрузочная программа (например, Grub, U-Boot) должна загрузить ядро в основную память с загрузочного устройства.
Если есть initrd, то загрузочная программа также должна загрузить файл образа этого.

или оба grub загружают оба initramfs и ядро в память одновременно. затем ядро извлекает содержимое в initramfs для продолжения запуска systemd

Близко.
Если вместо initrd есть initramfs, архив образа cpio будет связан с образом ядра. Во время загрузки ядро создает пустой initramfs. Прикрепленный архив cpio затем извлекается для заполнения начальных ramfs.


Официальная документация по Linux находится здесь с более подробной информацией.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .