Полное описание параметров, которые можно передать ядру в ходе начальной загрузки, занимает достаточно много места, поэтому в этом параграфе я рассмотрю только основные из них. За более подробным их описанием вам следует обратиться к документу BootPrompt-HOWTO или к справочной системе (man bootparam
Если ядро загружается средствами BIOS (например, с дискеты), то передать ему параметры невозможно: нужно использовать какой-либо загрузчик Linux. В главе 9 описано применение диспетчеров загрузки LILO и GRUB, то есть вы уже знаете, как указывать параметры в командной строке загрузчика или в его конфигурационном файле. Осталось разобраться с тем, какие это могут быть параметры.
Напоминаю, что синтаксис строки параметров следующий:
имя[=значение1] [, значение2...] [имя2 [=значение2.1] [, значение2.2...]]
Значения разделяются запятой без пробелов, а параметры — пробелами. Пример строки параметров:
root=/dev/hda1 ether=9,0x300,0xd0000,0xd4000,eth0
20.4.1. Параметры корневой файловой системы
♦ root=устройство
: указывает устройство, на котором находится корневая файловая система. В качестве устройства допустимо указывать:/dev/hdaN … /dev/hddN — для IDE-дисков:
/dev/sdaN … /dev/sdeN — для SCSI-дисков;
/dev/xdaN … /dev/xdbN — для XT-совместимых дисков;
/dev/fdN — флоппи-дисковод, где N=0 соответствует диску A:, a N=1 — диску В:
/dev/nfs — псевдоустройство, указывающее ядру, что нужно загружаться по сети;
♦ ro
: требует монтировать корневую файловую систему в режиме «только чтение». Используется по умолчанию;♦ rw
: задает монтирование корневой файловой системы в режиме «чтение/запись». При использовании этого параметра нельзя запускать программы типа fsck. Перед запуском программы fsck нужно перемонтировать корневую файловую систему в режиме ro.20.4.2. Объем памяти
Иногда нужно указать объем ОЗУ, отличный от того, который имеется на самом деле. Например, у вас чипсет Intel 810 с интегрированной видеоплатой, тогда вам нужно указать объем ОЗУ на 1 Мб меньше (а иногда даже на 2 Мб). Это связано с аппаратной особенностью чипсета. Более подробно об этом вы можете узнать на сайте компании Intel (www.intel.com
Объем установленной памяти можно указать с помощью параметра mem:
mem=<число>
Число определяет объем памяти, установленной в компьютере, например, mem = 16384K или mem = 16M.
20.4.3. Управление RAMDISK
При создании загрузочных дискет для ОС Linux необходимо, чтобы на эти дискеты было помещено нужное программное обеспечение и чтобы для этого программного обеспечения хватило места. Обычно поступают следующим образом: создают сжатый архив всего необходимого программного обеспечения и помещают его на загрузочный диск. При загрузке системы в памяти создается виртуальный диск, на который это программное обеспечение распаковывается и записывается. Этот виртуальный диск называется RAM-диском.
Ядро не может быть включено в сжатый образ файловой системы RAM- диска, так как оно должно быть записано начиная с нулевого сектора, чтобы BIOS могло загрузить загрузочный сектор и ядро могло продолжить загрузку.
Если вы используете несжатый образ RAM-диска, то ядро может быть частью образа файловой системы. Такая дискета может быть загружена с помощью LILO.
В том случае, если вы для загрузки используете две дискеты (первая содержит ядро — boot, на второй находится образ файловой системы — root), образ файловой системы должен начинаться с нулевого сектора (смещение = 0).
Описываемые далее параметры задают режимы работы с RAM-диском.
♦ load_ramdisk
=N: указывает, использовать RAM-диск (N=1) или нет (N=0). Значение по умолчанию равно 0.♦ prompt_ramdisk
=N: сообщает ядру, нужно ли запрашивать дискету, которая содержит образ файловой системы (N=1). Значение по умолчанию равно 1 (запрашивать).♦ ramdisk_start
=<смещение> : разрешает ядру находиться на дискете вместе со сжатым образом RAM-диска и указывает номер блока, с которого начинается RAM-диск.♦ ramdisk_size
=N: указывает максимальный размер (в Кб) RAM-диска. Начиная с версии ядра 1.3.48, память под виртуальный диск выделяется динамически. Значение по умолчанию равно 4096 (4 Мб).♦ noinitrd
: загружаться без использования initrd (см. п. 9.1.1.1).20.4.4. Управление планировщиком ввода/вывода