Загрузчик (Boot Manager) — программа, которая после старта компьютера и инициализации BIOS напрямую передает управление «железом» вашего ПК ядру операционной системы. Каждая ОС располагает для этого по крайней мере одним встроенным инструментом: Windows 2000/XP — NT Loader 4/5, Linux — обычно LiLo (Linux Loader) или Grub, BeOS — Be Loader. Стандартные загрузчики отлично справляются со своей задачей — обеспечивать запуск «родной» ОС, однако если требуется работать в нескольких операционных системах, особенно таких «капризных», как QNX, то возникают трудности и приходится использовать какой-либо из универсальных загрузчиков — PowerQuest BootMagic, System Commander или Acronis OS Selector.

Механизм загрузки

Как же работают загрузчики? На каждом жестком диске есть главная загрузочная запись (MBR — Master Boot Record). Сразу после включения компьютера и проверки оборудования BIOS обращается к MBR, если, конечно, в BIOS сделана такая установка. Когда же эта запись повреждена, то загрузиться с жесткого диска невозможно.

Механизм работы глобального загрузчика

Загрузчик, прописанный в MBR, называется глобальным, а помещенный на какой-нибудь раздел жесткого диска — локальным. Так какой смысл устанавливать загрузчик в раздел жесткого диска, если BIOS передает управление главной загрузочной записи? Смысл в том, что тогда глобальный (основной) загрузчик загружает локальный, а последний — операционную систему.

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

Стандартные загрузчики

Рассмотрим подробнее основные загрузчики Windows 2000/XP и Linux. Стандартный 2000 NT Loader способен работать лишь с файловыми системами Fat16/32 и NTFS, т.е. Microsoft предусмотрела запуск только Windows различных версий. Однако через NT Loader возможна загрузка и Linux, и FreeBSD. О том, как это сделать, читайте во врезке «Не можешь — научим, не хочешь — заставим».

NT Loader настраивается через конфигурационный файл boot.ini, находящийся в корневом каталоге загрузочного раздела (обычно на диске С). Для файла boot.ini по умолчанию стоят атрибуты «скрытый» и «системный», и значит, чтобы поменять настройки NT Loader, нужно снять атрибут «скрытый». Настройка NT Loader очень проста. Boot.ini — стандартный инициализационный файл (такие файлы использовались еще со времен Windows 3.11), содержащий всего две секции: [boot loader] и [operating systems]. В секции [boot loader] указываются основные параметры загрузчика: ОС, загружаемая по умолчанию (default), и временной промежуток, через который начнется ее загрузка (timeout). В секции [operating systems] указываются все операционные системы, загружаемые через NT Loader. Интерфейс NT Loader — простое текстовое меню.

В отличие от NT Loader, LiLo и Grub способны работать со множеством ОС и файловых систем (Fat16/32/ NTFS/ext2/ext3/ReiserFS/XFS/...). Наиболее распространенный и популярный загрузчик Linux — LiLo. В процессе работы он не нуждается в каких-либо конфигурационных файлах. LiLo развивается уже очень долго, взгляните на версию — ее номер уже давно перевалил за 20. Конфигурационный файл LiLo.conf, располагающийся обычно в каталоге /etc/, требуется лишь для установки загрузчика. Таким образом, все меню загрузчика прописывается в сам загрузчик. Для установки LiLo достаточно выполнить команду lilo или lilo /etc/lilo. conf, чтобы явно указать конфигурационный файл. И если при редактировании lilo.conf пользователь допустит ошибку, то LiLo просто не установится, указав номер строки, содержащей ошибку. Следовательно, риск того, что получится неработоспособный загрузчик, минимален. Именно в этом и заключается огромное преимущество LiLo перед остальными. Кроме того, LiLo может работать в двух режимах: текстовом и графическом. Причем в последнем в качестве фона можно использовать картинку в формате png. Для настройки LiLo создано множество графических программ, так называемых frontends, и даже среди опций KDE Control Panel присутствует раздел «настройка LiLo». Главный минус этого загрузчика носит, скорее, эстетический характер — в названиях пунктов меню нельзя ставить пробелы, например, вместо «Windows XP» должно быть «Windows_XP».

Загрузчик Grub стал популярным у продвинутых пользователей, потому что он нетривиально устанавливается и конфигурируется. Как и LiLo, он способен работать в текстовом и графическом режимах. Конфигурационный файл загрузчика /boot/grub/grub. conf необходим во время работы, однако при установке его наличие не проверяется. Grub автоматически не тестирует этот файл на ошибки, что может привести к неработоспособности загрузчика. О том, как установить Grub, уже говорилось (см. статью «Gentoo Linux: почти совершенство», «Мир ПК-диск», №4/04). Несмотря на недостатки, это наиболее динамично развивающийся opensource-загрузчик. Он уже давно используется как основной во многих дистрибутивах: ASP Linux, Red Hat, Fedora.

Универсальные загрузчики

На роль идеального универсального загрузчика, на мой взгляд, больше всего подходит Acronis OS Selector фирмы SWSoft (Acronis).

Acronis OS Selector

Он умеет работать со множеством ОС (Windows, DOS, Linux, OS/2, Solaris, Free/Open/NetBSD, BeOS), а также содержит в себе отличный редактор разделов Disk Administrator.

Огромный плюс Acronis OS Selector — дружественный Windows XP-подобный интерфейс. Все настройки производятся в удобном графическом конфигураторе, что позволяет рекомендовать этот загрузчик начинающим пользователям. Acronis OS Selector обладает механизмом автоматического определения ОС: когда он обнаруживает на жестком диске новую операционную систему, то тут же добавляет ее в меню мультизагрузки.

Редактор разделов Disk Administrator загрузчика Acronis OS Selector

Кроме того, в Acronis OS Selector присутствует «мастер установки Windows 9x/Me», создающий самые благоприятные условия для запуска этих ОС.

Радует и то, что Acronis OS Selector 8.0 переведен на русский язык и имеет специальную цену для граждан СНГ — 299 руб. (английская версия стоит 49,99 долл.).

Механизм автоматического определения ОС загрузчика Acronis OS Selector

К сожалению, у Acronis OS Selector есть серьезный недостаток: для его установки необходим раздел FAT32, где он будет размещать свои конфигурационные файлы. Впрочем, при таких широких возможностях AOS наивно было бы предполагать, что он уместится в 512 байтах.

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


Не можешь — научим, не хочешь — заставим

На самом деле через NT Loader мы будем запускать не напрямую Linux, а LiLo.

Однажды мне пришлось инсталлировать Slackware 9.0 на ПК с уже установленной Windows XP Professional. В качестве основного загрузчика был, конечно же, NT Loader. Но вот беда: он никак не хотел грузиться через LiLo, выдавая ошибку «NTLDR is missing...». Что ж, с некоторыми версиями LiLo такое случается. Поскольку ничего иного под рукой не оказалось, пришлось разбираться с LiLo и NT Loader. Если NT Loader не хочет грузиться через LiLo, то, может, попробовать наоборот — LiLo через NT Loader, установив LiLo на раздел диска с Linux? Но ведь NT Loader не умеет работать с ext2 /ext3/ReiserFS. И все же выход нашелся! Нужно просто перенести LiLo из ext2/ext3/ReiserFS на любой раздел NTFS/FAT32, а затем прописать ссылку на него в boot.ini. Как это сделать? LiLo, установленный на раздел жесткого диска, занимает первый его сектор, точнее, первые 512 байт. Их нам и нужно перенести в файл, находящийся в разделе Fat/NTFS. Если планируется разместить LiLo на NTFS, то нужно подготовить дискету, отформатированную под MS-DOS.

Итак, порядок действий таков: загружаемся с загрузочного диска Slackware и монтируем дискету, если загрузчик будет на NTFS-разделе:

mount -t msdos /dev/fd0 /mnt/

Если LiLo будет размещен на Fat-разделе, то монтируем Fat32-раздел:

mount -t vfat /dev/hda1 /mnt/

/dev/hda1.

Теперь с помощью стандартной утилиты dd прочтем первые 512 байт диска, содержащего LiLo (у меня /dev/hda5), и запишем их в файл boot.linux на дискете или Fat-разделе:

dd if=/dev/hda5 of=/mnt/boot.linux bs=512 count=1

Когда мы записываем LiLo на дискету, то перезагружаемся в Windows и копируем файл boot. linux c дискеты в корневой каталог NTFS-раздела, содержащего NT Loader. Если же LiLo переписан прямо на Fat-раздел, то удостоверимся, что в его корне появился 512-байтовый файл boot. linux. Осталось только добавить строку C:oot.linux=«Slackware Linux» в секции «operating systems» файла boot.ini. После перезагрузки в меню NT Loader должен появиться пункт Slackware Linux. Выбрав его, загрузим меню LiLo! Отмечу лишь, что если вы захотите переустановить LiLo, то все описанные действия придется повторить.