Подробно опишите процесс загрузки системы Linux

14

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

Было бы здорово, если бы мы могли объединить и сопоставить эти правильные ответы здесь в одном месте. Пожалуйста, включите любые детали, которые стоит отметить при запуске. Как только документ будет завершен по всем пунктам, я также опубликую здесь детали документа и обновлю ссылку в вопросе.

Пожалуйста, рассмотрите все возможные сценарии, такие как загрузка с диска, загрузка с USB, загрузка из сети на бездисковом клиенте, где rootfs (/) находится в сети.

Никхил Мулли
источник
3
Судя по этому (включая ссылки) и по этому , вы предлагаете довольно огромный проект ...
sr_
4
Это похоже на домашнее задание / тезис для кого-то еще?
Шадур
1
Разве это не должно быть помечено как вики сообщества?
пользователь неизвестен
4
Я думаю, что это слишком широкий вопрос для SE, существуют огромные различия между дистрибутивами и конфигурациями.
Жиль "ТАК ... перестать быть злым"
1
не могли бы вы опубликовать подготовленный вами документ
Abhishek

Ответы:

7

Вам нужна последовательность загрузки Linux или просто последовательность загрузки с ПК ... потому что нет никакой разницы между загрузкой Linux с usb / cdrom / hdd ... Linux всегда загружается с MBR, где есть загрузчик ...

Процесс загрузки Linux:

  1. При включении питания BIOS получает контроль
  2. BIOS запускает самотестирование, обычно включающее краткие тесты памяти.
  3. Затем BIOS загружает первый сектор диска, который будет использоваться для загрузки, и передает ему управление.
  4. Код MBR варьируется. Одна версия будет привязана к коду в первом секторе загрузочного раздела (Windows), другая загрузит загрузчик. Загрузка Windows происходит из кода и информации в загрузочном разделе.
  5. загрузчик выбирает расположение и версию ядра
  6. загрузчик подготавливает образ ядра и initrd в памяти, передает управление ядру
  7. загрузка модулей ядра
  8. обнаружение оборудования и загрузка дополнительных модулей ядра для его поддержки
  9. ищу диски
  10. R / O монтирование / раздела, чтобы он мог быть потенциально проверен и исправлен
  11. процесс инициации
  12. / etc / inittab чтение и выполнение
  13. монтирование всех файлов FS из / etc / fstab
  14. Запуск уровней выполнения (на основе уровня запуска по умолчанию в / etc / inittab) или другого метода init, такого как systemd или upstart
  15. rc.local
  16. приглашение для входа
Себастьян Сзары
источник
Спасибо @Sebastian, это был хороший список. Я ищу подробные шаги для примера 1: что загружает информацию mbr, до этого, как работают инструкции post и bios; 2. Зачем монтировать / разделить r / o, а затем снова монтировать / разделить чтение / запись .. что такое процесс 0 во всем этом процессе ... но спасибо за ответ.
Нихил Мюлли
@Nikhil относительно процесса 0 ... такого процесса нет, после загрузки ядра у вас есть процесс 1, который является процессом init. Что касается остальных пунктов: 1. проверьте ibm.com/developerworks/library/l-linuxboot/index.html 2. потому что сначала нужно проверить файлы, затем вы можете начать писать на них ... это скорее из соображений безопасности. ..
Себастьян Сзары
На дискетах или компакт-дисках нет MBR. Процесс загрузки cdroms включает файл каталога, который описывает один или несколько многосекторных образов, которые BIOS может выбрать для загрузки и выполнения.
psusi
Что если модули ядра находятся в ext3файловой системе, а ext3модуль ядра еще не загружен? Более того, что, если само ядро ​​находится в файловой системе, которую загрузчик не распознает? Как следующие вещи загружаются в последовательности: загрузка kernel, загрузка bootloader, монтирование /bootдиректории, чтение /etc/fstabфайла и т. Д.
yegle
3

Попробуйте установить и использовать загрузочную диаграмму .

Александр
источник
1
спасибо за указатель, на самом деле я хочу представить потоковый документ для визуализации того, что происходит во время загрузки и какого типа решения принимаются.
Нихил Мулли
1
спасибо @Alexander, я установил его на своей Fedora, и он предоставляет очень подробный PNG
Abhishek