Как управлять параметрами загрузки ядра в Linux

Загрузка Linux — сложный процесс по сравнению с другими операционными системами. Ядро Linux принимает множество параметров во время загрузки, которые передаются через командную строку и предоставляют ядру важную информацию при запуске системы.
Считайте, что эти параметры — это специальные инструкции, которые вы даёте ядру ещё до того, как оно запустит операционную систему.
С их помощью вы можете сообщить ядру:
- на каком диске находится ваша корневая файловая система?
- сколько памяти использовать?
- следует ли загружать определенные аппаратные функции.
- или даже как обрабатывать ошибки при запуске.
Без них ядро не смогло бы правильно инициализировать систему.
Откуда берутся параметры загрузки?
Параметры загрузки обычно задаются загрузчиком — небольшой программой, которая запускается сразу после включения компьютера и отвечает за загрузку ядра в память.
- В большинстве современных дистрибутивов Linux этим загрузчиком является GRUB (Универсальный загрузчик GRUB).
- Некоторые облегчённые дистрибутивы могут использовать Syslinux или LILO.
Когда загрузчик передаёт управление ядру, он также передаёт эти параметры времени загрузки.
Пример (из GRUB):
linux /vmlinuz-6.x root=/dev/sda1 ro quiet splash
Вот что происходит:
root=/dev/sda1
→ Сообщает ядру, где находится корневая файловая система.ro
→ Сначала корневая файловая система монтируется только для чтения.quiet
→ Скрывает большинство загрузочных сообщений для более чистой загрузки.splash
→ Вместо текста отображается заставка.
Таким образом, ещё до того, как Linux начнёт инициализировать службы, ядро уже знает, что делать.
Как организованы параметры загрузки
Параметры загрузки — это не просто случайные переключатели. Они разделены на категории в зависимости от того, какие части системы они контролируют.
Давайте их рассмотрим.
1. Основы системы
Они сообщают ядру, как запуститься и где искать корневую файловую систему.
root=/dev/...
→ Устройство, содержащее корневую файловую систему.ro
→ Сначала смонтируйте корневую файловую систему только для чтения (это безопаснее всего).rw
→ Немедленно смонтируйте корневую файловую систему для чтения и записи.init=/path/to/init
→ Используйте пользовательскую программу инициализации (например, для восстановления или тестирования).
2. Консоль и отладка
Эти параметры управляют отображением сообщений во время запуска системы. Они особенно полезны при устранении неполадок, когда что-то идёт не так.
quiet
→ Подавить большинство загрузочных сообщений.debug
→ Включите подробный вывод отладки.console=ttyS0,115200
→ Отправка сообщений на последовательный порт (для удалённой отладки).loglevel=3
→ Уровень детализации сообщений (0
= экстренные ситуации,7
= полная информация).
3. Аппаратное управление
Иногда проблемы могут возникать из-за аппаратных функций, таких как ACPI или APIC, поэтому при необходимости их можно настроить или отключить.
noapic
→ Отключает APIC, что полезно для устранения некоторых проблем на старом оборудовании.acpi=off
→ Отключает ACPI, что приводит к отключению расширенного управления питанием.pci=noacpi
→ Не позволяет ACPI обрабатывать прерывания PCI.
4. Управление памятью и процессором
Контролируйте, сколько памяти и процессоров использует ядро.
mem=512M
→ Ограничьте доступную память до 512 МБ.maxcpus=2
→ Используйте только 2 ядра процессора.nosmp
→ Полностью отключите поддержку многопроцессорности.
5. Восстановление и устранение неполадок
Варианты обработки сбоев, отладки или временного обхода средств защиты:
initcall_debug
→ Отслеживание вызовов инициализации (отладка проблем с загрузкой).panic=10
→ Автоматическая перезагрузка через 10 секунд после сбоя ядра.selinux=0
→ Отключите принудительное применение SELinux.
Как временно добавить параметры загрузки
Иногда вам нужно изменить способ загрузки Linux, например отключить определенные функции (например, ACPI), не меняя систему навсегда. Для этого используются временные параметры загрузки.
Перезагрузите компьютер и сразу после появления экрана BIOS/UEFI войдите в меню GRUB. Если оно не появляется автоматически, удерживайте Shift
(для систем BIOS) или нажмите Esc
(для систем UEFI).
Выделите ядро, которое хотите загрузить, и нажмите e
, чтобы отредактировать команды загрузки. Найдите строку, начинающуюся с linux
или linuxefi
. Эта строка сообщает системе, какое ядро нужно загрузить и какие параметры использовать.
В конце этой строки добавьте свой параметр(ы). Например, чтобы временно отключить ACPI, можно добавить acpi=off
:
linux /vmlinuz-6.x root=/dev/sda1 ro quiet splash acpi=off
Нажмите Ctrl + X
или F10
для загрузки с этими изменениями.
Это позволит загрузить систему с указанным параметром только для текущего сеанса. После перезагрузки система вернётся к обычным настройкам.
Как сделать параметры загрузки постоянными
Если временно установленный параметр работает и вы хотите, чтобы он применялся при каждой загрузке, откройте файл конфигурации GRUB для редактирования.
sudo nano /etc/default/grub
Найдите строку, в которой говорится:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Добавьте свой параметр (ы) в кавычки. Например, чтобы навсегда отключить ACPI.:
GRUB_CMDLINE_LINUX_DEFAULT = «quiet splash acpi=off»
Сохраните файл и закройте редактор.
Затем обновите GRUB, чтобы изменения вступили в силу:
sudo update-grub # для Debian/Ubuntu sudo grub2-mkconfig -o /boot/grub2/grub.cfg # для Fedora/RHEL
Перезагрузите систему, чтобы параметр применялся автоматически при каждой загрузке.
Топ-10 параметров загрузки, которые должен знать каждый администратор Linux
Это наиболее часто используемые параметры загрузки ядра Linux, с которыми должен быть знаком каждый системный администратор. Они помогают контролировать запуск системы, управлять оборудованием, оптимизировать производительность и быстро устранять проблемы с загрузкой.
Держите эту шпаргалку под рукой на случай, если вам понадобится настроить или отладить процесс загрузки Linux.
Параметр | Категория | Назначение / Описание |
---|---|---|
root=/dev/sda1 | Основы системы | Указывает устройство, содержащее корневую файловую систему. |
ro | Основы системы | В целях безопасности корневая файловая система монтируется только для чтения при загрузке. |
rw | Основы системы | Корневая файловая система сразу монтируется для чтения и записи. |
quiet | Консоль / Отладка | Подавляет большинство загрузочных сообщений для более чистой загрузки. |
debug | Консоль / Отладка | Включает подробные сообщения ядра, которые помогают устранять проблемы с загрузкой. |
acpi=off | Аппаратное управление | Отключает ACPI (расширенный интерфейс конфигурации и питания), что полезно при устранении неполадок с оборудованием. |
noapic | Аппаратное управление | Отключает усовершенствованный программируемый контроллер прерываний. Помогает решить некоторые проблемы с устаревшим оборудованием. |
mem=512M | Память и процессор | Ограничивает доступную память до 512 МБ для тестирования или устранения неполадок. |
maxcpus=2 | Память и процессор | Ограничивает использование системой только двух ядер процессора. |
init=/path/to/init | Восстановление / Пользовательская Инициализация | Позволяет загружаться с помощью пользовательской программы инициализации, что полезно для режима восстановления или отладки. |
Выводы
Параметры времени загрузки — это своего рода секретные ключи для ядра Linux. Они позволяют точно контролировать запуск системы, инициализацию оборудования и устранение неполадок.
Независимо от того, устраняете ли вы проблему с загрузкой, настраиваете ли производительность или экспериментируете с функциями ядра, эти параметры дают вам возможность низкоуровневого управления вашим Linux-компьютером.
Так что в следующий раз, когда ваш Linux-компьютер откажется загружаться или вы просто захотите повысить производительность системы, помните: ответ может заключаться в нескольких дополнительных словах в командной строке ядра.
Редактор: AndreyEx