initrd/initramfs является необязательным и необязательным. bzImage — это чистый образ ядра, который может быть загружен непосредственно загрузчиком. Однако может потребоваться выполнение некоторых задач (загрузка модулей файловой системы, драйверов для доступа к диску, монтирование корневой файловой системы с какого-либо сменного носителя без фиксированного имени/пути и т. д.), которые обычно требуют доступа к файловой системе и инструментам пользовательского пространства.
Вот для чего нужен initramfs: это CPIO-архив, который прикрепляется к образу ядра (образ ядра является контейнером для initramfs, а не наоборот) либо в самом образе ядра, либо с помощью загрузчик во время загрузки.
Этот архив CPIO содержит начальную корневую файловую систему с модулями, необходимыми для настройки всех устройств для доступа к правильной корневой файловой системе, а также некоторые программы для идентификации этих устройств, загрузки модулей, выполнения некоторых других задач запуска, перемонтирования правильной корневой файловой системы в / и запуска /sbin /в этом
initrd аналогичен, с той лишь разницей, что это образ файловой системы, который может быть и обычно сжат. Ядро должно иметь встроенную поддержку используемой файловой системы и смонтирует этот образ как начальный /.
Поскольку CPIO на несколько порядков проще, initramfs предпочтительнее, чем initrd, поскольку это избавляет от необходимости встраивать какие-либо модули файловой системы, а также упрощает создание initramfs. Вместо того, чтобы создавать образ ext2, монтировать loopdevice и заполнять его, все сводится к простому созданию архива, мало чем отличающемуся от использования tar.
Однако, если вы скомпилируете ядро со всеми необходимыми драйверами и модулями, встроенными в образ ядра, и ваше устройство с корневой файловой системой имеет фиксированное имя в системе, вам не нужен initramfs, поскольку тогда ядро может делать что-то само по себе.
person
datenwolf
schedule
19.06.2011
initrd=...
из загрузчика? В принципе, initrd необязателен, если в вашем ядре собраны все необходимые драйверы для поиска корневой файловой системы. Кроме того, как это вопрос программирования? - person Kerrek SB   schedule 20.06.2011