Вы когда-нибудь интересовались различными стадиями развития Linux — операционной системы с открытым исходным кодом? Знание всего процесса загрузки может помочь вам устранить неполадки, особенно если вы администратор.
Что происходит за кулисами, когда вы включаете устройство? Читайте дальше, чтобы узнать.
БИОС
Базовая система ввода-вывода (BIOS) — это часть низкоуровневой прошивки, хранящаяся на небольшой микросхеме памяти на материнской плате вашего компьютера. Эта прошивка облегчает процесс запуска и управляет потоком данных между вашим устро
Contents
БИОС
ими подключенными устройствами, такими как мышь, принтер и видеоадаптер.Основная функция BIOS, показанная выше, — запуск самотестирования при включении питания (POST). Этот тест проверяет работоспособность аппаратного обеспечения системы и находит загрузочный сектор, содержащий необходимое для остальной части процесса программное обеспечение. Если POST пройден успешно, BIOS загрузит следующий этап — загрузчик Stage One — в оперативную память системы.
Если POST не завершится успешно, BIOS вернет код, который можно использовать для устранения неполадок.
Загрузчик первого этапа
Первый этап загрузчика, называемый Основная загрузочная запись (MBR) или управляемая таблица разделов (GPT) , предназначен для подключения программы к сети.
MBR — это простая программа, не имеющая встроенного понимания файловых систем. В результате вам всегда нужно будет хранить загрузчик второго этапа между MBR и первым разделом на жестком диске.
Как только MBR обнаруживает загрузчик второго этапа, он передает управление.
Загрузчик второго этапа
Задача загрузчика второго этапа — найти ядро и загрузить его в память.
Большинство подразделений Linux будут использовать один из трех разных загрузчиков — GRUB, GRUB2 или LIL. Скорее всего, вы увидите GRUB2, изображенный ниже, поскольку он самый новый.
Загрузчик первого этапароцесс загрузки Linux Grub2">
Как только загрузчик нашел ядро и загрузил его в ОЗУ, он передает управление. Он также отправляет образ файловой системы вашего устройства, который ядро может использовать для поиска модулей.
Ядро
Поскольку все ядра существуют в сжатом формате для экономии места на жестком диске, первое, что оно сделает, получив контроль, — это самоизвлечение. Затем он смонтирует версию образа файловой системы, полученную от загрузчика.
Ядро определит аппаратное обеспечение системы и заменит образ в корневой файл на диске.
инициализация (systemd)
Далее ядро запустит систему инициализации (init) — первый процесс, который порождает все процессы, необходимые для процесса загрузки. В большинстве систем это будет системный .
Основная функция Systemd — запуск всех демонов (фоновых процессов и служб), необходимых для работы сис
Загрузчик второго этапа
ь работать после инициализации и управлять важными системными процессами, такими как регистрация различных системных сообщений, отслеживание устройств и обеспечение синхронизации файловой системы с системной памятью.Если вас интересует какие службы запускает systemd , запуск команды systemctl
вернет полный список.
Вы также можете использовать systemd для запуска других служб при загрузке, используя комбинацию команды systemctl и службы, которую вы хотите запустить. Например, если вы хотите, чтобы система проверяла состояние NFS, вы можете ввести systemctl status nfs-server.service
. Вы также можете использовать start
, stop
, enable
или disable
с помощью комбинации systemctl и одной из этих команд..
Уровень выполнения
Уровень запуска — это состояние INIT, и ваша система определяет, какие службы работают. Ста
Ядро
Linux поддерживает семь различных уровней выполнения:- 0: Система остановлена, готова к выключению
- 1 : однопользовательский режим
- 2: Многопользовательский режим, без сетевой файловой системы.
- 3: Многопользовательский режим с использованием командного интерфейса вместо графического пользовательского.
- 4: Определяется пользователем
- 5: Многопользовательский режим с использованием графического пользовательского инт
инициализация (systemd)
тем Linux загружается по умолчанию. - 6: Перезагрузка
Если вам по какой-либо причине необходимо изменить уровень выполнения, INIT будет нести ответственность за его изменение с помощью команды telinit
, показанной выше.
Разбивка процесса загрузки
Эта разбивка представляет собой просто обзор процесса загрузки Linux и не учитывает некоторые более мелкие детали. Тем не менее, он должен предоставить вам информацию, необходимую для устранения любых проблем, с которыми вы можете столкнуться.