Система загрузки файлов запуска в Linux работает следующим образом: 13
- Загрузчик. 1 Во время старта машины BIOS передаёт управление загрузчику. 1 Обычно в качестве загрузчика используется Grub. 1 Как только пользователь выбирает нужный пункт меню (либо по истечении тайм-аута), Grub находит связанный с этим пунктом меню образ ядра Linux на диске (обычно это файл /boot/vmlinuz), а также закреплённый за ним образ initramfs, загружает их в память и передаёт управление ядру. 1
- Ядро и initramfs. 1 Получив управление, ядро начинает первичную инициализацию: запускается подсистема управления памятью, настраивается обработчик прерываний, инициализируются необходимые для дальнейшей работы ядра структуры данных. 1 Когда эта работа будет закончена, ядро распаковывает архив initramfs в файловую систему в оперативной памяти (tmpfs), делает её корневой файловой системой и запускает скрипт /init (в различных дистрибутивах имя может отличаться). 1
- Скрипт /init. 1 Он определяет установленные в систему накопители, загружает в ядро драйверы для работы с ними, а затем подключает нужный раздел нужного накопителя (о том, какой именно, ядро узнаёт благодаря переданному при загрузке параметру root) к корню, перекрывая таким образом содержимое initramfs. 1 Затем скрипт запускает /sbin/init, с которого и начинается следующий шаг загрузки ОС. 1
В различных дистрибутивах Linux процесс загрузки может несколько изменяться, но общая схема примерно одинакова. 2