Загрузчик (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, то все описанные действия придется повторить.