Загрузочный конвейер
Загрузка — это цепочка передач. Прошивка инициализирует оборудование и выбирает загрузочную запись. Загрузчик загружает ядро и initramfs. Ядро инициализирует основное оборудование и запускает первый процесс в пользовательском пространстве. Система инициализации запускает службы и пути входа в систему.
Знание цепочки помогает устранить неполадки. Если прошивка не может найти загрузочную запись, журналы systemd не имеют значения. Если графический вход в систему не удался, возможно, ядро уже загрузилось.
Прошивка: 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 -bsystemctl --failed