Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite

Lines Club

Ищем достойных соперников.

На сайте www.himkipk.ru компьютерная помощь химки, здесь.


Книги по Linux (с отзывами читателей)

Библиотека сайта или "Мой Linux Documentation Project"

След. Предыд. Содержание


2. Обзор параметров строки загрузки

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

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


        ether=9,0x300,0xd0000,0xd4000,eth0  root=/dev/hda1            *ПРАВИЛЬНО*
        ether = 9, 0x300, 0xd0000, 0xd4000, eth0  root = /dev/hda1    *НЕПРАВИЛЬНО*

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

2.1 LILO (LInux LOader)

Обычно используется программа LILO (LInux LOader -- загрузчик Linux), написаная Вернером Алмесбергером (Werner Almesberger). Она может загружать разные ядра и хранит конфигурационную информацию в обычном текстовом файле. Большинство дистрибутивов поставляются с LILO в качестве загрузчика по-умолчанию. LILO без проблем может загружать DOS, OS/2, Linux, FreeBSD и т.д. и является достаточно гибкой.

Типичная конфигурация приостановит LILO и напечатает LILO: после включения компьютера. Затем она ждет несколько секунд ввода пользователем дополнительных параметров и, в случае их отсутствия, загружает систему по-умолчанию. Типичные системные метки, используемые людьми в файле конфигурации, этоlinux, backup и msdos. Если вы хотите ввести параметр загрузки, то делаете его сразу после системной метки раздела, с которого вы хотите загрузиться, как показано на примере ниже:


        LILO: linux root=/dev/hda1

LILO поставляется с прекрасной документацией, в том числе по обсуждаемым здесь параметрам загрузки, из которых особенно важна команда LILO append=, необходимая когда кто-то собирается добавить параметр загрузки в виде постоянного добавления к конфигурационному файлу LILO. Вы просто добавляете нечто типа append = "foo=bar" к файлу /etc/lilo.conf. Это можно сделать в начале файла конфигурации, применяя ко всем разделам, или для одного системного раздела, если добавить внутри секции image=. Более полное описание смотрите в документации LILO.

2.2 LoadLin

Другим широкоиспользуемым загрузчиком Linux является 'LoadLin' -- программа DOS, запускающая ядро Linux из командной строки DOS (с параметрами загрузки). Это особенно удобно людям, использующим DOS и желающим запускать Linux из-под DOS.

Он полезен, также, если у вас имеется оборудование, использующее драйвер DOS для установки в определенное состояние. Общий пример -- "SoundBlaster совместимые" звуковые карты, требующие драйвер DOS для установки определенных регистров карты в SB совместимый режим. Загрузка DOS с поставляемым драйвером, а затем загрузка Linux из строки DOS с помощью LOADLIN.EXE предотвратит сброс карты, который происходит при обычной перезагрузке. Таким образом, карта остается в SB соместимом режиме и, следовательно, может быть использована под Linux.

Есть еще несколько других программ, которые можно использовать для загрузки Linux. Полный список смотрите в списке доступных программ на вашем местном ftp зеркале Linux, в каталоге system/Linux-boot/.

2.3 Утилита ``rdev''

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

Утилита rdev обычно привязана к swapdev, ramsize, vidmode и rootflags. Это пять значений, которые rdev может менять -- корневое устройство, устройство своппинга, параметры RAM-диска, видео-режим по-умолчанию и установка readonly/readwrite для корневого устройства.

Более подробную информацию по rdev можно найти, набрав rdev -h или прочитав поставляемую страницу man (man rdev).

2.4 Как ядро отбирает параметры

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


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

где `имя' - уникальное ключевое слово, идентифицирующее часть ядра, которому передаются связанные значения (если несколько). Несколько параметров загрузки передаются просто списком параметров выше приведенного формата, разделенного пробелами. Помните, что предел в 11 значений реален, поскольку существующий код на одно ключевое слово обрабатывает только 11 параметров, разделенных запятыми. (Однако, в особых сложных ситуациях вы можете повторно использовать такое же ключевое слово с еще 11-ю параметрами, предполагая, что функция установки это поддерживает.) Также помните, что ядро разбивает список максимум на десять целочисленных аргументов и последующую строку, поэтому реально вы не можете передать 11 целочисленных значений, если только не преобразовываете 11-й параметр из строчного в целочисленный непосредственно в самом драйвере.

Большая часть фильтрации происходит в linux/init/main.c. Сначала ядро проверяет не являются ли параметры одним из специальных параметров `root=', `ro', `rw', или `debug'. Назначение этих специальных параметров будет описано в этом документе ниже.

Затем ядро проходится по списку функций установки (находящемуся в массиве bootsetups) в поиске совпадения заданной строки параметра (такой как `foo') с функцией установки (foo_setup()) конкретного устройства или части ядра. Если вы передаете ядру строку foo=3,4,5,6,bar, то ядро будет искать зарегистрировано ли `foo' в массиве bootsetups. Если да, то ядро вызовет функцию установки, связанную с `foo' (foo_setup()) и передаст ей целочисленные значения 3, 4, 5 и 6, указанные в командной строке ядра, и также строковый параметр bar.

2.5 Установка переменных окружения

Если что-то в форме `foo=bar' не принимается функцией установки, как описано выше, то это интерпретируется как установка переменной окружения. Примером может послужить применение TERM=vt100 или BOOT_IMAGE=vmlinuz.bak в качестве параметров загрузки. Эти переменные окружения обычно проверяются скриптами инициализации для разрешения или запрещения большого диапазона параметров.

2.6 Передача параметров в программу `init'

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


След. Предыд. Содержание


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют