Изменение параметра ядра linux

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

Ядру Linux можно передавать различные параметры для изменения стандартного поведения или информирования о нестандартной конфигурации оборудования. Делать это можно непосредственно перед загрузкой ядра или уже во время выполнения. Во время выполнения параметры ядра можно установить отредактировав файлы в подсистеме /proc или /sys. Перед загрузкой параметры передаются с помощью загрузчика Grub.

Если вы хотите изменить или добавить параметры ядра Linux с помощью Grub вам необходимо отредактировать файл шаблона конфигурации или конфигурационный файл загрузчика. Расположение и название файла шаблона зависит от конкретного дистрибутива.

Настройка параметров ядра Grub в системе

Файл шаблона конфигурации Grub в Debian подобных системах находится по адресу /etc/default/grub. Добавьте параметр ядра в виде имя = значение в переменную GRUB_CMDLINE_LINUX_DEFAULT:

Здесь же вы можете удалить нежелательные параметры ядра Grub установленные по умолчанию, например, заменить quiet на verbose для подробного вывода информации о процессе загрузки. Затем выполните следующее чтобы обновить конфигурацию загрузчика:

Если такой команды не существует нужно установить пакет grub2-common:

sudo apt install grub2-common

В Fedora и CentOS скрипта update-grub для обновления конфигурации загрузчика нет, поэтому надо вручную сгенерировать новый конфигурационный файл:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Лучше всего добавлять параметры загрузки ядра linux именно этим способом, но давайте рассмотрим ещё несколько альтернативных вариантов

Параметры загрузки ядра в grub.cfg

Если вы не можете воспользоваться способом, описанным выше можно отредактировать непосредственно конфигурационный файл загрузчика который находится по пути /boot/grub/grub.conf. В этом файле нужно найти секцию отвечающую за стандартную загрузку Linux. Обычно, это первая секция menuentry:

Найдите её, а затем в этой секции найдите строчку linux /boot/vmlinuz. в конец этой строки вы и можете дописать свои параметры, в таком же формате. Затем сохраните изменения в файле и перезагрузите компьютер. Ядро загрузится с новыми параметрами. Если вас интересовал вопрос какой командой загружается ядро linux в grub, то это именно команда linux. Синтаксис её такой:

linux параметры_ядра

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

Параметры ядра Grub при загрузке

Загрузчик Grub позволяет также редактировать пункты меню перед запуском системы. Для этого в меню Grub выберите нужный пункт и нажмите клавишу E. Откроется редактор текущей секции меню. Здесь надо, аналогично предыдущему способу найти строчку linux /boot/vmlinuz. и дописать в конец ваши параметры ядра Linux, например, init=/bin/bash:

Читайте также:  Отключить хранитель экрана linux mint

Затем нажмите кнопку F10 или Ctrl+X чтобы продолжить загрузку с новыми параметрами. Эти параметры будут актуальны до следующей перезагрузки. На этом всё. Надеюсь информация из статьи была для вас полезной.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Kernel parameters

There are three ways to pass options to the kernel and thus control its behaviour:

  1. When building the kernel—in the kernel’s config file. See Kernel#Compilation for details.
  2. When starting the kernel—using command line parameters (usually through a boot loader).
  3. At runtime—through the files in /proc/sys/ (see sysctl) and /sys/ .

Note: The options of loadable modules can be set via .conf files in /etc/modprobe.d/ . See Kernel module#Using files in /etc/modprobe.d/.

Between the three methods, the configurable options differ in availability, their name and the method in which they are specified. This page only explains the second method (kernel command line parameters) and shows a list of the most used kernel parameters in Arch Linux.

Most parameters are associated with subsystems and work only if the kernel is configured with those subsystems built in. They also depend on the presence of the hardware they are associated with.

Kernel command line parameters either have the format parameter or parameter=value .

Configuration

  • You can check the parameters your system was booted up with by running cat /proc/cmdline and see if it includes your changes.
  • The Arch Linux installation medium uses Syslinux for BIOS systems, and GRUB for UEFI systems.

