Категории
Самые читаемые

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

Читать онлайн Linux - Алексей Стахнов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 21 22 23 24 25 26 27 28 29 ... 151
Перейти на страницу:

Во многих дистрибутивах и практически всегда при загрузке с дискеты в оперативной памяти создается псевдодиск (RAM-disk, виртуальный диск), который и выступает в роли корневой файловой системы. Для этого есть две причины. Во-первых, оперативная память на несколько порядков быстрее, чем дискета, и во-вторых – на виртуальный диск ядро может загрузить с дискеты и распаковать сжатую файловую систему, что позволяет поместить на дискете намного больше файлов.

После того как ядро Linux успешно смонтирует корневую файловую систему, оно запускает процесс init. Процесс init – это программа, которая, собственно, и осуществляет переход от начального состояния системы в стандартный многопользовательский режим (или тот, который установлен администратором по умолчанию). Помимо этого, процесс init выполняет множество различных операций, необходимых для корректной работы системы: проверку и монтирование файловых систем, запуск различных сервисов, запуск системы входа пользователя и т. п. А теперь подробнее разберемся с каждым шагом загрузки системы.

Программы-загрузчики

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

LILO – LInux LOader

Программа-загрузчик, на сегодняшний день является стандартом de-facto практически для любого дистрибутива Linux. LILO (LInux LOader – загрузчик Linux) без проблем может загружать DOS, OS/2, Linux, FreeBSD, Windows и множество других операционных систем.

Стандартно сконфигурированная программа LILO после запуска приостановит свое выполнение и выведет на экран графическое изображение с меню, пунктами которого являются варианты загрузки. Несколько секунд LILO ожидает ввода пользователем варианта загрузки (или специальных команд) и, в случае их отсутствия, запускает вариант загрузки, выбранный при конфигурировании по умолчанию. Обычные варианты загрузки в LILO носят название linux и dos (если в системе установлены одновременно операционная система Windows 9х и Linux).

Конфигурационный файл LILO – /etc/lilo.conf, формат его можно найти в соответствующей справочной документации.

GRUB

GRand Unified Bootloader (Главный унифицированный загрузчик) – универсальный загрузчик, разработан в Фонде свободного программного обеспечения. Имеет больше возможностей по сравнению с LILO, а также избавлен от некоторых ограничений. В последнее время стал очень популярен, и по распространенности скоро догонит LILO.

LoadLin

Еще одна программа запуска Linux, которая, правда, не используется при старте компьютера, а позволяет загрузить ядро Linux из командной строки DOS (с параметрами загрузки). Применение LoadLin оправдано в том случае, если мы не хотим устанавливать загрузчик типа LILO в MBR (Master Boot Record) винчестера. Этот загрузчик также необходим, если у нас имеется оборудование, использующее драйвер DOS для установки в определенное состояние.

Есть еще несколько других программ, которые можно использовать для загрузки 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. По умолчанию значение равно единице.

1 ... 21 22 23 24 25 26 27 28 29 ... 151
Перейти на страницу:
Тут вы можете бесплатно читать книгу Linux - Алексей Стахнов.
Комментарии