Так же, как вы можете использовать загрузчик GRUB для изменения процесса загрузки, вы можете изменить параметры ядра во время выполнения. Для изменения параметров ядра можно использовать команду терминала или отредактировать их в конфигурационном файле. Они позволяют изменять параметры ядра "на лету", чтобы изменить поведение процесса загрузки. В этой статье мы узнаем, как изменить параметры ядра во время выполнения.
Как изменить параметры ядра во время выполнения программы
Прежде чем мы продолжим, нам необходимо узнать больше о каталоге /proc в Linux. Он содержит информацию о стандартном методе обработки информации о процессах и системе, а также информацию о ядре и памяти. В /proc/sys можно найти всю информацию о драйверах, устройствах и некоторых функциях ядра. Ниже описаны шаги по изменению параметров ядра во время выполнения программы с помощью команды sysctl.
Полный список доступных параметров ядра можно просмотреть с помощью следующей команды.
1 | sysctl -a |
Если вам нужен только список этих параметров, вы можете передать приведенный выше вывод команды в команду wc.
1 | sysctl -a | wc -l |
Обратите внимание, что вывод команды sysctl -a может содержать много строк, так как в нем много параметров ядра. Вы можете передать его командам типа less для постраничного просмотра вывода.
1 | sysctl -a | less |
Вот пример вывода.
Обратите внимание, что первые несколько символов каждой строки соответствуют именам каталогов в каталоге /proc/sys. Вот пример. Вы увидите, что sr0 - это имя, используемое ядром для идентификации диска.
1 | dev.cdrom.info = имя диска: sr0 |
Вот часто встречающиеся префиксы в этом файле и их значение.
- dev: параметры для определенных устройств, подключенных к машине.
- fs: конфигурация файловой системы (например, квоты и inodes).
- kernel: конфигурация, специфичная для ядра.
- net: конфигурация сети.
- vm: использование виртуальной памяти ядра.
Вот еще несколько примеров того, что означают различные параметры.
1 2 | dev.cdrom.autoclose → /proc/sys/dev/cdrom/autoclose net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward |
Если вы хотите посмотреть значение определенного параметра ядра, вы можете сделать это, упомянув его после команды sysctl или прочитав соответствующий файл. Вот несколько примеров.
1 2 3 4 | sysctl dev.cdrom.autoclose cat /proc/sys/dev/cdrom/autoclose sysctl net.ipv4.ip_forward cat /proc/sys/net/ipv4/ip_forward |
Изменение или установка параметров ядра
Вы можете установить или изменить параметры ядра с помощью команды sysctl с опцией -w или с помощью echo для прямой записи связанного файла. Вот команды для отключения пересылки пакетов в нашей системе
1 | echo 0 > /proc/sys/net/ipv4/ip_forward |
ИЛИ
1 | sysctl -w net.ipv4.ip_forward=0 |
Обратите внимание, что приведенные выше команды устанавливают параметры ядра только во время текущей сессии и сбрасываются при перезагрузке системы.
Чтобы установить эти значения навсегда, необходимо изменить их в конфигурационном файле /etc/sysctl.conf. Например, откройте этот файл в текстовом редакторе. Но прежде чем редактировать этот файл, рекомендуется сделать его резервную копию, чтобы в случае возникновения каких-либо проблем в дальнейшем вы могли использовать резервный файл для восстановления исходного файла.
1 2 | sudo cp /etc/sysctl.conf /etc/sysctl-backup.conf nano /etc/sysctl.conf |
Добавьте в него следующую строку.
1 | net.ipv4.ip_forward=0 |
Сохраните и закройте файл. Затем выполните следующую команду, чтобы применить изменения.
1 | sysctl -p |
Заключение
В этой статье мы узнали, как изменять параметры ядра во время загрузки системы. Напомним, что параметры ядра позволяют легко изменять настройки ядра во время загрузки системы. Как правило, это делается путем изменения загрузчика GRUB, но вы также можете сделать это изнутри Linux с помощью команд терминала или редактирования конфигурационного файла. При использовании команд терминала параметры ядра будут сброшены во время загрузки системы. Чтобы навсегда изменить эти параметры, необходимо отредактировать конфигурационный файл.