Kernel parameters can be set either temporarily by editing the boot entry in the boot loader’s boot selection menu, or permanently by modifying the boot loader’s configuration file.

The following examples add the quiet and splash parameters to Syslinux, systemd-boot, GRUB, GRUB Legacy, LILO, and rEFInd.

Syslinux

linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=/boot/initramfs-linux.img quiet splash
  • To make the change persistent after reboot, edit /boot/syslinux/syslinux.cfg and add them to the APPEND line:
APPEND root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash

For more information on configuring Syslinux, see the Syslinux article.

systemd-boot

initrd=\initramfs-linux.img root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
  • If you have not set a value for menu timeout, you will need to hold Space while booting for the systemd-boot menu to appear.
  • If you cannot edit the parameters from the boot menu, you may need to edit /boot/loader/loader.conf and add editor 1 to enable editing.
  • To make the change persistent after reboot, edit /boot/loader/entries/arch.conf (assuming you set up your EFI system partition) and add them to the options line:
options root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash

For more information on configuring systemd-boot, see the systemd-boot article.

Читайте также:  Настроить прокси сервер astra linux

GRUB

linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
  • To make the change persistent after reboot, you could manually edit /boot/grub/grub.cfg with the exact line from above, or if using grub-mkconfig:
GRUB_CMDLINE_LINUX_DEFAULT
# grub-mkconfig -o /boot/grub/grub.cfg

For more information on configuring GRUB, see the GRUB article.

GRUB Legacy

kernel /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
  • To make the change persistent after reboot, edit /boot/grub/menu.lst and add them to the kernel line, exactly like above.

For more information on configuring GRUB Legacy, see the GRUB Legacy article.

LILO

image=/boot/vmlinuz-linux . quiet splash

For more information on configuring LILO, see the LILO article.

rEFInd

  • Press + , F2 , or Insert on the desired menu entry and press it again on the submenu entry. Add kernel parameters at the end of the string:
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=\boot\initramfs-linux.img quiet splash
  • To make the change persistent after reboot, edit /boot/refind_linux.conf and append them between the quotes in all required lines, for example
"Boot using default options" "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash"
  • If you have disabled auto-detection of OSes in rEFInd and are defining OS stanzas instead in esp/EFI/refind/refind.conf to load your OSes, you can edit it like:

For more information on configuring rEFInd, see the rEFInd article.

EFISTUB

dracut

dracut is capable of embedding the kernel parameters in the initramfs, thus allowing to omit them from the boot loader configuration. See dracut#Kernel command line options.

Hijacking cmdline

Even without access to your bootloader it is possible to change your kernel parameters to enable debugging (if you have root access). This can be accomplished by overwriting /proc/cmdline which stores the kernel parameters. However /proc/cmdline is not writable even as root, so this hack is accomplished by using a bind mount to mask the path.

First create a file containing the desired kernel parameters

root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 ro console=tty1 logo.nologo debug

Then use a bind mount to overwrite the parameters

# mount -n --bind -o ro /root/cmdline /proc/cmdline

The -n option skips adding the mount to /etc/mtab , so it will work even if root is mounted read-only. You can cat /proc/cmdline to confirm that your change was successful.

Parameter list

This list is not comprehensive. For a complete list of all options, please see the kernel documentation.

    The kernel uses rw if neither ro or rw are explicitly set on kernel command line (see bootparam(7) § General non-device-specific boot arguments ). However, mkinitcpio uses ro as the default value overriding the kernel’s default (see mkinitcpio(8) § EARLY INIT ENVIRONMENT ). Boot loaders may also have their own configured default, for example, grub-mkconfig uses rw (see FS#36275 as a reference).

Note: rw is required when using mkinitcpio’s fsck hook (see [1]) or when using F2FS as the root file system.

Читайте также:  Изменить разрешение экрана linux debian

See also

Источник

Команда 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

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

Чтобы установить параметр постоянно, вам необходимо записать настройки в /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.

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

Источник

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