Линукс посмотреть параметры ядра

Команда Sysctl в Linux

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

В этой статье объясняется, как использовать команду sysctl для просмотра и изменения параметров ядра во время выполнения.

Использование sysctl для просмотра параметров ядра

Чтобы просмотреть все текущие параметры ядра, вызовите команду sysctl с параметром -a :

В результате будет выведен большой список, который выглядит примерно так, где каждая строка включает имя параметра и его значение:

abi.vsyscall32 = 1 debug.exception-trace = 1 debug.kprobes-optimization = 1 . 

Все пользователи могут просматривать текущие параметры ядра; только пользователь root может изменять их значения.

Вы можете проверить значение одного параметра, передав его имя в качестве аргумента в sysctl . Например, чтобы проверить текущее значение подкачки, введите:

Swappiness — это свойство ядра Linux, которое определяет, как часто система будет использовать пространство подкачки .

Команда sysctl считывает информацию из каталога /proc/sys . /proc/sys — это виртуальный каталог, содержащий файловые объекты, которые можно использовать для просмотра и установки текущих параметров ядра.

Вы также можете просмотреть значение параметра, отобразив содержимое соответствующего файла. Единственная разница в том, как представлен файл. Например, как sysctl vm.swappiness и cat /proc/sys/vm/swappiness дадут одинаковый результат. При использовании sysctl косые черты каталога заменяются точками, и proc.sys часть proc.sys .

Использование sysctl для изменения параметров ядра

Чтобы установить параметр ядра во время выполнения, выполните команду sysctl за которой следует имя и значение параметра в следующем формате:

Если значение содержит пустое пространство или специальные символы, заключите значение в двойные кавычки. Вы также можете передать несколько пар parameter=value в одной команде.

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

Например, чтобы включить пересылку пакетов IPv4, вы должны запустить:

sysctl -w net.ipv4.ip_forward=1

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

Читайте также:  Dr web workstation linux

Чтобы установить параметр постоянно, вам необходимо записать настройки в /etc/sysctl.conf или другой файл конфигурации в каталоге /etc/sysctl.d :

sysctl -w net.ipv4.ip_forward=1 >> /etc/sysctl.conf

Другой способ изменить параметры — использовать команду echo для записи настроек в файлы в каталоге /proc/sys . Например, вместо выполнения приведенной выше команды вы можете использовать:

echo 1 > /proc/sys/net/ipv4/ip_forward

Параметр -p позволяет загружать настройки из файла конфигурации:

sysctl -p /etc/sysctl.d/file_name.conf

Если файл не указан, sysctl читает /etc/sysctl.conf .

Выводы

Команда sysctl позволяет просматривать и изменять параметры ядра Linux.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Источник

Kernel parameters (Русский)

Состояние перевода: На этой странице представлен перевод статьи Kernel parameters. Дата последней синхронизации: 2 июля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

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

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

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

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

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

Настройка

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

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

Примеры ниже демонстрируют, как добавить параметры quiet и splash в Syslinux, systemd-boot, GRUB, GRUB Legacy, LILO и rEFInd.

Syslinux

linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=/boot/initramfs-linux.img quiet splash
  • Для сохранения изменений между перезагрузками измените файл /boot/syslinux/syslinux.cfg и добавьте их в строку APPEND :
APPEND root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash

Полную информацию по настройке можно прочитать в статье Syslinux.

Читайте также:  Php установить на линукс

systemd-boot

initrd=\initramfs-linux.img root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
  • Если значение таймаута меню не установлено, во время загрузки зажмите пробел, чтобы меню 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

linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
  • Для сохранения изменений между перезагрузками, если вы не используете grub-mkconfig, можно изменить эту же строку напрямую в файле /boot/grub/grub.cfg , а для grub-mkconfig измените файл /etc/default/grub и добавьте параметры внутри кавычек в строке GRUB_CMDLINE_LINUX_DEFAULT :
GRUB_CMDLINE_LINUX_DEFAULT
# grub-mkconfig -o /boot/grub/grub.cfg

Полную информацию по настройке можно прочитать в статье GRUB (Русский).

GRUB Legacy

kernel /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
  • Для сохранения изменений между перезагрузками измените файл /boot/grub/menu.lst и добавьте их в строку kernel аналогично примеру выше.

Полную информацию по настройке можно прочитать в статье GRUB Legacy (Русский).

LILO

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
  • Для сохранения изменений между перезагрузками измените файл /boot/refind_linux.conf и добавьте их внутри кавычек во всех нужных строках, например
"Boot using default options" "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash"
  • Если вы отключили автоматическое определение ОС в rEFInd и вместо этого определяете разделы ОС в esp/EFI/refind/refind.conf для загрузки своих ОС, вы можете отредактировать его следующим образом:

Полную информацию по настройке можно прочитать в статье rEFInd (Русский)

EFISTUB

dracut

dracut может встраивать параметры ядра в initramfs, что позволяет исключить их из конфигурации загрузчика. Смотрите dracut#Kernel command line options.

Взлом cmdline

Даже без доступа к загрузчику можно изменить параметры ядра, чтобы включить отладку (если у вас есть root-доступ). Это можно сделать, перезаписав /proc/cmdline , в котором хранятся параметры ядра. Однако /proc/cmdline недоступен для записи даже для root, но это можно обойти с помощью bind mount.

Читайте также:  Linux определить архитектуру процессора

Сначала создайте файл, содержащий желаемые параметры ядра

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, используется для включения 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).

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

Источник

Оцените статью
Adblock
detector