Как передать параметры ядру linux

Углубление в параметры ядра. Часть 1: загрузочные параметры

Диапазон статьи

Jul 27, 2020 · 7 min read

EC2 (эластичное облако вычислений) — это наиболее часто используемый AWS-сервис, поскольку он надёжен, гибок и позволяет масштабируемость. EC2 можно назвать “хребтом” AWS, т.к. прямо или косвенно он задействуется во множестве других сервисов AWS. По большей части публичные AMI, предоставляемые Amazon и другими крупными вендорами, уже прошли тщательные испытания на пригодность использования в продакшене. Тем не менее иногда возникает необходимость подстройки поведения инстансов EC2 через изменение параметров их ядер.

В текущей серии статей мы рассмо т рим, что представляют собой параметры ядра (включая параметры его загрузки), а также как изменять эти параметры для Amazon Linux 1/2, RHEL 5/6/7/8, CentOS 6/7, SLES 12/15 и Ubuntu 14.04/16.04/18.04/20.04 на инстансах AWS EC2. Это будет первой частью погружения в тему параметров ядра.

Знакомство с параметрами ядра

Ядро Linux — это сложный элемент ПО, чьё поведение, как и поведение любого другого ПО, зависит от параметров по умолчанию, установленных в коде самого этого ядра. К примерам этого поведения можно отнести то, как ядро управляет диском, памятью или загрузкой системы. Эти параметры определяют поведение Linux, и в целях корректировки поведения системы могут быть изменены как в процессе работы ядра, так и при его загрузке.

Существует 3 способа, с помощью которых вы можете добавлять или редактировать эти параметры. Выбор одного из них будет зависеть от конкретного случая.

  1. При загрузке ядра (загрузочные параметры). Эти параметры вызываются через загрузчика ОС.
  2. В процессе работы ядра через псевдо-файловые системы /proc и /sys, используя “sysctl”.
  3. При компиляции (или перекомпиляции) ядра и его подсистем (вроде initrd).

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

Загрузочные параметры ядра

В процессе загрузки Linux требуется ряд параметров, посредством которых ядру предоставляется информация об аппаратных средствах. В частности, нам приходится иметь дело с этими параметрами, когда ядро не способно определить конкретный параметр самостоятельно, и мы добавляем его вручную. А иногда мы редактируем параметры для переопределения их значений, обнаруживаемых ядром.

За загрузку и запуск ядра Linux отвечает загрузчик ОС, поэтому, чтобы иметь возможность передать параметры загрузки, мы используем специализированный загрузчик вроде GRUB.

Загрузочные параметры ядра определяются в виде списка строк, разделённых пробелами следующим образом:
name[=value_1][,value_2]…[,value_10].

На данный момент код ядра может обрабатывать максимум 10 отделённых запятыми значений параметров. Тем не менее допускается переиспользование одного и того же ключевого слова.

К примеру, приведу конфигурацию grub для инстанса на Amazon Linux 1. В ней я изменил параметр “console”, определив для него 2 значения (допускается до 10).

Мы можем также предоставить ядру параметры загрузки, приведённые ниже. Здесь вместо определения значений “console” в виде одного параметра мы повторно использовали console для определения другого значения. При необходимости каждый параметр “console” может содержать до 10 значений, что позволяет выйти за рамки предыдущих ограничений.

Существует несколько способов изменения загрузочных параметров ядра. Кроме того, все дистрибутивы Linux (кроме Ubuntu), упомянутые ранее, используют схожие шаги для изменения этих параметров.

1. Универсальный способ—обновление загрузочных параметров через утилиту grubby

grubby— это инструмент командной строки для обновления и отображения информации о файлах конфигурации загрузчика. grubby отлично работает со всеми дистрибутивами Linux, включая Amazon Linux 1/2, RHEL 5/6/7/8, CentOS 6/7 и SLES 12/15, но при этом не дружит с Ubuntu.

