CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
21.10.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: Zenwalk

Zenbook. Загрузка и загрузчики

http://alv.me/

Страницы: 1 :: 2 :: 3 :: ... :: 5 :: следующая

Содержание

Первое, что следует сделать после установки новой системы — это загрузить её. И потому разговор о ней резонно начать именно с загрузки и загрузчиков. Правда, это не та тема, в которую начинающему пользователю придётся вникать в первую очередь — как говорилось в двух предыдущих главах, загрузчик будет настроен автоматически и, в первом приближении, правильно. То есть, скорее всего, свежеустановленный Zenwalk загрузится без проблем.

Однако:

  • во-первых, при установке не исключены неожиданности, которые потребуют ручного вмешательства, и,
  • во-вторых, потенциальный пользователь Zenwalk'а устанавливает его (в том числе и) для изучения.
А изучение любой системы начинается с её загрузки. Так что начнём с этого и мы — тем, кто пока не ощутил необходимости разбираться с этой темой, предлагается просто пропустить пока эту главу.

О загрузке вообще

Под загрузкой системы принято понимать загрузку ядра — в данном случае Linux'а (смайлики по вкусу), и подлючение к нему необходимых модулей. Происходит это примерно так.

Перво-наперво после включения питания запускается программа, прошитая в ПЗУ компьютера (BIOS). Она выполняет процедуру POST — Power On Self Test, то есть самотестирование железа, после чего отыскивает носитель, установленный в BIOS Setup как первое загрузочное устройство. Дальнейшие события зависят от того, какое именно устройство выступает в этом качестве — дискета, винчестер, компакт-диск или, в последнее время, — носитель с USB-интерфейсом.

В случае с дискетой или компактом сценарий зависит от их содержимого, с USB-носителем (обычно, флэшкой) — от того, какую роль она выполняет в текущих установках BIOS. Эти случаи мы здесь рассматривать не будем.

А вот если в качестве загрузочного устройства выступает винчестер, то программа из ПЗУ находит на нем первый физический блок, содержащий ту самую главную загрузочную запись (MBR), которая вскользь упоминалась в нашем ликбезе, и передаёт ему вахту.

Поскольку MBR занимает первый физический блок, размер которого всегда равен 512 байтам, то она не может превышать этот размер. Из них последние два байта занимает так называемая сигнатура диска, по которой BIOS узнаёт, что он имеет дело именно с винчестером (если эта сигнатура не соответствует принятым символам — 55h AAh в шестнадцатеричном счислении, загрузка прекращается).

Следующие от конца 64 байта отводятся под таблицу дисковых разделов, состоящую из четырёх записей по 16 байт. Каждая из них описывает один из четырёх теоретически возможных первичных разделов (primary partitions), о которых говорилось в соответствующей главе, вне зависимости от того, сколько их было создано, и были ли они созданы вообще: в принципе, диск может быть использован и без разбиения на разделы, как «сырое» (raw) устройство. С винчестерами так почти никогда не поступают, но это было обычной практикой для дискет и может иметь место и поныне на флэшках — иногда можно увидеть их отформатированными таким образом. Именно потому, что в таблице разделов предусмотрено четыре записи, число первичных разделов на диске ограничено этой цифрой — так повелось с древних времён IBM PC.

Оставшиеся 448 байт содержат некий код, принимающий на себя управление от BIOS по окончании его работы. В стандартном MBR — том, что фабрично записан на «свежевкрученном» винчестере — этот код только и может, что отыскать первый физический раздел диска (точнее, раздел, помеченный как активный — но, если не предпринять специальных действий, эти понятия совпадают) и «по цепочке» передать управление на его загрузочную запись (Boot Record — уже без Master). Чего было вполне достаточно для загрузки операционок вроде DOS или Windows 9X/ME с первого (или единственного) раздела. Но явно мало в любом другом случае — например, если на диске установлено несколько ОС, которые, естественно, не могут уместиться в одном разделе.

А как обстоит дело с загрузкой предмета нашего разговора, то есть ядра Linux? В принципе, оно способно загрузить себя само, без посторонней помощи. Образ ядра содержит в себе загрузочную запись, аналогичную BR дискового раздела, которая может принять управление непосредственно от BIOS компьютера или от кода, записанного в MBR винчестера. Такой процесс самозагрузки ядра называется bootstrapping — поднятие себя на ноги за шнурки от собственных ботинок.

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

Собственно, этим и определяется неудобство такого способа. Во-первых, выделять специальный первичный раздел только под образ ядра представляется слишком жирным — ведь на диске их может быть всего четыре. Во-вторых, при пересборке ядра оно должно каждый раз переустанавливаться на этот raw-раздел, что не позволяет экспериментировать с ядрами различных версий или сборок с разными параметрами. Наконец, такой способ лишает возможности использовать Linux совместно с какой-либо другой (или другими) ОС.

Так что прямая загрузка образа ядра используется, насколько мне известно, только при изготовлении загрузочных дискет и с отмиранием флоппи-приводов забудется окончательно. А штатным средством загрузки ядра Linux оказывается специальная программа, которая так и называется загрузчиком, обычно с эпитетами — начальный, системный или мультисистемный.

Такой настоящий загрузчик также должен включать в себя код, записываемый в MBR диска или BR первичного раздела. Но функции его — более сложные. Во-первых, он обеспечивает выбор между разделами, с которых может быть загружена та или иная ОС. А далее — возможны варианты:

  1. передача управления на BR выбранного раздела «по цепочке», со сложением с себя ответственности за всё остальное;
  2. непосредственная загрузка ядра ОС с выбранного раздела;
  3. передача управления специальной программе, способной опознавать различные файловые системы, воспринимать лежащие на них ядра как файлы и, соответственно, запускать их на исполнение, то есть своего рода мини-ОС.
«Цепочечный» вариант работы поддерживается всеми системными загрузчиками, составляя первую стадию их работы. А вот во второй стадии, если на ней не задействуется иной загрузчик из BR выбранного раздела, вступает в силу альтернатива между пунктами 2 и 3.

Из двух традиционно используемых в Linux программ загрузки — Lilo или GRUB — первая реализует механизм «цепочки» плюс загрузку ядра, другая же на второй стадии прибегает к опознанию файловой системы и запуску ядра с неё. В Linux возможно применение и иных загрузчиков, но эти — наиболее распространены. И либо тот, либо другой, безальтернативно или по выбору, устанавливается по умолчанию при инсталляции любого дистрибутива этой ОС.

В дистрибутиве Zenwalk штатно и безальтернативно предусмотрена установка Lilo — с его рассмотрения мы и начнём.




Страницы: 1 :: 2 :: 3 :: ... :: 5 :: следующая

Комментарии

Алексей Федорчук, Mon Apr 6 09:57:22 2009:
2 Дмитрий
Да, Вы правы. Я тут вычитал, что 2-й GRUB вообще не следует настраивать руками, а только каким-то своим конфигуратором.
Грустно...
Дмитрий, Mon Apr 6 08:39:39 2009:
В grub время ожидания задается в секундах.
Кстати, насчет отсутствия принципиальных изменений в настройке 1-й и 2-й версий. По-моему они таки есть. Я второй груб видел один раз в жизни и по старинке настроить его и поставить не получилось.
Юрий, Wed Feb 18 21:24:27 2009:
Это было про страницу http://citkit.ru/articles/1239/2.html
Юрий, Wed Feb 18 21:23:23 2009:
Не стыковочка.
В тексте "время ожидания выбора вариантов загрузки — timeout=##, где ## — время в миллисекундах;"

А в фрагменте файла "# Время ожидания выбора (в секундах)
timeout = 50"

Так в секундах или в миллисекундах всё таки? :)

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
Септики ТЕРМИТ от производителя: септик топас 5.
24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds