Лекция: Этапы загрузки Linux и практическое исследование с помощью dmesg и других инструментов
Введение
Загрузка операционной системы — это сложный, но хорошо структурированный процесс. Понимание этапов загрузки Linux необходимо системным администраторам, разработчикам и специалистам по безопасности для диагностики проблем, оптимизации производительности и глубокого понимания работы системы.
В этой лекции мы:
- Разберём пошагово процесс загрузки Linux.
- Изучим ключевые компоненты: BIOS/UEFI, загрузчик (GRUB), ядро (kernel), initramfs, init-систему (systemd).
- Научимся использовать практические инструменты:
dmesg
,journalctl
,systemctl
,lsinitramfs
,grub-editenv
и другие. - Проведём реальные эксперименты для анализа каждого этапа.
1. Этапы загрузки Linux: обзор
Процесс загрузки Linux можно разделить на 5 основных этапов:
- BIOS/UEFI — инициализация оборудования.
- Загрузчик (Bootloader) — загрузка ядра и initramfs.
- Ядро (Kernel) — инициализация подсистем, монтирование корневой ФС.
- initramfs — временная корневая файловая система.
- Пользовательское пространство (init/systemd) — запуск сервисов и вход в систему.
Рассмотрим каждый этап подробно.
2. Этап 1: BIOS/UEFI
Теория
- При включении компьютера срабатывает BIOS (на старых системах) или UEFI (на современных).
- BIOS/UEFI выполняет POST (Power-On Self Test) — проверку оборудования.
- Затем ищется загрузочное устройство (HDD, SSD, USB и т.д.).
- Передаёт управление загрузчику, который находится в MBR (Master Boot Record) или EFI-разделе.
⚠️ UEFI заменяет BIOS, поддерживает GPT, безопасную загрузку (Secure Boot), быстрый старт.
Практика
Посмотреть информацию о режиме загрузки:
# Проверить, загружена ли система в режиме UEFI
ls /sys/firmware/efi/efivars && echo "UEFI" || echo "BIOS"
# Или проще:
[ -d /sys/firmware/efi ] && echo "UEFI" || echo "Legacy BIOS"
3. Этап 2: Загрузчик (GRUB)
Теория
- Наиболее распространённый загрузчик — GRUB2 (Grand Unified Bootloader).
- GRUB читает конфигурацию (
/boot/grub/grub.cfg
) и предлагает выбор ОС/ядра. - Загружает ядро Linux (vmlinuz) и initramfs в память.
- Передаёт управление ядру.
⚠️ В
grub.cfg
можно увидеть параметры ядра:root=
,ro
,quiet
,splash
.
Практика
Посмотреть конфигурацию GRUB:
# Просмотр основного конфига (может быть зашифрован)
cat /boot/grub/grub.cfg | grep menuentry -A 10
# Просмотр активного ядра и параметров
cat /proc/cmdline
Пример вывода:
BOOT_IMAGE=/boot/vmlinuz-5.15.0-86-generic root=UUID=1234-5678 ro quiet splash
ro
— корневая ФС монтируется только для чтения на старте.quiet splash
— скрытый режим загрузки (без логов).
4. Этап 3: Ядро (Kernel) и initramfs
Теория
- Ядро инициализируется: настраивает память, CPU, устройства, драйверы.
- Сначала используется initramfs — временная корневая ФС в RAM.
- initramfs содержит мини-окружение (busybox), драйверы, модули, скрипты.
- Цель: подготовить реальную корневую ФС (например, расшифровать LUKS, смонтировать RAID, NFS).
💡 initramfs = initial ram fs — сжатый архив (обычно
initrd.img-*
).
Практика
1. Посмотреть текущий initramfs:
# Список образов initramfs
ls /boot/initrd.img-*
# Распакуем initramfs для анализа (временная папка)
mkdir /tmp/initramfs && cd /tmp/initramfs
zcat /boot/initrd.img-$(uname -r) | cpio -iv
⚠️ Требует прав root. Можно использовать
unmkinitramfs
(в Ubuntu/Debian).
2. Посмотреть, что делает initramfs при загрузке:
# Просмотр событий ядра (очень важный инструмент!)
dmesg | head -30
Пример:
[ 0.000000] Linux version 5.15.0-86-generic (...)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-... ro quiet splash
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] ACPI: RSDP 0x00000000BFFFC000 000024 (v02 ALASKA)
...
[ 1.234567] Trying to unpack rootfs image as initramfs...
5. Этап 4: dmesg — ключевой инструмент анализа загрузки
Что такое dmesg?
dmesg
— утилита для просмотра буфера ядра (kernel ring buffer).- Содержит логи от момента включения: обнаружение оборудования, ошибки, инициализация драйверов.
Практическое использование
1. Посмотреть весь лог ядра:
dmesg
2. Фильтрация по времени:
# Последние 20 строк
dmesg | tail -20
# С таймстампами в удобном формате
dmesg -H
3. Поиск событий initramfs:
dmesg | grep -i "initramfs\|initrd"
Пример:
[ 1.234567] Trying to unpack rootfs image as initramfs...
[ 1.250000] Freeing initrd memory: 48484K
4. Поиск ошибок:
dmesg | grep -i error
dmesg | grep -i fail
5. Фильтр по подсистеме:
dmesg | grep -i "usb\|pci\|eth0\|ext4"
6. Этап 5: Пользовательское пространство и systemd
Теория
После того как ядро смонтировало корневую ФС:
- Запускается первый процесс — PID 1.
- В современных системах это systemd.
- systemd читает цели (targets):
multi-user.target
,graphical.target
. - Запускает сервисы: сеть, SSH, GUI, cron и т.д.
Практика
1. Посмотреть, кто PID 1:
ps aux | head -1; ps aux | grep " 1 "
Вывод:
root 1 0.0 0.2 123456 7890 ? Ss 10:00 0:01 /sbin/init
2. Проверить, какая система инициализации используется:
ls -la /sbin/init
readlink /sbin/init # часто ссылка на /lib/systemd/systemd
3. Посмотреть время загрузки:
systemd-analyze
Пример:
Startup finished in 3.234s (kernel) + 4.567s (userspace) = 7.801s
4. Разбор времени по сервисам:
systemd-analyze blame
Вывод:
2.345s NetworkManager-wait-online.service
1.234s snapd.service
0.876s apparmor.service
5. Графическое представление:
systemd-analyze plot > boot.svg
# Открыть в браузере или просмотрщике
7. Практическая работа: диагностика медленной загрузки
Задача: система загружается 15 секунд. Найти узкое место.
Шаги:
Проверим общее время:
bashsystemd-analyze
Найдём самые долгие сервисы:
bashsystemd-analyze blame
Если видим
NetworkManager-wait-online.service
— это ожидание сети. Решение: отключить ожидание или настроить таймаут:bashsudo systemctl disable NetworkManager-wait-online.service
Проверим наличие ошибок в dmesg:
bashdmesg | grep -i "error\|fail"
Проверим, не блокирует ли initramfs (например, запрос пароля LUKS):
bashdmesg | grep -i "crypt\|luks"
8. Дополнительные инструменты
Инструмент | Назначение |
---|---|
journalctl -b | Логи текущей загрузки (юзерспейс) |
journalctl -k | Только логи ядра (аналог dmesg) |
systemctl list-units --type=service --state=failed | Упавшие сервисы |
lsinitramfs /boot/initrd.img-$(uname -r) | Просмотр содержимого initramfs (Debian/Ubuntu) |
Пример:
# Логи с момента загрузки
journalctl -b -0
# Последние 20 строк лога ядра
journalctl -k -n 20
9. Самостоятельная работа / задания
Задание 1:
Определите, в каком режиме загружена система (UEFI/BIOS). Подтвердите двумя способами.Задание 2:
Выведите параметры командной строки ядра. Найдите, где указанroot=
.Задание 3:
Найдите вdmesg
момент, когда ядро обнаруживает ваш жёсткий диск. Какой у него devname?Задание 4:
Используяsystemd-analyze blame
, найдите три самых долгих сервиса. Предложите, как ускорить загрузку.Задание 5 (продвинутое):
Распакуйте initramfs и найдите скриптinit
. Какие действия он выполняет до монтирования корня?
Заключение
Понимание этапов загрузки Linux — основа для диагностики, оптимизации и восстановления системы. Ключевые инструменты:
dmesg
— для анализа ядра и оборудования.systemd-analyze
— для оценки времени загрузки.journalctl
— для логов пользовательского пространства.- Работа с
initramfs
— для глубокой отладки проблем с корневой ФС.
💡 Совет: Всегда смотрите dmesg
при проблемах с загрузкой — 80% ответов там.
Дополнительные материалы
man dmesg
,man systemd-analyze
,man journalctl
- Документация kernel.org: https://www.kernel.org/doc/html/latest/
- Статья: "How Linux Boots" от Julia Evans (в картинках)
Если у вас есть доступ к реальной или виртуальной машине — попробуйте выполнить все команды из лекции. Практика — лучший способ запомнить!
Подробный разбор процесса загрузки Linux: этапы, графики и практическая диагностика
Введение
Процесс загрузки Linux — это сложная последовательность этапов, где каждый компонент взаимодействует с предыдущим и следующим. Для глубокого понимания важно не только знать теорию, но и видеть процесс визуально. В этой лекции мы:
- Разберём загрузку пошагово с ASCII-графиками и схемами.
- Научимся генерировать реальные графики загрузки.
- Проведём диагностику с помощью
dmesg
,systemd-analyze
, и других инструментов.
1. Общая схема загрузки: визуальное представление
ASCII-арт: полная последовательность
┌─────────────┐ ┌─────────────┐ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐
│ │ │ │ │ │ │ │ │ │
│ BIOS/ │ │ Boot- │ │ Kernel + │ │ systemd + │ │ User Space │
│ UEFI │────▶│ loader │────▶│ initramfs │────▶│ init system │────▶│ (GUI, services) │
│ │ │ (GRUB) │ │ │ │ │ │ │
└─────────────┘ └─────────────┘ └───────────────────┘ └───────────────────┘ └───────────────────┘
│ │ │ ▲ │ │ ▲ │ │
│ │ │ │ │ │ │ │ │
▼ ▼ ▼ │ ▼ ▼ │ ▼ ▼
POST (Power-On Загрузка ядра Инициализация Смена корневой Запуск сервисов Пользовательский
Self Test) и initramfs оборудования и ФС (pivot_root) (network, sshd) интерфейс
драйверов
Ключевые особенности:
- Стрелки показывают передачу управления.
- Вертикальные линии обозначают критические точки (например,
pivot_root
). - Цвета в реальных графиках (см. раздел 5) помогают выделить этапы.
2. Этап 1: BIOS/UEFI — инициализация оборудования
Теория с деталями
- POST (Power-On Self Test):
- Проверка RAM, CPU, периферии.
- Если ошибка — звуковые сигналы или коды на экране.
- Поиск загрузочного устройства:
- BIOS: проверяет MBR (первые 512 байт диска).
- UEFI: ищет EFI-загрузчик в разделе FAT32 (обычно
/boot/efi/EFI/
).
- Передача управления загрузчику.
ASCII-схема UEFI vs BIOS
┌───────────────────────────────┐
│ UEFI │
├───────────────────────────────┤
│ 1. Запуск UEFI-среды │
│ 2. Проверка Secure Boot │
│ 3. Загрузка EFI-приложения │
│ (например, grubx64.efi) │
└───────────────────────────────┘
┌───────────────────────────────┐
│ BIOS │
├───────────────────────────────┤
│ 1. Проверка MBR │
│ 2. Выполнение кода загрузчика │
│ (первые 446 байт MBR) │
└───────────────────────────────┘
Практика: проверка режима загрузки
# Генерация отчёта о загрузке (пример вывода)
$ sudo dmidecode -t bios | grep "UEFI"
BIOS Revision: 5.17
Firmware Revision: 2.70
UEFI is supported
# Визуализация через systemd-boot (если используется)
$ bootctl status
Пример вывода:
EFI variables:
LoaderInfo: systemd-boot 252.9-1
LoaderConfig: /boot/loader/loader.conf
LoaderEntries: 3 entries
BootOrder: 0000,0001,0002
BootNext: 0000
BootCurrent: 0000
3. Этап 2: Загрузчик (GRUB) — выбор ядра
Как работает GRUB?
- Stage 1: Код из MBR (446 байт) загружает Stage 1.5.
- Stage 1.5: Драйверы для доступа к
/boot
(например,ext2.mod
). - Stage 2: Полноценный загрузчик с меню выбора ОС.
ASCII-график загрузки GRUB
MBR (Stage 1)
│
▼
/boot/grub/i386-pc/boot.img (Stage 1.5)
│
▼
/boot/grub/grub.cfg (Stage 2)
│
▼
Загрузка ядра (vmlinuz) и initramfs
Практика: анализ конфигурации GRUB
# Просмотр активных параметров ядра
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-6.2.0-39-generic root=UUID=1234-5678 ro quiet splash
# Генерация графика зависимостей модулей GRUB (пример)
$ grub-editenv list | grep modules
kernel_cmdline=root=UUID=1234-5678 ro quiet splash
Как это выглядит визуально?
Если представить зависимости модулей GRUB как граф:
core.img
├── ext2.mod (для /boot)
├── part_gpt.mod (GPT-диски)
├── normal.mod (меню)
└── linux.mod (загрузка ядра)
4. Этап 3: Ядро и initramfs — "сердце" загрузки
Последовательность действий ядра
┌───────────────────────────────────────┐
│ 1. Распаковка ядра (vmlinuz) │
├───────────────────────────────────────┤
│ 2. Инициализация памяти (buddy, slab) │
├───────────────────────────────────────┤
│ 3. Загрузка initramfs │
├───────────────────────────────────────┤
│ 4. Запуск /init из initramfs │
├───────────────────────────────────────┤
│ 5. Подготовка реальной корневой ФС │
└───────────────────────────────────────┘
Что происходит в initramfs?
- Обнаружение дисков (через
udev
). - Активация LVM/RAID/LUKS (если требуется).
- Поиск корневой ФС по
root=
из/proc/cmdline
. - Смена корня (
pivot_root
).
ASCII-график initramfs
initramfs
│
├── Обнаружение дисков (blkid)
│
├── Расшифровка LUKS (если root=UUID=... зашифрован)
│
├── Монтирование /dev/mapper/root_crypt
│
└── pivot_root → переход на реальную корневую ФС
Практика: анализ initramfs через dmesg
# Фильтрация событий initramfs
$ dmesg | grep -i "initramfs\|crypt\|pivot"
[ 1.234] Trying to unpack rootfs image as initramfs...
[ 1.345] Freeing initrd memory: 48484K
[ 2.100] device-mapper: uevent: version 1.03.0
[ 2.200] Loading /lib/modules/6.2.0-39-generic/kernel/drivers/md/raid456.ko
[ 3.500] Run /scripts/local-top
[ 3.600] cryptsetup: luksOpen /dev/sda2 cryptroot
[ 4.100] pivot_root: new_root=/sysroot put_old=/sysroot/old
Как это интерпретировать?
1.234s
: Распаковка initramfs.2.200s
: Загрузка модуля RAID.3.600s
: Расшифровка LUKS (требует ввода пароля).4.100s
: Успешныйpivot_root
.
5. Этап 4: systemd — управление сервисами
Временная диаграмма загрузки (systemd-analyze plot)
Как это выглядит на реальном графике?
(Условное изображение. В реальности генерируется SVG)
Расшифровка графика:
- Ось X: Время (секунды).
- Цвета:
- Синий: Ядро (kernel).
- Зелёный: Пользовательское пространство (userspace).
- Красный: Блокирующие сервисы (например,
NetworkManager-wait-online
).
- Стрелки: Зависимости между сервисами.
Как создать такой график?
# Генерация SVG-файла
$ systemd-analyze plot > boot.svg
# Для анализа в браузере
$ xdg-open boot.svg
Пример вывода systemd-analyze blame
3.2s NetworkManager-wait-online.service
1.8s plymouth-quit-wait.service
1.2s snapd.service
0.9s udisks2.service
6. Инструменты для визуализации: от теории к практике
1. systemd-analyze — ваш лучший друг
# Общее время загрузки
$ systemd-analyze
Startup finished in 2.1s (kernel) + 5.3s (userspace) = 7.4s
# График зависимостей сервисов
$ systemd-analyze critical-chain
graphical.target @5.300s
└─multi-user.target @5.300s
└─getty.target @5.300s
└─getty@tty1.service @5.300s
└─system-getty.slice @5.300s
└─system.slice @1.200s
└─-.slice @1.200s
2. bootchart — графический анализ (устаревший, но полезный)
Установка:
# Ubuntu/Debian
sudo apt install linux-tools-common bootchart
# Добавление параметра в GRUB
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... init=/sbin/bootchartd"
# Обновление GRUB
sudo update-grub
После перезагрузки график сохранится в /var/log/bootchart/
.
3. dmesg с цветовой подсветкой
# Цветной вывод с фильтрацией
$ dmesg --color=always | grep -i "error\|fail" --color=always
Пример вывода:
7. Практическая диагностика: кейс "система не загружается"
Сценарий
Система зависает после Loading initial ramdisk
.
Шаги диагностики
1. Анализ dmesg
# Сохраняем логи (если система не загружается — через live-USB)
$ dmesg > dmesg.log
# Ищем ключевые ошибки
$ grep -i "fail\|error" dmesg.log
[ 3.500] device-mapper: ioctl: error adding target to table
[ 3.600] cryptsetup: ERROR: Device /dev/sda2 is not a valid LUKS volume
2. Визуальный анализ через systemd-analyze (если частично загружается)
# Проверяем, до какого этапа дошла система
$ systemd-analyze time
Kernel: 2.1s
Initrd: 3.5s
Userspace: 0.0s (не дошли до systemd)
3. Решение проблемы
Ошибка: LUKS-том повреждён.
# Попытка восстановить заголовок LUKS
sudo cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file luks.header.bak
# Пересоздание initramfs с правильными модулями
sudo update-initramfs -u -k all
8. Продвинутые техники: как "видеть" каждый этап
1. Добавление verbose в GRUB
Чтобы видеть все логи ядра:
- Откройте
/etc/default/grub
. - Уберите
quiet splash
изGRUB_CMDLINE_LINUX_DEFAULT
. - Обновите GRUB:
sudo update-grub
.
Результат:
Вместо чёрного экрана вы увидите поток логов ядра (аналог dmesg -w
).
2. Трассировка загрузки через ftrace
# Включение трассировки в GRUB
GRUB_CMDLINE_LINUX_DEFAULT="... trace_event=timer:start,enable"
# Анализ после загрузки
$ sudo cat /sys/kernel/debug/tracing/trace
3. График потребления ресурсов (bootchart)
- Зелёная зона: CPU-активность.
- Синяя зона: Дисковые операции.
- Красная линия: Потребление памяти.
9. Самостоятельная работа: создайте свой график загрузки
Задание 1: сгенерируйте SVG через systemd-analyze
- Выполните:
systemd-analyze plot > my_boot.svg
. - Откройте файл в браузере.
- Найдите:
- Самый долгий сервис.
- Момент перехода от ядра к userspace.
Задание 2: проанализируйте initramfs
- Распакуйте initramfs:bash
mkdir /tmp/initramfs && cd /tmp/initramfs zcat /boot/initrd.img-$(uname -r) | cpio -idv
- Найдите файл
/init
. - Откройте его в редакторе и найдите:
- Где происходит
pivot_root
. - Какие модули загружаются первыми.
- Где происходит
Задание 3: имитация ошибки загрузки
- Добавьте в GRUB параметр
rd.break
(остановка на этапе initramfs). - Перезагрузитесь.
- В консоли initramfs выполните:bash
mount | grep root # Проверьте, смонтирована ли корневая ФС ls /dev/mapper # Посмотрите доступные LUKS-тома
Заключение
Понимание загрузки Linux — это навык, который строится на трёх китах:
- Теория: знание этапов и их взаимодействия.
- Практика: умение читать
dmesg
,journalctl
, генерировать графики. - Визуализация: интерпретация данных через
systemd-analyze plot
, bootchart.
💡 Главный совет:
"Если система не загружается — сначала посмотрите
dmesg | tail -50
. 90% проблем там."
Полезные ресурсы с графиками
- systemd-analyze plot — официальная документация
- Bootchart — генератор графиков загрузки
- Linux Boot Process — интерактивная анимация
Проверьте себя:
- Можете ли вы нарисовать схему загрузки Linux за 2 минуты?
- Как объяснить коллеге, почему
NetworkManager-wait-online
замедляет загрузку? - Какой командой проверить, что initramfs содержит драйвер для вашего RAID-массива?
Если ответы есть — вы готовы к диагностике любой проблемы с загрузкой! 🐧
Практическая работа: Процесс загрузки Linux
Цель работы:
Изучить этапы загрузки Linux, познакомиться с ключевыми компонентами (BIOS/UEFI, загрузчик GRUB, ядро, initramfs, systemd), научиться анализировать и настраивать параметры загрузки.
Блок теории
Краткий обзор процесса загрузки Linux:
BIOS/UEFI
- Инициализация оборудования, проверка POST (Power-On Self-Test).
- Поиск загрузочного устройства (MBR/GPT).
- Передача управления загрузчику (например, GRUB).
Загрузчик (GRUB 2)
- Отображает меню выбора ОС.
- Загружает ядро (
vmlinuz
) и образ initramfs в память. - Передает параметры ядра (например,
quiet splash
).
Ядро Linux
- Инициализирует подсистемы (память, процессы, драйверы).
- Монтирует initramfs — временную файловую систему для подготовки реальной корневой ФС.
Initramfs
- Содержит минимальные инструменты и драйверы для доступа к корневой ФС (например, LVM, шифрование).
- Подготавливает оборудование, монтирует корневую ФС.
Системный менеджер (systemd)
- Запускает процессы в пользовательском пространстве (сервисы, демоны).
- Управляет зависимостями через юниты (
.service
,.target
). - Передает управление сеансу пользователя (login, графическая оболочка).
Оборудование и ПО
- ОС: Ubuntu 22.04 LTS (или любой дистрибутив с GRUB 2 и systemd).
- Требования:
- Доступ к терминалу с правами
sudo
. - Виртуальная машина (рекомендуется для безопасности).
- Доступ к терминалу с правами
Практические задания
Внимание! Все команды выполняются в терминале. Преподаватель демонстрирует шаги, студенты повторяют.
Задание 1. Анализ конфигурации GRUB
Откройте терминал и посмотрите основной конфигурационный файл GRUB:
bashcat /etc/default/grub
Что ищем:
GRUB_TIMEOUT
— время отображения меню загрузки.GRUB_CMDLINE_LINUX
— параметры ядра (например,quiet splash
).
Посмотрите сгенерированный файл загрузочного меню:
bashsudo cat /boot/grub/grub.cfg | grep -A 10 "menuentry 'Ubuntu'"
Обратите внимание:
- Строки
linux
иinitrd
— пути к ядру и initramfs. - Параметры ядра (например,
ro quiet splash
).
- Строки
Задание 2. Временное изменение параметров загрузки
- Перезагрузите систему:bash
sudo reboot
- Во время старта, когда появится меню GRUB:
- Нажмите Esc (для UEFI) или Shift (для BIOS), чтобы открыть меню.
- Выберите строку с ядром и нажмите e для редактирования.
- Найдите строку, начинающуюся с
linux
, и добавьте в конец параметр:text(Это загрузит систему в режим восстановления без графического интерфейса.)systemd.unit=rescue.target
- Нажмите Ctrl+X для загрузки с новыми параметрами.
- После входа в систему проверьте текущий target:bashОжидаемый результат:
systemctl get-default
rescue.target
.
Задание 3. Анализ логов загрузки
Вернитесь в обычный режим (перезагрузите систему).
Просмотрите логи ядра:
bashdmesg | grep -i "boot"
Что ищем:
- Сообщения об инициализации оборудования (например,
ACPI
,CPU
).
- Сообщения об инициализации оборудования (например,
Проверьте время загрузки:
bashsystemd-analyze
Пример вывода:
textStartup finished in 8.235s (firmware) + 2.123s (loader) + 4.567s (kernel) + 10.123s (userspace) = 25.048s
Узнайте, какие юниты systemd замедляют загрузку:
bashsystemd-analyze blame
Задание 4. Настройка времени отображения меню GRUB
- Откройте конфигурационный файл GRUB:bash
sudo nano /etc/default/grub
- Измените параметр:text(Теперь меню будет отображаться 10 секунд вместо стандартных 5.)
GRUB_TIMEOUT=10
- Примените изменения:bash
sudo update-grub
- Перезагрузите систему и убедитесь, что таймаут изменился.
Вопросы для самоконтроля
- Какой компонент отвечает за монтирование корневой файловой системы?
- Для чего используется initramfs?
- Как проверить текущий режим работы systemd (multi-user, graphical)?
- Что произойдет, если удалить параметр
ro
из строки загрузки ядра? - Как временно отключить графический интерфейс при загрузке?
Отчет по работе
Студент должен предоставить:
- Скриншоты вывода команд из Задания 1 и Задания 3.
- Ответы на 3 вопроса из блока самоконтроля.
- Описание изменений, внесенных в GRUB (таймаут, параметры ядра).
Методические рекомендации
- Для преподавателя:
- Перед работой убедитесь, что все студенты используют виртуальные машины (рекомендуется VirtualBox/Vagrant).
- В случае ошибок при настройке GRUB: объясните, как восстановить систему через режим восстановления.
- Для студентов:
- Не изменяйте параметры ядра без понимания их назначения (риск неработоспособности системы).
- Используйте команду
man
для изучения справки (например,man update-grub
).
Важно! Эта работа помогает понять, как взаимодействуют подсистемы Linux при загрузке, и закрепляет знания, полученные на теоретическом занятии об архитектуре GNU/Linux.