Настройка параметров ядра Linux.

Существует три способа передачи параметров ядру и контроля над ним:

  1. При сборке ядра — через файл config. Полная информация Ядро#Компиляция.
  2. При запуске ядра — используя параметры командной строки (обычно через загрузчик).
  3. На этапе выполнения — через файлы в /proc/sys/ (смотрите sysctl) и /sys/).

Настраиваемые в этих способах параметры различаются по доступности, имени и методу, в котором они указаны. Эта страница объясняет только второй метод (параметры командной строки ядра) и показывает список наиболее часто используемых параметров ядра в Arch Linux.

@linuxkalii – больше крутого материала о Linux в нашем канале.

Настройка параметров ядра Linux.

Большинство параметров связаны с подсистемами и работают, только если ядро собрано с этими подсистемами. Они также зависят от наличия оборудования, с которым они связаны.

Параметры, задаваемые в командной строке, имеют формат параметр или параметр=значение.

Примечание: Все параметры чувствительны к регистру.

Совет: Параметры для загружаемых модулей также можно задать через файлы .conf в каталоге /etc/modprobe.d/. Смотрите Модуль ядра#С помощью файлов в /etc/modprobe.d/.

Настройка

Примечание:

  • Посмотреть параметры, с которыми сейчас загружена система, и проверить, применились ли ваши изменения, можно с помощью команды cat /proc/cmdline.
  • Установочный носитель Arch Linux использует Syslinux на BIOS-системах и GRUB на UEFI.

Параметры ядра можно установить либо временно, отредактировав загрузочную запись в меню загрузчика, либо навсегда, изменив файл конфигурации загрузчика.

Примеры ниже демонстрируют, как добавить параметры quiet и splash в Syslinuxsystemd-bootGRUBGRUB LegacyLILO и 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.

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.

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 необходимо использовать обратный слэш (\) в качестве разделителей в пути.
cryptdeviceРасположение раздела, зашифрованного с dm-crypt, плюс имя device mapper.
debugВключить отладку ядра (уровень журнала событий).
lsmУстановить порядок инициализации модулей безопасности Linux, используется для включения AppArmorSELinux или 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).

Смотрите также

Источник

Источник

+1
0
+1
1
+1
0
+1
1
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *