- Kernel parameters (Русский)
- Настройка
- Syslinux
- systemd-boot
- GRUB
- GRUB Legacy
- LILO
- rEFInd
- EFISTUB
- dracut
- Взлом cmdline
- Список параметров
- Смотрите также
- Как просмотреть параметры ядра Linux для текущей загруженной системы
- Как просмотреть параметры ядра Linux с помощью /proc/cmdline
- Посмотреть параметры ядра Linux
- Как отобразить параметры или аргументы ядра Linux с помощью sysctl
- Как увидеть все параметры ядра
- Как изменить параметры ядра Linux
- Заключение
Kernel parameters (Русский)
Состояние перевода: На этой странице представлен перевод статьи Kernel parameters. Дата последней синхронизации: 2 июля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Существует три способа передачи параметров ядру и контроля над ним:
- При сборке ядра — через файл config . Полная информация Ядро#Компиляция.
- При запуске ядра — используя параметры командной строки (обычно через загрузчик).
- На этапе выполнения — через файлы в /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.
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.
Сначала создайте файл, содержащий желаемые параметры ядра
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).
Смотрите также
Как просмотреть параметры ядра Linux для текущей загруженной системы
Мануал
Как отобразить или просмотреть параметры ядра Linux для текущего запущенного / загруженного ядра?
Как посмотреть параметры командной строки ядра Linux?
Чтобы отобразить параметры командной строки ядра Linux, заданные для текущей загруженной системы, используйте любую из следующих команд Linux:
sysctl -a sysctl -a | more sysctl -a | grep 'something' cat /proc/cmdline
Как просмотреть параметры ядра Linux с помощью /proc/cmdline
В Linux можно использовать менеджер загрузки, такой как lilo или grub.
Можно передать аргументы или параметры ядру Linux во время загрузки.
Часто вам нужно настроить grub.
Все такие параметры хранятся в файле /proc/cmdline.
Для отображения / просмотра текущих параметров ядра используйте команду cat:
BOOT_IMAGE=/boot/vmlinuz-4.10.0-35-generic root=UUID=34ca8f2a-ac59-44d4-9701-8cd472ec9940 ro net.ifnames=0 biosdevname=0 quiet splash vt.handoff=7
Приведенная выше запись из файла /proc/cmdline показывает параметры, переданные ядру во время его запуска.
Я загрузил свой сервер Linux, используя /boot/vmlinuz-4.10.0-35-generic образ ядра.
Посмотреть параметры ядра Linux
Недавно загруженная система Linux может использовать следующую команду для той же цели:
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0-35-generic root=UUID=34ca8f2a-ac59-44d4-9701-8cd472ec9940 ro net.ifnames=0 biosdevname=0 quiet splash vt.handoff=7
Как отобразить параметры или аргументы ядра Linux с помощью sysctl
Иногда вам нужно настроить или обновить параметры ядра Linux.
Значения по умолчанию для определенных параметров ядра в Linux могут быть недостаточными для запуска программного обеспечения.
Часто ядро Linux настраивается с помощью команды sysctl.
Как увидеть все параметры ядра
Запустите следующую команду sysctl:
Используйте команду grep или more как пейджер / фильтр для sysctl:
sudo sysctl -a | more sudo sysctl -a | less sudo sysctl -a | grep 'foo' sudo sysctl -a | grep net.ipv4.ip_forward
Как изменить параметры ядра Linux
Отредактируйте файл /etc/sysctl.conf или другие файлы в каталоге /etc/sysctl.conf.d/.
Например, используйте текстовый редактор, такой как nano / vim :
$ sudo vi /etc//etc/sysctl.conf.d/my-security.conf
Добавьте следующие настройки:
## Reboot the machine soon after a kernel panic kernel.panic=10 ## Addresses of mmap base, heap, stack and VDSO page are randomized kernel.randomize_va_space=2 ## Ignore bad ICMP errors net.ipv4.icmp_ignore_bogus_error_responses=1
Сохраните и закройте файл в vim.
Наконец, запустите следующую команду load в настройках sysctl:
Заключение
В этом руководстве объясняется, как проверить текущие настройки параметров ядра Linux с помощью команды sysctl и файла /proc/cmdline.
Для получения дополнительной информации см .:
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (105)
- Книги (27)
- Мануал (2 306)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (820)
- Обход запретов (34)
- Опросы (3)
- Скрипты (114)
- Статьи (352)
- Философия (114)
- Юмор (18)
Anything in here will be replaced on browsers that support the canvas element
OpenVPN Community Edition (CE) – это проект виртуальной частной сети (VPN) с открытым исходным кодом. Он создает защищенные соединения через Интернет с помощью собственного протокола безопасности, использующего протокол SSL/TLS. Этот поддерживаемый сообществом проект OSS (Open Source Software), использующий лицензию GPL, поддерживается многими разработчиками и соавторами OpenVPN Inc. и расширенным сообществом OpenVPN. CE является бесплатным для […]
Что такое 404 Frame? Большинство инструментов для взлома веб-сайта находятся в 404 Frame. Итак, что же представляют собой команды? Вы можете отдавать команды, используя повседневный разговорный язык, поскольку разработчики не хотели выбирать очень сложную систему команд. Команды Команды “help” / “commands” показывают все команды и их назначение. Команда “set target” – это команда, которая должна […]
В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]
Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]
Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]