Объяснение запуска

Объяснение запуска

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

Следуйте пути запуска Linux от встроенного ПО через UEFI, загрузчик, ядро, initramfs, systemd, менеджер входа, сеанс рабочего стола и оболочку.

Аудитория
Учащиеся и специалисты по устранению неполадок
Время чтения
19 мин

Загрузочный конвейер

Загрузка — это цепочка передач. Прошивка инициализирует оборудование и выбирает загрузочную запись. Загрузчик загружает ядро ​​и initramfs. Ядро инициализирует основное оборудование и запускает первый процесс в пользовательском пространстве. Система инициализации запускает службы и пути входа в систему.

Знание цепочки помогает устранить неполадки. Если прошивка не может найти загрузочную запись, журналы systemd не имеют значения. Если графический вход в систему не удался, возможно, ядро ​​уже загрузилось.

Загрузочный конвейер диаграмма
Прошивканайти запись
Загрузчикзагрузить образ
Ядроуправлять железом
initramfsранний user space
systemdзапустить unit-ы
Входсеанс

Прошивка: BIOS против UEFI

BIOS — это старый стиль загрузки. UEFI — это современный интерфейс прошивки, который обычно использует системный раздел EFI, содержащий файлы загрузчика. Загрузочные записи UEFI указывают на такие файлы, как загрузчики EFI.

Безопасная загрузка — это функция UEFI, которая проверяет подписи компонентов загрузки. Это может повысить доверие к цепочке загрузки, но также может усложнить пользовательские ядра и драйверы.

Загрузчик, загрузка ядра и initramfs

Загрузчик выбирает ядро ​​и передает такие параметры, как расположение корневой файловой системы. initramfs — это временный ранний образ пользовательского пространства, который помогает ядру найти и смонтировать реальную корневую файловую систему, особенно когда задействованы драйверы хранилища, шифрование или логические тома.

После монтирования настоящей корневой файловой системы система переключается с ранней загрузки на установленную систему.

системный или инициализирующий

Первый нормальный процесс пользовательского пространства имеет PID 1. Во многих дистрибутивах PID 1 — это systemd. Он запускает модули, отслеживает службы, обрабатывает зависимости, собирает журналы через журнал и перемещает систему к цели, например многопользовательской или графической.

Существуют и другие системы инициализации, такие как OpenRC на Alpine, но концепция остается: после ядра должен быть скоординирован запуск пользовательского пространства.

Менеджер входа, сеанс рабочего стола и сеанс оболочки

Настольные системы обычно запускают диспетчер отображения, такой как GDM, SDDM или LightDM. После входа в систему начинается сеанс рабочего стола. Сеансы терминала запускают оболочку, которая может читать файлы запуска перед отображением приглашения.

Серверные системы могут пропускать графический путь и вместо этого предоставлять текстовый вход в систему, SSH или рабочие нагрузки служб.

Основы устранения неполадок при загрузке

  • Появляется экран прошивки, но нет ОС: проверьте порядок загрузки UEFI и записи EFI.
  • Загрузчик появляется, но ядро ​​выходит из строя: проверьте параметры ядра, initramfs, корневую файловую систему и последние обновления.
  • Система переходит в аварийный режим: прочитайте точную информацию о неисправности устройства или монтирования и проверьте журналctl -xb.
  • Ошибка графического входа в систему: переключитесь на текстовую консоль и проверьте журналы диспетчера дисплея.
  • Вход в оболочку медленный или сломанный: проверьте файлы запуска оболочки, такие как ~/.bashrc и ~/.profile.
Текущие журналы загрузки
journalctl -b
Неудачные системные модули
systemctl --failed