Оценить:
 Рейтинг: 3.6

Linux

<< 1 ... 35 36 37 38 39 40 41 42 43 ... 57 >>
На страницу:
39 из 57
Настройки чтения
Размер шрифта
Высота строк
Поля
Есть еще несколько других программ, которые можно использовать для загрузки 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 можно найти в соответствующей справочной документации.

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

В этом разделе рассматриваются параметры загрузки, не связанные с каким-либо оборудованием или периферией, а с параметрами ядра, такими как управление памятью, RAM-диском, корневой системой и т. п.

Опции корневой файловой системы

Параметр root

Этот параметр сообщает ядру, какое устройство будет использовано в качестве корневой файловой системы во время загрузки. По умолчанию эта установка имеет значение корневого устройства системы, на котором было скомпилировано ядро. Например, на одном компьютере корневая файловая система находится на /dev/hda2, а на другом – на /dev/hda6. Если скомпилировать ядро на втором компьютере, перенести его на первый и не указать в параметре root=/dev/hda2, то ядро будет думать, что оно загружается с /dev/hda6. А такого устройства на этом компьютере нет! Допустимыми корневыми устройствами могут быть следующие:

• /dev/hdaN, /dev/hdbN, /dev/hdcN, /dev/hddN, которые являются разделами N на IDE-диске;

• /dev/sdaN, /dev/sdbN, /dev/sdcN, /dev/sddN, /dev/sdeN, которые являются разделами N на SCSI-диске;

• /dev/fd0, /dev/fdl – привод флоппи-диска с номером N;

• /dev/nfs, не являющееся флагом, заставляющим ядро получить корневую файловую систему по сети.

Это один из немногих параметров загрузки ядра, которые хранятся в его образе и могут быть изменены утилитой rdev.

Параметры ro и rw

Параметр го сообщает ядру о необходимости монтирования корневой файловой системы в режиме «только для чтения». Парный ему параметр rw указывает ядру монтировать корневую файловую систему в режиме «чтение/ запись». Сразу после загрузки ядра и запуска процесса init система должна осуществить проверку подмонтированных файловых систем на отсутствие ошибок. Однако, если корневая файловая система смонтирована в режиме «чтение/запись» надежно проверить целостность файловой системы невозможно. Существует два способа решения проблемы:

• Смонтировать изначально корневую файловую систему в режиме "только для чтения".

• Смонтировать изначально корневую файловую систему в режиме "чтение/запись", а перед проверкой перемонтировать ее в режим "только для чтения".

Это одни из немногих параметров загрузки ядра, которые хранят значение в образе ядра и могут быть изменены утилитой rdev.

Опции управления RAM-диском

Все следующие опции сообщают ядру, как управлять устройством RAM-диска, обычно используемым для загрузки машины.

Параметр ramdisk_start

Чтобы разрешить образу ядра находиться на флоппи-диске со сжатым образом RAM-диска, необходимо добавить команду ramdisk_start=<cMei4eHMe>.

Параметр load_ramdisk

Этот параметр сообщает ядру, нужно загружать образ RAM-диска или нет. При ioad_ramdisk=l ядро будет загружать RAM-диск. По умолчанию значение параметра равно нулю, т. е. ядро не должно в этом случае загружать RAM-диск.

Параметр prompt_ramdisk

Этот параметр сообщает ядру о необходимости вывести пользователю приглашение вставить флоппи-диск с образом RAM-диска. В однодисковой конфигурации образ RAM-диска находится на той же дискете, с которой только что закончилась загрузка ядра, поэтому приглашение не нужно. В этом случае нужно использовать команду prompt_ramdisk=0. В двухдисковой конфигурации может потребоваться заменить диски, поэтому нужно указать команду prompt_ramdisk=1. По умолчанию значение равно единице.

Параметр ramdisk_size

Поскольку RAM-диск размещается в оперативной памяти, необходимо каким-то способом указать занимаемый им объем оперативной памяти. По умолчанию это 4096 Кбайт.

Параметр noinitrd (начальный RAM-диск)

В ядрах, начиная с версии 2jc, корневой файловой системой изначально может быть RAM-диск. Эта возможность обычно используется для загрузки модулей, необходимых для монтирования реальной корневой файловой системы (например, загрузка модулей драйвера SCSI, хранящихся в образе RAM-диска, а затем монтирование реальной файловой системы на SCSI-диске).

Параметр noinitrd определяет, что будет происходить с данными initrd после загрузки ядра.

<< 1 ... 35 36 37 38 39 40 41 42 43 ... 57 >>
На страницу:
39 из 57

Другие электронные книги автора Алексей Александрович Стахнов