Причина, по которой большинство загрузок Linux использует ramfs (initramfs) при загрузке, заключается в том, что ее содержимое может быть включено в файл ядра или предоставлено загрузчиком. Поэтому они доступны сразу при загрузке, без необходимости загружать их из ядра.
Это позволяет ядру запускать программы пользовательского пространства, например. настраивать устройства, загружать модули, настраивать этот отличный RAID-массив, содержащий все файловые системы, или даже запрашивать у пользователя пароль для его зашифрованной корневой файловой системы.
Когда эта конфигурация завершена, первый скрипт, который называется только exec() s/sbin/init из корневой файловой системы (теперь настроенной и доступной).
Я видел довольно много систем, в которых драйверы для дисковых контроллеров и корневых серверов загружаются через модули в initramfs, а не включаются в образ ядра.
Вы не строго необходимость Н. initramfs для загрузки - если ваш образ ядра содержит все необходимые драйверы для доступа к корневой файловой системы, и вам не нужно никакой специальной конфигурации или пользовательского ввода (например, RAID массивы или шифрованные файловые системы) для установки он часто может напрямую запускать/sbin/init из rootfs.
Смотрите также:
http://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
http://www.kernel.org/doc/Documentation/initrd.txt
Как примечание стороны, некоторые системы (аварийно-спасательных дисков, встроенных и такой) может Используйте RamFs в качестве корневой файловой системы, когда фактическая корневая файловая система в среде, которая может быть удалена или недоступна для записи (CD, Flash MTD и т. д.).
BTW, init ramdisks (как и в устройствах на основе rambl_), также известные как initrds, на самом деле не используются с современными версиями ядра. Они были заменены файловой системой на основе ram (ramfs). – thkala