PS: grubby по умолчанию установлен на все дистрибутивы Linux, кроме SLES. Инструкции по его установке вы можете найти в разделе “Добавить репозиторий и установить вручную” здесь.

Преимущества grubby

Работа с таким инструментом, как grubby, предоставляет множество преимуществ, включая простоту и согласованность во многих дистрибутивах. Для использования grubby вам также не нужно обладать глубокими познаниями об его файлах конфигурации. Например, вы можете получить рабочее ядро при помощи одной команды:

Обратите внимание, что это текущая версия ядра. Вы получите её же при помощи команды “uname-r” (текущая версия ядра) или через запись меню “default” в файле конфигурации. Более подробную информацию вы можете получить при помощи опции -info (аналогично использованию файла конфигурации):

Попробуйте также опцию “grubby -info ALL”.

С остальными опциями вы можете ознакомиться при помощи “grubby -help”.

В процессе загрузки загрузчик передаёт параметры ядру Linux в буфер памяти под названием kernel command line (командная строка ядра). Файл /proc/cmdline в псевдо-файловой системе /proc также содержит копию этих параметров. Проверить это мы можем при помощи следующей команды:

Работа с grubby

Чтобы добавить/изменить параметры ядра посредством grubby, нам нужно указать параметры при помощи -args=args совместно с опцией -update-kernel=default-kernel-path. Например, я добавил параметры “clocksource=tsc tsc=reliable”. Параметр “clocksource=tsc” устанавливает источник тактовой частоты как tsc (clocksource=tsc), если он ещё таковым не установлен. Параметр же “tsc=reliable” отключает все проверки стабильности TSC в процессе загрузки.

PS. Для удаления существующих параметров используйте команду -remove-arguments.

Перезагрузите систему и убедитесь, что параметры “clocksource=tsc tsc=reliable” добавлены:

Либо просто проверьте это через grubby:

В дальнейшем вы можете убедиться, что источником тактовой частоты определён tsc, при помощи следующей команды:

Читайте также:  Служба удаленного помощника windows

Это всё, что касается grubby.

2. Дистрибутивы Linux с Legacy GRUB

Amazon Linux 1 аналогично RHEL6.X, RHEL5.X и CentOS использует в качестве загрузчика GRUB (также известный как Legacy RUB). Узнать версию в подобных дистрибутивах вы можете так:

Файл конфигурации GRUB располагается в /boot/grub/grub.conf и содержит две символические ссылки на себя: /etc/grub.conf и /boot/grub/menu.lst. Нам нужно изменить эту конфигурацию grub, добавив дополнительные параметры загрузки ядра. Однако, чтобы сделать это эффективно, давайте сначала разберём основы конфигурации grub. Ниже приведён её пример из инстанса EC2 Amazon Linux 1.

Конфигурация GRUB

Здесь, как вы видите, присутствует более 1 записи меню. Запись меню наряду с параметрами содержит информацию о расположении образов ядра и initrd. Каждая запись начинается с “title…” и содержит численный порядок, начиная с 0. Значение “default” определяет текущий образ ядра, который используется для загрузки serve=. В конфигурации, приведённой выше, значение представлено как “0”. Это означает, что действует первая запись меню (4.14.181–108.257.amzn1.x86_64). Давайте взглянем на строку ядра. Вся структура name[=value_1], указанная после местоположения образа ядра (выделена жирным курсивом и разделена пробелами), представляет параметры загрузки:

kernel /boot/vmlinuz-4.14.181–108.257.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295

Важно знать её, чтобы добавлять параметры в правильную запись меню.

Работа с конфигурацией GRUB

Теперь отредактируйте файл конфигурации (/etc/grub.conf) в предпочтительном редакторе и добавьте/измените нужные вам параметры. Я добавил те же параметры “clocksource=tsc tsc=reliable”, что и ранее.

kernel /boot/vmlinuz-4.14.181–108.257.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 clocksource=tsc tsc=reliable

