Kernel parameters (Русский)
Существует три способа передачи параметров ядру и контроля над ним:
- При сборке ядра — через файл config. Полная информация Ядро#Компиляция.
- При запуске ядра — используя параметры командной строки (обычно через загрузчик).
- На этапе выполнения (через файлы в /procи/sys). Более подробно смотрите документацию по утилите sysctl.
Настраиваемые в этих способах параметры различаются по доступности, имени и методу, в котором они указаны. Эта страница объясняет только второй метод (параметры командной строки ядра) и показывает список наиболее часто используемых параметров ядра в Arch Linux.
Большинство параметров связаны с подсистемами и работают, только если ядро собрано с этими подсистемами. Они также зависят от наличия оборудования, с которым они связаны.
Параметры, задаваемые в командной строке, имеют формат параметр или параметр=значение.
/etc/modprobe.d/. Смотрите Модуль ядра#С помощью файлов в /etc/modprobe.d/.Настройка
- Посмотреть параметры, с которыми сейчас загружена система, и проверить, применились ли ваши изменения, можно с помощью команды cat /proc/cmdline.
- Установочный носитель Arch Linux использует Syslinux на BIOS-системах и systemd-boot на UEFI.
Параметры ядра можно установить либо временно, отредактировав загрузочную запись в меню загрузчика, либо навсегда, изменив файл конфигурации загрузчика.
Примеры ниже демонстрируют, как добавить параметры quiet и splash в Syslinux, systemd-boot, GRUB, GRUB Legacy, LILO и rEFInd.
Syslinux
- После появления меню нажмите Tabи добавьте их в конце строки:
- linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=/boot/initramfs-linux.img quiet splash 
- Нажмите Enterдля загрузки с этими параметрами.
- Для сохранения изменений между перезагрузками измените файл /boot/syslinux/syslinux.cfgи добавьте их в строкуAPPEND:
- APPEND root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash 
Подробнее о настройке Syslinux можно почитать в статье Syslinux.
systemd-boot
- После появления меню нажмите eи добавьте параметры в конце строки:
- initrd=\initramfs-linux.img root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash 
- Нажмите Enterдля загрузки с этими параметрами.
- Если значение таймаута меню не установлено, во время загрузки зажмите пробел, чтобы меню systemd-boot появилось.
- Если вы не можете изменить параметры из меню загрузки, может понадобиться изменить файл /boot/loader/loader.confи добавитьeditor 1чтобы разрешить редактирование.
- Для сохранения изменений между перезагрузками измените файл /boot/loader/entries/arch.conf(предполагается, что у вас настроен системный раздел EFI) и добавьте их в строкуoptions:
- options root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash 
Подробнее о настройке systemd-boot можно почитать в статье systemd-boot.
GRUB
- Нажмите eв момент показа загрузочного меню и добавьте в строку, содержащуюlinux:
- linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash 
- Нажмите Ctrl+xдля загрузки с этими параметрами.
- Для сохранения изменений между перезагрузками, если вы не используете grub-mkconfig, можно изменить эту же строку напрямую в файле /boot/grub/grub.cfg, а для grub-mkconfig измените файл/etc/default/grubи добавьте параметры внутри кавычек в строкеGRUB_CMDLINE_LINUX_DEFAULT:
- GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 
 
- И затем сгенерируйте новый grub.cfg:
- # grub-mkconfig -o /boot/grub/grub.cfg 
 
Полную информацию по настройке можно прочитать в статье GRUB (Русский).
GRUB Legacy
- Нажмите eв момент показа загрузочного меню и добавьте в строку, содержащуюkernel:
- kernel /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash 
- Нажмите bдля загрузки с этими параметрами.
- Для сохранения изменений между перезагрузками измените файл /boot/grub/menu.lstи добавьте их в строкуkernelаналогично примеру выше.
Полная информация по настройке GRUB Legacy.
LILO
- Добавьте в /etc/lilo.conf:
- image=/boot/vmlinuz-linux ... quiet splash
Полная информация по настройке LILO.
rEFInd
- На нужном пукте меню нажмите +,F2илиInsertи нажмите ещё раз в нужном подменю. Добавьте параметры ядра в конце строки:
- root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=\boot\initramfs-linux.img quiet splash 
- Нажмите Enterдля загрузки с этими параметрами.
- Для сохранения изменений между перезагрузками измените файл /boot/refind_linux.confи добавьте их внутри кавычек во всех нужных строках, например
- "Boot using default options" "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash" 
- Если вы отключили автоматическое определение ОС в rEFInd и вместо этого определяете разделы ОС в esp/EFI/refind/refind.confдля загрузки своих ОС, вы можете отредактировать его следующим образом:
- menuentry "Arch Linux" { ... options "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash" ... }
Полная информация по настройке rEFInd
EFISTUB
Смотрите EFISTUB#Using UEFI directly.
dracut
dracut может встраивать параметры ядра в initramfs, что позволяет исключить их из конфигурации загрузчика. Смотрите dracut#Kernel command line options.
Взлом cmdline
Даже без доступа к загрузчику можно изменить параметры ядра, чтобы включить отладку (если у вас есть root-доступ). Это можно сделать, перезаписав /proc/cmdline, в котором хранятся параметры ядра. Однако /proc/cmdline недоступен для записи даже для root, и это обходится с помощью bind mount.
Сначала создайте файл, содержащий желаемые параметры ядра
/root/cmdline
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 ro console=tty1 logo.nologo debug
Затем сделайте bind mount, перекрыв старый файл с параметрами новым:
# mount -n --bind -o ro /root/cmdline /proc/cmdline
Параметр -n пропускает добавление записи в /etc/mtab, поэтому он будет работать, даже если корневая ФС примонтирована только для чтения. Вы можете выполнить cat /proc/cmdline, чтобы убедиться в успешности изменений.
Список параметров
Список не исчерпывающий. Полный список можно посмотреть в документации к ядру.
| Параметр | Описание | 
|---|---|
| init | Запустить указанный исполняемый файл вместо /sbin/initв качестве процесса init. Пакет systemd-sysvcompat создаёт символическую ссылку/sbin/init, указывающую на/usr/lib/systemd/systemd, для использования systemd. Укажите/bin/shдля загрузки в командную оболочку. | 
| initrd | Путь к образу начальной файловой системы (initramfs). Для загрузчиков UEFI и EFISTUB необходимо использовать обратный слэш ( \) в качестве разделителей в пути. | 
| debug | Включить отладку ядра (уровень журнала событий). | 
| lsm | Установить порядок инициализации модулей безопасности Linux, используется для включения AppArmor, SELinux или TOMOYO. | 
| maxcpus | Максимальное количество процессоров, которые ядро SMP будет задействовать во время загрузки. | 
| mem | Принудительное использование определённого количества используемой памяти. | 
| netdev | Параметры сетевых устройств. | 
| nomodeset | Отключить Kernel mode setting. | 
| panic | Время до автоматической перезагрузки при панике ядра. | 
| resume | Указать устройство подкачки, которое будет использоваться при выходе из гибернации. | 
| ro | При загрузке монтировать корневую ФС только в режиме чтения (используется по умолчанию1). | 
| root | Корневая файловая система. Смотрите список поддерживаемых форматов имён устройств в файле init/do_mounts.c. Имейте в виду, что initramfs с udev поддерживает больше форматов имён. | 
| rootflags | Параметры монтирования корневой ФС. Полезно для настройки параметров, которые нельзя применить при перемонтировании (например, с помощью systemd-remount-fs.service(8)). Например, опция discardдля XFS. | 
| rw | При загрузке монтировать корневую ФС в режиме чтения/записи. | 
| systemd.unit | Загрузка в указанную цель. | 
| video | Переопределить стандартные настройки фреймбуффера. | 
1 mkinitcpio использует ro по умолчанию, если загрузчик не устанавливает ни rw, ни ro. Загрузчики могут устанавливать используемое значение, например, GRUB по умолчанию использует rw (смотрите FS#36275).