Я новичок в Linux и пытаюсь получить четкое представление о процессах загрузки Linux, прежде чем посещать класс Admin Server Linux, начинающийся в июне.

Настройка вопроса: во время загрузки Linux, после загрузки ядра и initramfs в память ... Затем ядро распаковывает память в /boot /, виртуальную файловую систему на основе RAM через cpio, загружает необходимые модули и многое другое, а затем ....

Ядро выполняет программу /sbin /init.

Вопрос: Ядро выполняет программу "init" из /sbin /init из виртуальной файловой системы на основе ОЗУ, ИЛИ ... с физического диска, так как раздел / уже смонтирован ядром?

.... Когда ядро перестает использовать файловую систему на основе ОЗУ и начинает использовать физический раздел / раздел?

Спасибо, Ингемар

2 ответа2

2

Ядро отказывается от управления с момента первого запуска процесса инициализации, будь то из раздела initramfs или «реального» раздела. Он не загружает модули сам по себе и, безусловно, не делает «другие вещи». Это все процедуры пользовательского пространства.

Initramfs обычно используется, когда для монтирования корневой файловой системы требуется нечто большее, чем просто монтирование основного раздела. После завершения процесса инициализации / скрипта initramfs программа init запускается из корневого раздела с помощью exec() . Это заменяет текущий процесс инициализации. Крайне важно, чтобы программа init никогда не заканчивалась - это приводит к панике ядра.

Проще говоря: если используется initramfs, всегда используется его программа / скрипт init.

0

На моем Kubuntu init запускается из /sbin /init, который является блочным устройством /dev /sda5, смонтированным в /

Команда mount расскажет вам, как монтируются ваши файловые системы. Вполне возможно, что ваш init запускается с ram-диска.

Также ps -aux | grep init говорит мне:

root         1  0.0  0.0  27228  1644 ?        Ss   16:44   0:03 /sbin/init

где init - это PID 1, запускаемый в /sbin /init

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