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).
Смотрите также
About Kernel Boot Parameters
This document provides simple instructions for adding a Linux kernel boot parameter to an Ubuntu system using GRUB 2.
When advised to try using a particular kernel boot parameter, it is usually a good idea to first add the parameter temporarily for testing. Once you have determined that adding the parameter has the desired effect, you can then add it permanently. Directions for both methods are below.
- are case-sensitive
- are sometimes just a simple word («splash» or «noapic«)
- sometimes have an = sign with various possible values («acpi_backlight=vendor«)
- sometimes include punctuation («i8042.noloop«)
Always enter kernel boot parameters exactly as advised. Errors in spelling or formatting or invalid values will not result in any error message, they will simply have no effect.
A complete list of parameters supported by the latest mainline kernel is available at The kernel’s command-line parameters.
Temporarily Add a Kernel Boot Parameter for Testing
- Restart your system, or shut it down and then power it on again.
- As the system starts to boot repeated tap the Esc key in order to force the «GNU GRUB» menu to appear. For BIOS-mode (not UEFI-mode) booting a SHIFT key can be held down continuously until the menu appears. The «GNU GRUB» menu will look something like this:
The Grub menu allows for choosing between different boot targets and modes |
- If the system hangs at the initial vendor logo screen when you hold down SHIFT, just release the SHIFT key briefly then hold it down again until the «GNU GRUB» menu appears.
- Once the «GNU GRUB» menu appears highlight the desired entry and press the e key to enter edit mode. The edit mode screen will look something like this:
- Log in to the system and start a terminal window (Applications->Accessories->Terminal).
- In the terminal window at the $ prompt, enter the command: sudo gedit /etc/default/grub
- Enter your password when prompted by [sudo].
- If the file /etc/default/grub appears to be empty or does not exist, see the instructions for earlier releases above).
- In the editor window, use the arrow keys to move the cursor to the line beginning with «GRUB_CMDLINE_LINUX_DEFAULT» then edit that line, adding your parameter(s) to the text inside the double-quotes after the words «quiet splash«. (Be sure to add a SPACE after «splash» before adding your new parameter.) Click the Save button, then close the editor window.
- In the terminal window at the $ prompt, enter the command: sudo update-grub
- Restart the system.
By editing the linux line, kernel and initrd parameters can be modified for just a single boot |
Note: The parameter(s) you’ve added to the linux line are only temporary: They will affect this boot session, but once you restart the system they will no longer be in effect.
Permanently Add a Kernel Boot Parameter
Note: The parameter(s) you’ve added to the GRUB_CMDLINE_LINUX_DEFAULT line are persistent, and will be in effect for every subsequent boot session (unless you remove them by repeating the procedure above).
Kernel/KernelBootParameters (последним исправлял пользователь merlijn-sebrechts 2022-12-02 14:25:41)
The material on this wiki is available under a free license, see Copyright / License for details.