Поиск по сайту:

Базовое руководство по различным этапам процесса загрузки Linux


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

В этом руководстве мы опишем различные шаги, выполняемые ОС Linux с момента ее включения до момента входа в систему. Обратите внимание, что в этом руководстве учитываются только загрузчик GRUB2 и GRUB2.systemd init, поскольку в настоящее время они используются подавляющим большинством современных дистрибутивов Linux.

Процесс загрузки состоит из следующих 4 шагов, которые мы обсудим более подробно:

  • BIOS Проверка целостности (POST)
  • Загрузка загрузчика (GRUB2)
  • Инициализация ядра
  • Запускаем systemd, родительский элемент всех процессов.

1. Проверка целостности BIOS (POST).

Процесс загрузки обычно инициализируется, когда пользователь нажимает кнопку включения (если компьютер уже был выключен) или перезагружает систему с помощью графического пользовательского интерфейса или командной строки.

При включении системы Linux BIOS (Базовая система ввода-вывода) срабатывает и выполняет Самотестирование при включении питания (POST ). Это проверка целостности, которая выполняет множество диагностических проверок.

POST проверяет работоспособность оборудования таких компонентов, как HDD или SSD, Клавиатура, RAM<, порты USB и любое другое оборудование. Если какое-либо аппаратное устройство не обнаружено или в каком-либо из устройств возникла неисправность, например, поврежденный жесткий диск или твердотельный накопитель, на экране появится сообщение об ошибке, предлагающее ваше вмешательство.

В некоторых случаях раздается звуковой сигнал, особенно в случае отсутствия модуля оперативной памяти. Однако если ожидаемое оборудование присутствует и работает должным образом, процесс загрузки переходит к следующему этапу.

2. Загрузчик (GRUB2)

После завершения POST и отсутствия проблем BIOS проверяет MBR (Основную загрузочную запись) на наличие информация о загрузчике и разделах диска.

MBR — это 512-байтовый код, расположенный в первом секторе жесткого диска. Обычно это /dev/sda или /dev/hda в зависимости от архитектуры вашего жесткого диска. Однако учтите, что иногда MBR может находиться на Live USB или DVD установленном Linux.

В Linux существует три основных типа загрузчиков: LILO, GRUB и GRUB2. Загрузчик GRUB2 является новейшим и основным загрузчиком в современных дистрибутивах Linux, и он определяет наше решение исключить два других, которые с течением времени устарели.

GRUB2 означает GRand Unified Bootloader версии 2. Как только BIOS находит загрузчик grub2, он запускается и загружает его в основную память (ОЗУ).

Меню grub2 позволяет вам сделать несколько вещей. Он позволяет вам выбрать версию ядра Linux, которую вы хотите использовать. Если вы обновляли свою систему пару раз, вы можете увидеть в списке разные версии ядра. Кроме того, он дает вам возможность редактировать некоторые параметры ядра, нажимая комбинацию клавиш клавиатуры.

Кроме того, в настройке с двойной загрузкой, когда у вас установлено несколько ОС, меню grub позволяет вам выбрать, в какую ОС загружаться. Файл конфигурации grub2 — это файл /boot/grub2/grub2.cfg. Основная цель GRUB — загрузить ядро Linux в основную память.

3. Инициализация ядра

Ядро — это ядро любой системы Linux. Он связывает аппаратное обеспечение ПК с базовыми процессами. Ядро контролирует все процессы в вашей системе Linux. После того как выбранное ядро Linux загружается загрузчиком, оно должно самостоятельно распаковать свою сжатую версию, прежде чем приступить к выполнению какой-либо задачи. При самораспаковке выбранное ядро монтирует корневую файловую систему и инициализирует программу /sbin/init, обычно называемую init.

Init всегда выполняется первой программой, и ему присваивается идентификатор процесса или PID, равный 1. Это процесс инициализации, который запускает различные демоны и монтирует все разделы, указанные в файле /etc/. fstab.

Затем ядро монтирует исходный RAM-диск (initrd), который является временной корневой файловой системой до тех пор, пока не будет смонтирована реальная корневая файловая система. Все ядра располагаются в каталоге /boot вместе с исходным образом RAM-диска.

4. Запуск Systemd

Наконец ядро загружает Systemd, который заменяет старый SysV init. Systemd является матерью всех процессов Linux и управляет, среди прочего, монтированием файловых систем, запуском и остановкой служб, и это лишь некоторые из них.

Systemd использует файл /etc/systemd/system/default.target для определения состояния или цели, в которую должна загрузиться система Linux.

  • Для настольной рабочей станции (с графическим пользовательским интерфейсом) целевое значение по умолчанию — 5, что эквивалентно уровню запуска 5 для старой инициализации SystemV.
  • Для сервера целью по умолчанию является multi-user.target, что соответствует уровню запуска 3 в инициализации SysV.

Вот разбивка целей systemd:

  • poweroff.target (уровень запуска 0): выключить или завершить работу системы.
  • rescue.target (уровень выполнения 1): запускает сеанс оболочки восстановления.
  • multi-user.target (уровни запуска 2,3,4): настраивает систему на неграфическую (консольную) многопользовательскую систему.
  • graphical.target (уровень запуска 5): настройте систему на использование графического многопользовательского интерфейса с сетевыми службами.
  • reboot.target (уровень запуска 6): перезагружает систему.

Чтобы проверить текущую цель в вашей системе, выполните команду:

systemctl get-default

Вы можете переключиться с одной цели на другую, выполнив на терминале следующую команду:

init runlevel-value

Например, init 3 настраивает систему в неграфическое состояние.

Команда init 6 перезагружает вашу систему, а команда init 0 выключает систему. Обязательно вызывайте команду sudo, если хотите переключиться на эти две цели.

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