Сначала загрузчик (вероятно, LILO или Grub ) использует вызовы BIOS для чтения образа ядра с вашего загрузочного диска. Затем он передает управление ядру, которое он только что поместил в системную память.
Ядро не использует вызовы BIOS для доступа к дискам. Когда ядро загружается, оно сканирует систему на наличие устройств и загружает модули драйверов устройств для каждого устройства в системе, монтирует корневую файловую систему и запускает первый пользовательский процесс.
Но подождите: как ядро загрузило модуль драйвера устройства для дисковой подсистемы? Здесь есть проблема курицы и яйца, когда вам нужен доступ к диску, чтобы получить драйвер устройства, который позволяет получить доступ к диску.
Решение состоит в том, чтобы поместить все эти драйверы в начальный ramdisk (initrd); этот образ виртуального диска считывается загрузчиком и помещается в ОЗУ вместе с ядром, и это дает ядру набор драйверов, необходимый для доступа к корневой файловой системе.
Без этого вам понадобятся все драйверы, необходимые для доступа к корневой файловой системе, встроенной в ядро.