Выбрать главу

Еще раз хочется отметить, что все перечисленные ограничения существенны только на этапе загрузки ОС, поскольку сама Linux и последние версии Windows при работе с дисками уже не используют прерывание 13 BIOS, а используют собственные драйвера для работы с дисками. Но, прежде чем система сможет использовать собственный драйвер, она должна как минимум его загрузить. Поэтому на этапе начальной загрузки любая система вынуждена пользоваться BIOS. Это и вызывает ограничения на размещение многих систем за пределами 8 Гбайт, они не могут оттуда загружаться, хотя после успешной загрузки могут работать с дисками гораздо большего объема. Для того, чтобы понять, как можно обойти эти ограничения, нам потребуются некоторые знания о том, как происходит загрузка ОС Linux.

2.4. Выбор загрузчика

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

2.4.1. Загрузчик LILO из дистрибутива ОС Linux

Загрузчик LILO создан Вернером Альмесбергером (Werner Almesberger). LILO может загружать ядро Linux как с дискеты, так и с жесткого диска, а также может загружать другие операционные системы: PC/MS-DOS, DR DOS, OS/2, Windows 95/98, Windows NT, 386BSD, SCO UNIX, Unixware и т. д. Может быть задан выбор до 16 разных операционных систем на этапе загрузки.

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

• программа /sbin/lilo, которая запускается из-под Linux, служит для того, чтобы записать всю информацию, необходимую на этапе загрузки, в соответствующие места. Ее необходимо перезапускать каждый раз после внесения изменений в ядро или в конфигурационный файл LILO;

• различные служебные файлы, которые нужны LILO во время загрузки. Эти файлы обычно располагаются в каталоге /boot. Самые важные из них - это собственно загрузчик (смотри ниже) и map-файл (/boot/map), в котором указывается местоположение ядра. Еще один важный файл - это файл конфигурации LILO, который обычно имеет имя /etc/lilo.conf;

• собственно загрузчик - это та часть LILO, которая первой загружается в память через прерывание BIOS, и которая загружает ядро Linux или загрузочный сектор другой операционной системы. Загрузчик тоже состоит из двух частей. Первая часть записывается в загрузочный сектор и служит для загрузки второй части, которая значительно больше по размеру. Обе части обычно хранятся на диске в файле /boot/boot.b.

Надо иметь в виду, что формат загрузочного сектора, создаваемого LILO, отличается от формата DOS MBR, так что если записать загрузочный сектор LILO в MBR, то ранее установленные системы от Microsoft перестанут загружаться (если не принять дополнительных мер).

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

Загрузочный сектор LILO при инсталляции системы можно разместить в следующих местах:

• загрузочный сектор дискеты в формате Linux (/dev/fd0,…);

• MBR первого жесткого диска (/dev/hda, /dev/sda,…);

• загрузочный сектор первичного раздела файловой системы Linux на первом жестком диске (/dev/hda1, /dev/hda2,…);

• загрузочный сектор логического раздела в расширенном разделе первого жесткого диска (/dev/hda5,…). Правда большинство программ типа fdisk не предполагают, что можно загружаться из расширенного раздела и отказываются объявлять его активным. Поэтому в состав LILO включена специальная программа (activate), которая позволяет обойти это ограничение. Но программа fdisk из дистрибутива Linux поддерживает возможность активизации расширенного раздела. Для этого надо использовать либо опцию -b, либо переменную BOOT.

Загрузочный сектор LILO не может быть размещен в следующих местах:

• загрузочный сектор дискеты или первичного раздела, отформатированных в других файловых системах;

• в swap-разделе Linux;

• на втором жестком диске.

Кроме того, имейте в виду, что LILO во время загрузки нужны еще следующие файлы:

• /boot/boot.b;

• /boot/map (создается при запуске /sbin/lilo);

• все загружаемые версии ядра (если вы выбираете версию ядра на этапе загрузки);