Jump to content
From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи 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

- После появления меню нажмите `Tab` и добавьте их в конце строки:

      linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=/boot/initramfs-linux.img quiet splash

  Нажмите `Enter` для загрузки с этими параметрами.

- Для сохранения изменений между перезагрузками измените файл `/boot/syslinux/syslinux.cfg` и добавьте их в строку `APPEND`:

      APPEND root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash

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

### systemd-boot

- После появления меню нажмите `e` и добавьте параметры в конце строки:

      initrd=\initramfs-linux.img root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash

  Нажмите `Enter` для загрузки с этими параметрами.

Примечание:

- Если значение таймаута меню не установлено, во время загрузки зажмите пробел, чтобы меню 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

- Нажмите `e` в момент показа загрузочного меню и добавьте в строку, содержащую `linux`:

      linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash

  Нажмите `Ctrl+x` для загрузки с этими параметрами.

- Для сохранения изменений между перезагрузками, если вы не используете grub-mkconfig, можно изменить эту же строку напрямую в файле `/boot/grub/grub.cfg`, а для grub-mkconfig измените файл `/etc/default/grub` и добавьте параметры внутри кавычек в строке `GRUB_CMDLINE_LINUX_DEFAULT`:

        GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

  И затем сгенерируйте новый `grub.cfg`:

        # grub-mkconfig -o /boot/grub/grub.cfg

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

### GRUB Legacy

- Нажмите `e` в момент показа загрузочного меню и добавьте в строку, содержащую `kernel`:

      kernel /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash

  Нажмите `b` для загрузки с этими параметрами.

- Для сохранения изменений между перезагрузками измените файл `/boot/grub/menu.lst` и добавьте их в строку `kernel` аналогично примеру выше.

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

### LILO

- Добавьте в `/etc/lilo.conf`:

      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

  Нажмите `Enter` для загрузки с этими параметрами.

- Для сохранения изменений между перезагрузками измените файл `/boot/refind_linux.conf` и добавьте их внутри кавычек во всех нужных строках, например

      "Boot using default options"   "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash"

- Если вы отключили автоматическое определение ОС в rEFInd и вместо этого определяете разделы ОС в `esp/EFI/refind/refind.conf` для загрузки своих ОС, вы можете отредактировать его следующим образом:

      menuentry "Arch Linux" {
      	...
      	options  "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash"
      	...
      }

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

### EFISTUB

Смотрите EFISTUB#Using UEFI directly.

### dracut

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

### Взлом cmdline

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

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

    /root/cmdline

    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).

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

- Документация ядра: "The kernel’s command-line parameters"
- Power saving#Kernel parameters
- List of kernel parameters with further explanation and grouped by similar options

Category:

- Kernel (Русский)