mirror of
https://github.com/Yaslonane/lpic_1-101.git
synced 2026-05-19 09:47:59 +03:00
64 lines
21 KiB
Markdown
64 lines
21 KiB
Markdown
**101.2** Загрузка системы
|
|
|
|
Студент должен разбираться в процессе загрузки системы.
|
|
|
|
**Изучаем** :
|
|
|
|
- команды и опции загрузчика;
|
|
- настройку последовательности загрузки в BIOS;
|
|
- включение и выключение ПК;
|
|
- стили инициализации системы;
|
|
- журналы загрузки системы.
|
|
|
|
**Термины и утилиты:**** **
|
|
|
|
- dmesg
|
|
- BIOS
|
|
- bootloader
|
|
- kernel
|
|
- initramfs
|
|
- init
|
|
- SysVinit
|
|
- systemd
|
|
|
|
Процесс загрузки любой операционной системы, представляющий собой последовательную работу ряда программных и аппаратных компонентов ПК, будет рассмотрен в этом уроке.
|
|
|
|
Вкратце процесс загрузки выглядит так:
|
|
|
|
- при старте ПК процессор переходит на адрес BIOS (UEFI) и загружает его;
|
|
|
|
- BIOS (или современный UEFI) проводит необходимые проверки, выбирает согласно своим настройкам носитель информации;
|
|
|
|
- на носителе находит MBR (или GPT для UEFI) в которой находится загрузчик;
|
|
|
|
- дальше по обстоятельствам: загрузчик может загружать ОС, может передать управление следующему загрузчику по цепочке;
|
|
|
|
- в любом случае загрузчик знает где лежит ядро ОС, грузит его и InitialRamDisk (там конфигурационные файлы и модули необходимые для загрузки ядра) в оперативную память;
|
|
|
|
- загруженное ядро берет дальнейший процесс запуска на себя (инициализация устройств, конфигурирование процессора, памяти и т.д.)
|
|
|
|
- после всех инициализационных процедур ядро запускает процедуры инициализации всех необходимых служб ОС.
|
|
|
|

|
|
|
|
_Рисунок 1. Порядок загрузки ОС_
|
|
|
|
Существуют различные загрузчик ОС, например Lilo и Grub для Linux, NTLDR для Windows и т.д. Все они, как правило, имеют файл конфигурации самого загрузчика (_формат диалога загрузки, таймауты для выбора варианта загрузки, поле для ввода дополнительных опций и т.д_.) и секцию доступных для загрузки образов ОС.
|
|
|
|
Подробно стили инициализации и загрузчики рассматриваются в дальнейших уроках. Для успешного освоения данной темы необходимо знать, что в момент загрузки можно нажать выделенные клавиши (_как, правило, отличающиеся у разных загрузчиков_), и выбрать ОС для запуска или указать дополнительные опции загрузки.
|
|
|
|
При работе с загрузчиком можно увидеть следующие понятия:
|
|
|
|
- **uuid** – идентификатор носителя информации с установленной ОС;
|
|
- **kernel** – путь к ядру ОС;
|
|
- **initrd** – путь к минимальному образу ядра для загрузки в оперативную память;
|
|
- **quiet** – не показывать процесс загрузки;
|
|
- **splash** – показать заставку при загрузке.
|
|
|
|
Вся информация о загрузке хранится в журнале **/**** var ****/**** log ****/**** dmesg**_(журнал событий ядра)_, при этом данные о последней загрузке можно получить, выполнив команду**dmesg ****.** Также события загрузки могут располагаться в журнале **/**** var ****/**** log ****/**** boot ****.**** log **. В современных ОС события загрузки можно увидеть при помощи утилиты** journalctl **, например командой** journalctl -b0 SYSLOG\_PID=1**
|
|
|
|
Процесс инициализации системы будет рассмотрен подробно в дальнейших уроках, на данном этапе нужно знать о существование трех стилей инициализации:
|
|
|
|
- **SysV** – родительский процесс инициализации системы на одном из заданных уровней запуска (runlevel);
|
|
- **systemd** – родительский процесс инициализацию системы в ускоренном режиме, за счёт параллельного запуска задач;
|
|
- **upstart** – родительский процесс инициализации системы на основе отслеживания событий. |