Алексей Стахнов

Linux


Скачать книгу

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

      Программы-загрузчики, описание которых приведено выше, способны также, помимо загрузки самого ядра, передавать ему необходимые параметры загрузки.

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

      ether=9,0x300,0xd0000,0xd4000,eth0 root=/dev/hda1

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

      Утилита rdev

      Есть несколько параметров загрузки ядра Linux, хранящих свои значения по умолчанию в его образе. Эти параметры задаются при компиляции ядра, и для того, чтобы не перекомпилировать каждый раз ядро, используется утилита rdev.

      Утилита rdev может изменять следующие параметры:

      • rdev – устройство, с которого производится загрузка;

      • swapdev – устройство, содержащее раздел подкачки (swap);

      • ramsize – параметры RAM-диска;

      • vidmode – видеорежим по умолчанию;

      • rootflags – установка режима монтирования корневого устройства ("только для чтения" или "чтение/запись").

      Более подробную информацию по rdev можно найти в соответствующей справочной документации.

      Разбор параметров ядром Linux

      Большая часть параметров загрузки имеет вид:

      Имя[=значение_1][,значение_2]…[,значение_11]

      где имя – уникальное ключевое слово, идентифицирующее часть ядра, которому передаются связанные значения, но не более одиннадцати параметров. Большая часть разбора параметров загрузки происходит в linux/init/main.c. Сначала ядро проверяет, не являются ли параметры одним из специальных параметров root=, ro, rw или debug. Затем ядро просматривает список функций установки (находящийся в массиве bootsetups) в поиске совпадения заданной строки параметра с функцией установки конкретного устройства или части ядра. Если мы передаем ядру строку foo=3,4,5,6, bar, то ядро будет искать, присутствует ли foo в массиве bootsetups. Если присутствует, то ядро вызовет функцию установки, связанную с foo (foo setup ()) и передаст ей целочисленные значения 3, 4, 5 и 6, указанные в командной строке ядра, и также строковый параметр bar.

      Если строка не подходит ни для одной функции установки, то этот случай считается установкой переменной окружения. Примером может служить указание переменных окружения term=vtioo или boot_image=vmiinuz.bak в качестве параметров загрузки. Как правило, переменные окружения проверяются скриптами инициализации для разрешения или запрещения большого диапазона параметров.

      Любые оставшиеся параметры, не выбранные ядром и не интерпретированные в качестве переменных окружения, будут переданы в дальнейшую обработку, которую обычно выполняет программа init. Чаще всего процессу init в качестве параметра передается слово single, которое сообщает init о необходимости загрузить компьютер в однопользовательском режиме. Список параметров программы init можно найти в соответствующей справочной документации.

      Общие неаппаратные параметры загрузки

      В этом разделе рассматриваются параметры загрузки, не связанные с