Перезапустите систему, чтобы изменения вступили в силу. Проверить это мы можем тем же способом, что и в опции 1:

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

3. Дистрибутивы Linux с загрузчиком GRUB2

Amazon Linux 2, так же как RHEL7.X, CentOS7, SLES15 и SLES12, использует в качестве загрузчика GRUB2. Узнать версию такого дистрибутива вы можете следующим образом:

Для систем, по умолчанию использующих загрузчик GRUB2, конфигурация этого загрузчика размещается в /boot/grub2/grub.cfg. Управлять этим файлом должен только сам GRUB2, поскольку он генерирует его автоматически посредством grub2-mkconfig с использованием шаблонов из каталога /etc/grub.d и файла /etc/default/grub. Об этом мы поговорим чуть позже.

Понимание конфигурации GRUB2

PS. Если вы используете инстансы из семейства ARM, упомянутые здесь и здесь, то конфигурация grub должна располагаться где-то в каталоге /boot/efi/EFI. К примеру, для RHEL7, работающего на ARM, это будет /boot/efi/EFI/redhat/grub.cfg.

Загрузочные параметры ядра дистрибутивов, использующих GRUB2, определены в каталоге /etc/default/grub. Давайте взглянем на пример из инстанса на Amazon Linux 2:

“GRUB_CMDLINE_LINUX_DEFAULT” содержит загрузочные параметры (командной строки) ядра. Это строка, в которой мы редактируем конфигурацию grub для изменения загрузочных параметров.

GRUB_CMDLINE_LINUX_DEFAULT=”console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295

Работа с конфигурацией GRUB2

Отредактируйте файл конфигурации grub (/etc/default/grub.conf) с помощью предпочтительного редактора. Добавьте/измените интересующие вас параметры для строки GRUB_CMDLINE_LINUX_DEFAULT. Например, я добавил параметры systemd.log_level=debug systemd.log_target=console. Эти дополнительные параметры активируют режим отладки системы и перенаправляют в консоль. Итак, после обновления моя запись в файле /etc/default/grub будет выглядеть примерно так:

GRUB_CMDLINE_LINUX_DEFAULT=”console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 systemd.log_level=debug systemd.log_target=console”

Теперь, чтобы автоматически сгенерировать конфигурацию grub2 на основе добавленных параметров, нам нужно запустить grub2-mkconfig, добавив путь к этой конфигурации:

Перезагрузите систему и проверьте, вступили ли изменения в силу из /proc/cmdline, как мы делали ранее.

4. Для инстансов EC2 на Ubuntu 14.04 / 16.04 / 18.04 / 20.04

GRUB2 является предустановленным загрузчиком и менеджером для Ubuntu, начиная с версии 9.10. Именно поэтому процесс изменения загрузочных параметров ядра практически такой же, как и для других дистрибутивов Linux с GRUB2, которые мы рассмотрели выше.

В данном случае местоположением файла конфигурации будет /etc/default/grub.d/50-cloudimg-settings.cfg.

Для добавления параметров откройте в редакторе /etc/default/grub.d/50-cloudimg-settings.cfg и измените нужные параметры в GRUB_CMDLINE_LINUX_DEFAULT, как мы делали ранее.

После этого выполните команду update-grub, чтобы повторно сгенерировать уже обновлённую конфигурацию grub:

PS. update-grub — это альтернатива или, так скажем, сокращённая версия команды grub-mkconfig -o /boot/grub/grub.cfg.

На этом всё. Надеюсь, эта статья была для вас полезна. Во второй её части мы поговорим о параметрах выполнения ядра и многом другом.

Источник

Как передать параметры ядру linux

Если ядро загружается непосредственно из BIOS, то возможности указать параметры нет. Для того, чтобы передать параметры ядру, необходимо использовать системный загрузчик, позволяющий это сделать, например GRUB.

Список аргументов

