Параметры ядра в командной строке: полный справочник
Параметры ядра передаются загрузчику в командной строке и меняют поведение системы ещё до старта пользовательского окружения. В Arch Linux их прописывают в /etc/default/grub в строке GRUB_CMDLINE_LINUX_DEFAULT, после чего перегенерируют grub.cfg. Самые полезные на практике: quiet (тихая загрузка), mem_sleep_default=deep (лечит разрядку батареи в спящем режиме на ноутбуках) и mitigations=off (отключает спекулятивные защиты CPU ради скорости на старых процессорах).
Где прописываются параметры ядра?
Загрузчик собирает командную строку ядра из своих настроек и параметров, вшитых в образ ядра. В GRUB всё сводится к файлу /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet mem_sleep_default=deep"
После правки обязательно перегенерируй конфиг:
grub-mkconfig -o /boot/grub/grub.cfg
Без этого шага изменения не попадут в загрузочное меню.
В том же файле есть строка GRUB_CMDLINE_LINUX: она добавляет параметры только к обычной загрузке, но не к аварийным записям вроде «Advanced options». На практике почти всегда правят именно GRUB_CMDLINE_LINUX_DEFAULT: она применяется ко всем пунктам меню, включая fallback-ядра.
Как GRUB собирает аргументы из разных строк, разобрано в статье «Кастомные аргументы ядра в GRUB».
Если ты используешь systemd-boot или прямую загрузку через EFISTUB, параметры живут в файлах записей в /boot/loader/entries/, строка options quiet mem_sleep_default=deep. При создании записи через efibootmgr параметры передаются в опции -u. Разница между загрузчиками описана в статье «Прямая загрузка ядра через EFISTUB и UKI».
Как проверить параметр на один запуск?
Не обязательно перегенерировать конфиг ради эксперимента. В меню GRUB наведись на нужную запись и нажми e: откроется редактор. Найди строку, начинающуюся с linux, допиши в её конец нужный параметр и нажми Ctrl+X. Система загрузится с этим параметром один раз, а после перезагрузки всё вернётся к конфигу.
В systemd-boot то же самое: в меню загрузки нажми e на нужной записи, отредактируй строку options и запусти запись. Это самый безопасный способ проверить, не сломает ли параметр загрузку.
Строка linux в GRUB уже содержит обязательные аргументы вроде root=UUID=... и rw. Не удаляй их, дописывай новый параметр в конец строки через пробел.
После загрузки проверь результат командой cat /proc/cmdline: увидишь, какие параметры реально переданы ядру. Если параметра там нет, значит, ты ошибся в написании или дописал его не в ту строку.
Какие параметры реально полезны?
Ниже: проверенные на практике параметры, сгруппированные по задачам. Каждый из них добавляется в GRUB_CMDLINE_LINUX_DEFAULT и проверяется на один запуск через редактирование записи в меню.
quiet и loglevel
quiet прячет сообщения ядра при загрузке, вместо потока текста ты видишь логотип или просто чёрный экран. Сам по себе он ничего не ускоряет, но делает загрузку опрятной. loglevel=3 ограничивает вывод уровнем ошибок и выше. Уровни лога: 0, экстренные сообщения, 3, ошибки, 7, всё подряд. Для повседневной работы хватает тройки, для отладки ставь семёрку. Если что-то падает при старте, временно убери quiet и добавь loglevel=7, увидишь, на каком шаге система спотыкается.
mem_sleep_default=deep
Параметр для ноутбуков. По умолчанию многие системы используют s2idle: «спящий режим» без полного отключения питания. Ноутбук в рюкзаке просыпается тёплым и разряжается за несколько часов. mem_sleep_default=deep заставляет систему использовать полноценный S3 (suspend to RAM), при котором питание отключается почти полностью. Проверить активный режим можно так:
cat /sys/power/mem_sleep
Если в выводе s2idle [deep], квадратные скобки стоят у deep, значит, параметр работает.
Важный нюанс: режим deep должен поддерживаться железом. На некоторых ноутбуках BIOS не отдаёт ядру S3, и тогда в /sys/power/mem_sleep останется только s2idle. Параметр тут не поможет, нужно смотреть настройки прошивки.
mitigations=off и mitigations=auto
Спекулятивные уязвимости процессора (Spectre, Meltdown и их родня) закрываются ценой производительности. mitigations=off отключает все защиты разом. На старых процессорах прирост в бенчмарках заметный, но ты сознательно открываешь систему для известных атак. mitigations=auto, поведение по умолчанию: защиты включены там, где ядро считает нужным. Компромиссный вариант: mitigations=auto,nosmt, который отключает только Hyper-Threading.
На современных процессорах потери от защит меньше, поэтому mitigations=off там даёт мало выгоды. А вот на старых CPU, особенно в связке с виртуализацией, разница ощутимая. Если сомневаешься, оставь auto и померяй производительность до и после.
Как выбрать ядро под свои задачи, рассказано в статье «Какое ядро выбрать: linux, lts, zen или hardened».
nowatchdog
Отключает watchdog-потоки ядра (watchdog и softlockup). Они нужны для диагностики зависаний, но постоянно жгут процессорное время. На слабых машинах nowatchdog даёт чуть более быструю загрузку и меньше фоновой нагрузки. Если позже понадобится диагностировать зависание, watchdog вернётся после удаления параметра.
nvidia-drm.modeset=1
Включает DRM/KMS для проприетарного драйвера Nvidia. Без этого параметра не заработает Wayland-сессия, а на некоторых конфигурациях страдает и X11. Параметр обязателен для современных окружений вроде Hyprland или GNOME на Wayland. Если после включения modeset пропал текстовый терминал, добавь nvidia-drm.fbdev=1, он включает framebuffer-консоль поверх DRM.
iommu и iommu=pt
intel_iommu=on и amd_iommu=on включают IOMMU для процессоров Intel и AMD соответственно. Это нужно для проброса устройств в виртуальные машины и для некоторых сценариев безопасности. iommu=pt переводит IOMMU в режим passthrough, устройства работают напрямую, без трансляции адресов, что снижает задержки при пробросе GPU в VM. Проверить, что IOMMU реально включился, можно в dmesg: для Intel ищи строки DMAR: IOMMU enabled, для AMD, AMD-Vi: IOMMU enabled.
pci=noaer
Отключает Advanced Error Reporting для PCI-устройств. Полезно, если в dmesg постоянно сыплются сообщения об ошибках AER, а железо при этом работает нормально. Параметр не лечит причину, но убирает шум и иногда чинит зависания на проблемных контроллерах. Проверить, что AER выключен, можно командой dmesg | grep -i aer.
amdgpu.dc=1
Включает Display Core, подсистему дисплея для видеокарт AMD. На старых ядрах без неё не работали некоторые режимы вывода, сейчас DC включён по умолчанию. Параметр нужен в основном для отката и отладки: amdgpu.dcdebugmask=0x10 включает расширенное логирование DC, что пригодится, если картинка на мониторе ведёт себя странно.
rd.luks.name и resume
Параметры для шифрования и гибернации. rd.luks.name=UUID=xxxx-xxxx=luksroot подключает LUKS-раздел на этапе initramfs, а cryptdevice=UUID=...:luksroot, более старый вариант того же. resume=UUID=... указывает раздел подкачки для гибернации. Оба параметра работают внутри initramfs-сценариев, о которых подробно рассказано в статье «mkinitcpio: хуки и модули». Для rd.luks.name в initramfs должен быть хук systemd или encrypt, а для resume: хук resume. Без них параметры просто проигнорируются.
init=/usr/bin/…
Подменяет программу инициализации. По умолчанию ядро запускает /sbin/init (в Arch это симлинк на systemd). Параметр init=/usr/bin/bash загрузит систему прямо в root-shell, удобно для аварийного восстановления, когда systemd не стартует.
Пример рабочего конфига
Соберём типичный набор для ноутбука с Nvidia и LUKS:
GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 mem_sleep_default=deep nvidia-drm.modeset=1 rd.luks.name=UUID=abcd-1234=luksroot resume=UUID=5678-90ab"
Здесь quiet и loglevel=3 делают загрузку тихой, mem_sleep_default=deep чинит сон, nvidia-drm.modeset=1 готовит Wayland, а два последних параметра поднимают шифрованный корень и гибернацию. UUID подставляй свои, их показывает lsblk -f. После правки не забудь grub-mkconfig -o /boot/grub/grub.cfg.
Если шифрования нет, убери rd.luks.name из строки. Если гибернация не нужна, resume тоже лишний, без него ядро просто не будет искать образ подкачки при попытке восстановления.
Как посмотреть текущие параметры?
cat /proc/cmdline
Вывод покажет точную командную строку, с которой загрузилось текущее ядро. Удобно для проверки, применился ли параметр после перегенерации конфига. Файл /proc/cmdline: виртуальный, он отражает только текущую загрузку и не хранит историю. Если параметр пропал после перезагрузки, значит, он не попал в конфиг загрузчика.
Где взять полный список параметров?
Полный перечень живёт в исходниках ядра: Documentation/admin-guide/kernel-parameters.txt. В Arch можно поставить пакет linux-docs и читать его локально либо открыть ту же страницу в интернете. Там описаны сотни параметров, включая те, что не попали в этот справочник: от тонкой настройки планировщика до управления энергопотреблением.
Имена параметров чувствительны к регистру: quiet и Quiet, разные вещи. Перед добавлением незнакомого параметра сверься с документацией, иначе ядро просто проигнорирует опечатку.
Что делать, если система не загрузилась из-за параметра?
Неправильный параметр обычно приводит к зависанию на раннем этапе загрузки или к панике ядра. Лечится без live-USB: перезагрузись, в меню GRUB нажми e, найди строку linux и удали из неё проблемный параметр. Затем Ctrl+X: система загрузится, а ты вернёшься к конфигу и поправишь его.
Если параметр сломал загрузку настолько, что не видно даже меню GRUB, загрузись с live-USB и отредактируй /etc/default/grub через arch-chroot. Методика восстановления загрузчика описана в статье «grub rescue: что делать».
Добавляй параметры по одному и проверяй каждый после перезагрузки, так проще понять, что именно сломало систему. Некоторые аргументы можно указывать несколько раз: ядро возьмёт последнее значение. Дубли не ломают загрузку, но захламляют конфиг.
Частые вопросы
Какой параметр отвечает за тихую загрузку?
quiet. Он скрывает сообщения ядра при старте. В паре с loglevel=3 загрузка выглядит чисто, а при диагностике проблем оба параметра временно убирают. Полная тишина достигается связкой quiet loglevel=3 и отключением вывода systemd, но это уже настройка самого systemd, а не ядра.
mem_sleep_default=deep безопасен?
Да. Это штатный режим S3, который использовался на ноутбуках десятилетиями. Единственный нюанс: на некоторых машинах пробуждение из S3 работает медленнее, чем из s2idle.
mitigations=off: это опасно?
Это осознанный компромисс. Защиты от спекулятивных атак отключаются, и машина становится уязвимой для атак класса Spectre. Для домашней машины без критичных файлов риск обычно приемлем, для сервера, нет.
Параметр не применился. Что проверить?
Сначала cat /proc/cmdline: если параметра нет в выводе, значит, он не попал в конфиг. Проверь /etc/default/grub и перегенерируй grub.cfg. Для systemd-boot проверь файл загрузочной записи в /boot/loader/entries/.
Параметр сработал, но что-то пошло не так. Как откатить?
Удали параметр из /etc/default/grub, перегенерируй grub.cfg и перезагрузись. Для разовой проверки достаточно отредактировать запись в меню GRUB и загрузиться без параметра, конфиг при этом не пострадает.
Полезные ресурсы
- Kernel parameters, ArchWiki: полный список параметров и способы их передачи.
- Silent boot, ArchWiki: настройка тихой загрузки без сообщений ядра.
Заключение
Параметры ядра, быстрый способ изменить поведение системы без пересборки. quiet и loglevel управляют выводом, mem_sleep_default=deep чинит разрядку ноутбука в спящем режиме, mitigations=off разменивает безопасность на скорость, а nvidia-drm.modeset=1: обязательный шаг для Wayland на Nvidia. Проверяй новые параметры через редактирование записи в GRUB, смотри результат в /proc/cmdline и не забывай перегенерировать grub.cfg после правки /etc/default/grub.
Начни с малого: добавь quiet и mem_sleep_default=deep, если у тебя ноутбук. Остальное подключай по мере необходимости, каждый параметр решает конкретную задачу, а лишние аргументы в командной строке только усложняют диагностику.
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии