Thank you for reading this post, don't forget to subscribe!
Существует 4 различных этапа, которые каждый дистрибутив Linux проходит в своем типичном процессе загрузки.
это руководство учитывает только загрузчик GRUB2 и systemd init, поскольку они используются в настоящее время подавляющим большинством современных дистрибутивов Linux.
Процесс загрузки состоит из следующих 4 шагов, которые мы обсудим более подробно:
- Проверка целостности BIOS (POST)
- Загрузка загрузчика (GRUB2)
- Инициализация ядра
- Запуск systemd, родителя всех процессов
1. Проверка целостности BIOS (POST)
Процесс загрузки обычно инициализируется, когда пользователь нажимает кнопку включения – если компьютер уже был выключен – или перезагружает систему с помощью графического интерфейса или командной строки.
Когда система Linux включается, включается BIOS (базовая система ввода-вывода) и выполняет самотестирование при включении – Power On Self Test (POST).
Это проверка целостности, которая выполняет множество диагностических проверок.
POST проверяет работоспособность оборудования таких компонентов, как жесткий или твердотельный накопитель, клавиатуры, оперативной памяти, порты USB и любое другое оборудование.
Если какое-либо аппаратное устройство не обнаружено или если в каком-либо из устройств возникла неисправность, например, поврежденный жесткий диск или твердотельный накопитель, на экране появится сообщение об ошибке, предлагающее вам вмешаться в процесс.
В некоторых случаях раздается звуковой сигнал, особенно в случае отсутствия модуля RAM.
Однако, если ожидаемое оборудование присутствует и функционирует должным образом, процесс загрузки переходит к следующему этапу.
2. Загрузчик (GRUB2)
После завершения POST система проверяет MBR (главную загрузочную запись) на предмет загрузчика и информации о разделах диска.
MBR – это 512-байтовый код, расположенный в первом секторе жесткого диска, обычно это /dev/sda или /dev/hda, в зависимости от архитектуры вашего жесткого диска.
Обратите внимание, однако, что иногда MBR может находиться на Live USB или DVD-диске Linux.
В Linux есть 3 основных типа загрузчиков: LILO, GRUB и GRUB2.
Загрузчик GRUB2 – это последний и основной загрузчик в современных дистрибутивах Linux.
GRUB2 означает GRand Unified Bootloader version 2.
Как только BIOS обнаруживает загрузчик grub2, он запускается и загружает его в основную память (RAM).
Меню grub2 позволяет вам делать несколько вещей.
Оно позволяет вам выбрать версию ядра Linux, которую вы хотите использовать.
Если вы несколько раз обновляли свою систему, вы можете увидеть в списке разные версии ядра.
Кроме того, он дает вам возможность редактировать некоторые параметры ядра, нажимая комбинацию клавиш клавиатуры.
Основная цель GRUB – загрузить ядро Linux в основную память.
3. Инициализация ядра
Kernel – это ядро любой системы Linux.
Оно связывает оборудование ПК с базовыми процессами.
Ядро контролирует все процессы в вашей системе Linux.
После того, как выбранное ядро Linux загружено загрузчиком, оно должно самораспаковаться из сжатой версии перед выполнением любой задачи.
После самораспаковывания выбранное ядро монтирует корневую файловую систему и инициализирует программу /sbin/init, обычно называемую init.
Это процесс init, который порождает различных демонов и монтирует все разделы, указанные в файле /etc/fstab.
Затем ядро монтирует начальный RAM-диск (initrd), который является временной корневой файловой системой, пока не будет смонтирована настоящая корневая файловая система.
4. запуск Systemd
Наконец, ядро загружает Systemd, заменяющий старый SysV init.
Systemd является матерью всех процессов Linux и управляет, среди прочего, монтированием файловых систем, запуском и остановкой служб, и это лишь некоторые из ее обязанностей.
Systemd использует файл /etc/systemd/system/default.target для определения состояния или уровня, в котором должна загружаться система Linux.
- Для настольной рабочей станции (с графическим интерфейсом пользователя) целевое значение по умолчанию – 5, что эквивалентно уровню выполнения 5 для старого SystemV init.
- Для сервера по умолчанию является multi-user.target, что соответствует уровню выполнения 3 в SysV init.
Чтобы проверить текущий уровень в вашей системе, выполните команду:
1 |
$ systemctl get-default |
Вы можете переключаться с одного уровня на другой, выполнив на терминале следующую команду:
1 |
$ init runlevel-value |
Например, init 3 переводит систему в неграфическое состояние.
Команда init 6 перезагружает вашу систему, а команда init 0 выключает систему.
Обязательно вызывайте команду sudo, когда хотите переключиться на эти две уровня.
Процесс загрузки завершается, когда systemd загружает все демоны и устанавливает значение целевого уровня или уровня выполнения.
Именно в этот момент вам будет предложено ввести имя пользователя и пароль, после чего вы получите доступ к своей системе Linux.