где «имя» — уникальное ключевое слово, используемое для определения части ядра, которой передаются указанные значения (если есть). Обратите внимание, что ограничение в 10 значений действительно существует, так как код, используемый в данный момент, обрабатывает только 10 разделённых запятой параметров на одно ключевое слово. Тем не менее, в особых случаях вы можете указать одно ключевое слово ещё раз, с помощью 10-и дополнительных параметров (если это позволяет функция настройки).

Большая часть обработки выполняется кодом из файла ядра init/main.c. Сначала ядро проверяет, является ли аргумент одним из специальных аргументов «root=», «nfsroot=», «nfsaddrs=», «ro», «rw», «debug» или «init». Назначение этих специальных аргументов объясняется ниже.

Затем производится проверка списка функций настройки: есть ли для заданного строкового параметра (например «foo») связанная с ним функция настройки («foo_setup()») для определённого устройства или части ядра. То есть, если вы передали ядру строку foo=3,4,5,6, то ядро проверит, зарегистрирован ли «foo» в массиве настроек. Если да, то будет вызвана соответствующая «foo» функция (foo_setup()), которой будут переданы аргументы 3, 4, 5 и 6, как указано в командной строке ядра.

Все параметры, указанные в виде «foo=bar» и не распознанные как обращения к функциям настройки (см. выше), считаются переменными окружения. Например, как аргумент загрузки можно указать «TERM=vt100».

Все остальные аргументы, не обработанные ядром и не считающиеся переменными окружения, затем будут переданы PID 1 (обычно, это программа init(1)). Наиболее часто встречающийся аргумент, передаваемый процессу init, — слово «single», указывающее, что система должна быть загружена в однопользовательском режиме, в котором не запускаются какие-либо службы. Более подробная информация об аргументах приведена в руководстве по установленной в системе версии init(1).

Читайте также:  Windows audio включена звука нет

Общие аргументы загрузки, не относящиеся к настройке устройств

Корневое устройство может быть указано как в символьном, так и в числовом виде. Символьное представление имеет вид /dev/XXYN, где XX означает тип устройства (например, «hd» — для совместимых с ST-506 жёстких дисков, при этом Y принимает значения от «a» до «d»; «sd» — для совместимых со SCSI дисков, при этом Y принимает значения от «a» до «e»), Y — буква или номер устройства, а N — номер (в десятичной системе счисления) раздела на этом устройстве.

Заметим, что в данном случае речь не идёт о конкретном назначении этих устройств в файловой системе. Приставка «/dev/» — это всего лишь дань соглашениям.

Также применяется менее удобный и менее совместимый способ указания устройств с помощью чисел в формате «старший/младший номер» (например, старший номер /dev/sda3 равен 8, младший равен 3, и устройство можно указать как «root=0x803»).

‘rootdelay=’ В этом параметре указывается задержка (в секундах) перед попыткой смонтировать корневую файловую систему. ‘rootflags=. ‘ В этом параметре указывается строка параметров монтирования корневой файловой системы (смотрите также fstab(5)). ‘rootfstype=. ‘ Параметр «rootfstype» указывает ядру смонтировать корневую файловую систему, как если бы она была задаваемого типа. Это может быть полезно (как пример) при монтировании файловой системы ext3 как ext2 и затем удалении журнала в корневой файловой системе, что, фактически, превращает ext3 в ext2 и для этого не нужно загружать машину с другого носителя. «ro» и «rw» Параметр «ro» указывает ядру монтировать корневую файловую систему «только для чтения» для того, чтобы программа проверки целостности файловой системы (fsck) могла работать с не изменяющейся файловой системой. Ни один процесс не может записать данные в файл, находящийся в данной файловой системе до тех пор, пока она не будет «перемонтирована» для чтения/записи, например, командой «mount -w -n -o remount /» (см. также mount(8)).

Параметр «rw» указывает ядру монтировать корневую файловую систему в режиме для чтения/записи. Он используется по умолчанию.

‘resume=. ‘ Указывает ядру где расположены данные suspend-to-disk, которые вы хотите использовать для возобновления работы машины при выходе из состояния сна. Обычно совпадает с расположение раздела или файла подкачки. Пример:

«reserve=…» Этот параметр используется для защиты от тестирования определённых областей ввода/вывода. Команда должна быть задана в следующем виде:

В некоторых машинах драйверы неправильно определяют аппаратное обеспечение или вызывают некорректную реакцию на тестирование определённых областей. В этих случаях может появиться необходимость предотвратить проверку (автоопределение) таких устройств.

Данный параметр загрузки служит для указания определённой области портов ввода/вывода, которую не нужно тестировать. Драйвер устройства не будет проверять указанную область, если только другой параметр явно не указывает на необходимость их проверки.

Например, загрузочная строка

предотвращает проверку адресов 0x300-0x31f всеми драйверами устройств, кроме «blah». «panic=N» По умолчанию, ядро не будет перезагружаться после паники, однако этот параметр заставит ядро перезагрузиться через N секунд (если N больше 0). Время до перезагрузки может быть также изменено командой

«reboot=[warm|cold][,[bios|hard]]» Начиная Linux 2.0.22 по умолчанию используется «холодная» (cold) перезагрузка. Возможно вернуть старое значение (warm) по умолчанию с помощью «reboot=warm» («холодная» перезагрузка может понадобиться для сброса аппаратного обеспечения, однако, она может уничтожить данные дискового кэша. «Теплая» перезагрузка может быть несколько быстрее). По умолчанию перезагрузка производится аппаратными (hard) средствами, а именно запросом контроллеру клавиатуры команды на установку низкого уровня линии сброса. Однако точно существует, по меньшей мере, один тип материнских плат, на которых этот способ не работает. При указании параметра «reboot=bios» перезагрузка будет осуществляться путем перехода в BIOS. «nosmp» и «maxcpus=N» (Только, если определён __SMP__.) Параметры загрузки «nosmp» или «maxcpus=0» полностью отключают SMP. Аргумент «maxcpus=N» ограничивает количество процессоров, активируемых в режиме SMP, значением N.

Аргументы загрузки, используемые разработчиками ядра

Необработанную информацию оценки можно прочитать из /proc/profile. Для удобства чтения можно воспользоваться какой-либо утилитой, например, readprofile.c. Запись в /proc/profile приведёт к сбросу показаний счётчиков.

Аргументы загрузки для использования ramdisk

В Linux 1.3.48 работа с ramdisk была значительно изменена. Раньше память выделялась статически и существовал параметр «ramdisk=N», определявший её размер. Также возможно было задать необходимый размер во время сборки ядра. В настоящее время под ram-диски используются буферный кэш, размер которого изменяется динамически. Дополнительную информацию по текущем настройкам ramdisk можно найти в файле исходного кода ядра Documentation/blockdev/ramdisk.txt (в старых ядрах — Documentation/ramdisk.txt).

Существует четыре параметра: два логических и два целочисленных.

«load_ramdisk=N» Если N=1, то выполнять загрузку ram-диска. Если N=0, то ramdisk не загружается (по умолчанию 0). «prompt_ramdisk=N» Если N=1, то запрашивать вставку дискеты (по умолчанию). Если N=0, то не запрашивать (таким образом, этот параметр вообще не нужен). «ramdisk_size=N» или «ramdisk=N» (устарел) Установить предельный размер ram-диска(-ов) равным N КБ. По умолчанию 4096 (4МБ). «ramdisk_start=N» Установить номер начального блока (смещение на дискете, с которого начинается ram-диск) равным N. Этот параметр не требуется, если ram-диск находится сразу за образом ядра. «noinitrd» (Только, если ядро было собрано с CONFIG_BLK_DEV_RAM и CONFIG_BLK_DEV_INITRD). В настоящее время существует возможность собрать ядро с поддержкой initrd. Если эта возможность включена, то при запуске загружается ядро и начальный ram-диск. Затем ядро преобразует initrd в «обычный» ram-диск, который монтируется в качестве корневой файловой системы на чтение-запись. Далее запускается /linuxrc. Затем монтируется «настоящая» корневая файловая система, а файловая система initrd переносится в //initrd. И, наконец, начинается обычная процедура загрузки (например, запускается /sbin/init).

Более подробно свойство initrd описано в файле исходного кода ядра Documentation/initrd.txt.

Параметр «noinitrd» указывает ядру пропускать вышеуказанные шаги, несмотря на то, что оно было собрано с поддержкой initrd. Данные initrd, тем не менее, остаются в /dev/initrd (это устройство может быть использовано только один раз: после того, как последний процесс, использующий /dev/initrd, завершится, данные освобождаются).

Параметры загрузки для SCSI-устройств

iobase — первый порт ввода/вывода, занятый хостом SCSI. Порты указываются в шестнадцатеричной системе счисления, обычно их значения находятся в диапазоне от 0x200 до 0x3ff.

Читайте также:  Российские сервера синхронизации времени windows

irq — аппаратное прерывание, настроенное для карты. Возможные значения зависят от карты, но обычно используются 5, 7, 9, 10, 11, 12 и 15. Остальные значения, как правило, используются общей периферией, такой как: жёсткие диски IDE, дисководы, последовательные порты и т. д.

scsi-id — ID, используемый хост-адаптерами для своей идентификации на шине SCSI. Только некоторые адаптеры позволяют изменять это значение, у большинства оно фиксировано. Обычно, в качестве значения используется 7, однако, карты Seagate и Future Domain TMC-950 используют 6.

parity — указывает, ожидает ли хост-адаптер SCSI от подключенных устройств передачу значений чётности во всей передаваемой информации. Для включения проверки чётности необходимо указать единицу, для отключения — ноль. Не все адаптеры позволяют управлять чётностью с помощью параметров загрузки.

«max_scsi_luns=…» Устройство SCSI может включать в себя «подустройства». В качестве примера можно взять новые многодисковые SCSI CD-ROM-ы. Адрес каждого места под компакт-диск может быть задан «логическим номером устройства» (Logical Unit Number — LUN). Но большинство устройств, таких как, жёсткие диски, ленточные накопители и др., содержат только одно устройство, которому присваивается нулевой LUN.

Некоторые плохо спроектированные устройства SCSI не обрабатывают запросы для LUN, не равные нулю. Поэтому, новые ядра, если при сборке ядра не был установлен флаг CONFIG_SCSI_MULTI_LUN, по умолчанию будут опрашивать только устройства с LUN, равным нулю.

Для указания количества проверяемых при загрузке LUN можно в качестве параметра загрузки указать «max_scsi_luns=n», где n является числом от одного до восьми. Для избежания вышеописанной проблемы можно указать, что n=1.

Hастройка ленточных накопителей SCSI С помощью приведённой ниже строки загрузочных параметров можно настроить драйвер ленточных накопителей SCSI:

Первые два числа указываются в килобайтах. По умолчанию значение buf_size равно 32КБ, а максимальный размер, который может быть указан, — 16384КБ. В write_threshold задаётся значение, при достижении которого содержимое буфера записывается на ленту (по умолчанию равно 30КБ). Максимальное количество буферов (max_bufs) зависит от количество обнаруженных накопителей. По умолчанию используется два буфера. Пример использования этого параметра:

Более подробная информация приведена в файле Documentation/scsi/st.txt (или drivers/scsi/README.st — в старых ядрах), находящемся в дереве исходного кода ядра Linux.

Жёсткие диски

Общие для всех дисков параметры указываются с префиксом «hd=». Заметим, что их можно использовать и для какого-то конкретного диска, и при этом параметр будет применён именно так, как ожидалось.

Также заметим, что «hd=» может быть использован для ссылки на следующий неуказанный диск в последовательности (a, …, h) В дальнейшем, для краткости, параметры будут описаны в виде «hd=». Более подробная информация приведена в файле Documentation/ide/ide.txt (в старых ядрах — Documentation/ide.txt или в совсем старых — drivers/block/README.ide) из дерева исходного кода ядра Linux.

Параметры «hd=cyls,heads,sects[,wpcom[,irq]]» Эти параметры используются для указания физической структуры диска. Обязательными являются только первые три значения. Значения цилиндров(cyls)/головок(heads)/секторов(sects) в дальнейшем используются в программе fdisk. Значение предварительной компенсации записи (wpcom) для дисков IDE игнорируется. Значение IRQ, указанное в качестве irq, используется в контроллере интерфейса, к которому подключён диск, и, на самом деле, не относится к диску. Параметр «hd=serialize» В микросхеме двойного IDE интерфейса CMD-640 содержится ошибка, приводящая к тому, что при одновременной работе дисков первичного и вторичного интерфейсов происходит повреждение данных. Этим параметром можно указать, что драйверу никогда не следует использовать оба интерфейса одновременно. Параметр «hd=noprobe» Не определять этот диск. Например,

отключит проверку, но одновременно задаст структуру диска, так что он будет зарегистрирован как обычное блочное устройство, и с ним можно будет работать. Параметр «hd=nowerr» Бит WRERR_STAT на некоторых дисках установлен постоянно. Этот параметр позволяет обойти эту проблему в таких устройствах. Параметр «hd=cdrom» Указывает драйверу IDE, что вместо обычного жёсткого диска IDE подключён CD-ROM, совместимый с ATAPI. В большинстве случаев CD-ROM определяется автоматически, однако, если этого не происходит, можно воспользоваться данным параметром. Стандартные параметры драйвера дисков ST-506 («hd=») Стандартный драйвер дисков, также как драйвер IDE, понимает аргументы, описывающие структуру дисков. Однако он ожидает указания только трёх значений (C/H/S), а если их будет больше или меньше, то просто проигнорирует их. Кроме того, аргумент должен быть указан в виде «hd=», то есть «hda=» и т. п., в данном случае, являются неправильным. Формат следующий:

Если установлено два диска, то для второго диска нужно повторить вышеуказанную строку со структурой.

Устройства Ethernet

Первый не числовой аргумент воспринимается как имя. Значения param_n (если есть) у разных карт/драйверов, обычно, имеют различный смысл. Обычно, значения param_n используются для указания адреса общей памяти, выбранного интерфейса, канала DMA и т. п.

Как правило, этот параметр используется для принудительного определения второй сетевой карты, так как по умолчанию определяется только одна. Этого можно достичь заданием простой строки:

Обратите внимание, что ноль в качестве значения IRQ и базы ввода/вывода указывает драйверам определять значения автоматически.

Исчерпывающей документацией по использованию нескольких карт и по специфичным для карты/драйвера значениям param_n можно считать Ethernet-HowTo. Желающие могут обратиться к соответствующему их карте разделу этого документа.

Драйвер дисковода

Драйвер звука

где каждое значение устройства N имеет формат 0xTaaaId, байты которого используются следующим образом:

T — тип устройства: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401

aaa — адрес ввода/вывода в шестнадцатеричном виде.

I — линия прерывания в шестнадцатеричном виде (т. е. 10=a, 11=b, …)

Как видите, результат довольно непонятен, поэтому лучше установить собственные значения при компиляции. Параметр загрузки «sound=0» полностью отключит драйвер звука.

Драйвер принтера

Вы можете указать драйверу принтера, какие порты надо использовать, а какие не использовать совсем. Это удобно, если не нужно, чтобы драйвер принтера захватывал все доступные параллельные порты, и оставлял их другим драйверам (таким, как PLIP, PPA).

В значении перечисляется несколько названий портов. Например, при lp=none,parport0 используется первый параллельный порт для lp1 и отключается lp0. Чтобы вообще отключить драйвер принтера, укажите lp=0.

Источник

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