Open Way | Systems | Distro | Shell | Desktop | Applications
Network | Development | Download | OfftopicКарта сайта
Форум POSIX.ru
На главную страницу

GRUB. Введение для "подоконников"

Владимир Попов
2003

Содержание

Зачем?

Как-то "сложилось по жизни", что на IBM PC мне всегда требовалось более одной операционной системы. Сама архитектура этого компьютера такую мультизагрузку вполне допускает, род моих занятий - программист, так что особых проблем упомянутая потребность не вызывала. В тех же случаях, когда подобная мультизагрузка требовалась кому-то ещё, я рекомендовал xboot Ильи Евсеева. С приходом Pentium-II инсталлятор xboot пришлось слегка подправить по поводу run-time error 202 (ну, не предполагали разработчики TurboPascal, что так быстро всё случится), за что, пусть с опозданием, приношу извинения автору: несанкционированная модификация кода, всё же. А больше ничего и не требовалось.

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

Постепенно примкнув к лагерю сторонников ПО с открытым исходным кодом (и в соответствии с принципами этого лагеря), я несколько раз делился опытом на виртуальных страницах различных сайтов. И вот что интересно: больше всего вопросов задали мне в связи с моим вариантом описания мультизагрузчика GRUB (GRand Unified Bootloader). Причём спрашивали не собратья linux-оиды, а именно пользователи ОС от MicroSoft. К сожалению, мои советы по поводу использования GRUB помогали им не так уж часто. И не потому, что этот мультизагрузчик плох, отнюдь, а потому, что, кроме возможности загружать УЖЕ СУЩЕСТВУЮЩИЕ на винчестере ОС, уважаемым корреспондентам требовалась ещё и возможность создавать СОСУЩЕСТВУЮЩИЕ ОС от MicroSoft на одном и том же винчестере. А вот это в прямые функции GRUB никак не входит. Сам же производитель такую возможность пользователям не предоставляет: ну, не могли они предположить такой удачи, чтобы для одного компьютера несколько ОС покупалось. Upgrade со скидкой - предположили, а две версии одной ОС, но разной, скажем, локализации - нет. Или просто две одинаковых: одну - сынишке-геймеру, другую - себе для работы...

Сожаление моё (а может - раздражение из-за необходимости повторять одну и ту же информацию, с каждым разом кажущуюся всё более банальной) постепенно достигло уровня, когда я решил предпринять ещё одну попытку разъяснения всем желающим возможности использования на одном IBM PC нескольких операционных систем производства MicroSoft. "Ещё одну", потому, что документация к любому мультизагрузчику предпринимает такую попытку в обязательном порядке, жаль только, мало, кто эту документацию читает, если судить по отзывам на эти самые мультизагрузчики. А "MicroSoft" потому, что ОС unix-клона и так предоставляют все необходимые для мультизагрузки средства, да и пользователи их, в большинстве своём, лучше представляют себе организацию данных на винчестере: и не обязательно из-за "повышенной" грамотности - по необходимости, быть может.

Итак, оставим в стороне multiboot specification и vmlinuz (традиционное название ядра Linux): просто добьёмся существования на одном винчестере двух-трёх "непритязательных" ОС: DOS, win'95 и win'98. Для решения этой задачи потребуются некоторые знания и инструментарий. И то и другое - в минимальном количестве. В стиле MicroSoft, так сказать. Дабы пользователь "не утомился".

Каким образом?

Что касается знаний, то без них, к сожалению, не обойтись: слишком скудны средства, которыми располагает персональный компьютер в момент загрузки. Поэтому и рассчитывать на исчерпывающе-содержательный интерфейс мультизагрузчиков не приходится. Если система "не грузится", то некому поведать языком "интуитивно-понятного интерфейса", почему это случилось. Приходится рассчитывать на аскетическое ПО, размещающееся, как правило, на дискете, и на собственные знания. Минимальный набор знаний, необходимых для осуществления самостоятельных осмысленных операций над разделами диска IBM PC, укладывается в сравнительно небольшое число постулатов:

В принципе, из вышеизложенного уже можно догадаться, что нужно сделать для достижения поставленной задачи:

С помощью чего?

Теперь осталось выяснить: как конкретно это сделать. Переходим к инструментарию. Существует довольно много программ, с помощью которых можно редактировать MBR и, в частности, таблицу разделов. Большинству пользователей MS Windows наверняка известен Norton Disk Doctor, доживший уже до девятой, если память не изменяет, версии.

Список известных мультизагрузчиков тоже не так уж мал. А вот продукт, достаточный сам по себе для решения поставленной задачи, известен мне только один. Это GRUB - GRand Unified Bootloader. Изначально, автор - Erich Boleyn, а в настоящее время проект развивается как часть GNU - известного "бастиона" Open Source. Именно на сайте этой уважаемой организации находится страничка GRUB: http://www.gnu.org/software/grub, а на её ftp-сервере всегда можно скачать последнюю версию пакета.

GRUB, безусловно, достоин отдельного разговора, но для наших "минималистских" целей достаточно будет рассказать о пяти-шести из почти шести десятков его команд - да простят меня авторы. Приверженцам MicroSoft я даже скачивать дистрибутив GRUB не рекомендую: проще воспользоваться его загрузочной дискетой, подготовленной мной специально для них на дискете в формате FAT (подобная дискета входит и в состав дистрибутива, только файлов на ней, не имеющих отношения к ОС от MicroSoft, много больше и прочитать её под DOS/Windows - затруднительно). Архивированный образ дискеты лежит здесь, а получить из образа дискету можно с помощью замечательной программы rawwrite, которую, пользуясь случаем, я настоятельно всем рекомендую. Размер архива - очень скромный - чуть более 50кБ.

Приступим!

Вот мы и "во всеоружии". Начали:

Последние штрихи

Если у Вас современный винчестер, то почти наверняка GRUB сохранил весь необходимый ему для работы код в блоках нулевой дорожки, соседствующих с MBR (нулевая дорожка не используется операционными системами). Если сообщение об этом появилось на экране во время выполнения команды setup, то все файлы подкаталога boot/grub можно теперь удалить. Кроме menu.lst. Точнее, его тоже - можно, но при этом нужно позаботиться о переносе содержимого этого файла в какие-нибудь свободные блоки на диске (а хоть бы и на той же нулевой дорожке), а номера этих блоков перечислить в команде install. Как это сделать под Linux - не интересно пользователю MS Windows, а средствами самой MocroSoft этого сделать и вовсе нельзя. Поэтому лучше оставим menu.lst на месте и перейдем к анализу его содержимого на примере варианта с предложенной Вам дискеты. Вообще-то, файл этот достаточно, на мой взгляд, прокомментирован. И даже, для удобства приверженцев MicroSoft, - в кодировке win-1251. Но некоторые пояснения, быть может, и не помешают:

Приложение

Отредактировав menu.lst, Вы получаете законченную систему с мультизагрузкой. Поздравляю. Надеюсь, предложенный мной путь не показался Вам слишком трудным - проще не смог, уж не взыщите. А приведённые ниже советы можно прочитать "чисто из любопытства" или в том случае, если Вы столкнётесь с проблемой, для разрешения которой знаний у Вас окажется недостаточно. Можно рассматривать их, как мини-FAQ к основному материалу. Итак:

Эпилог

Разумеется, описанный способ создания системы с мультизагрузкой - не единственный. Лет пять назад, устав от необходимости несколько раз запускать Disk Editor, пока подготавливаемый к продаже компьютер не обретёт запрошенную мультисистемность, я написал четыре крошечные утилитки для сохранения и восстановления MBR, а также для просмотра и модификации пресловутых четырёх пар байт таблицы разделов. Используя возможности создания меню средствами config.sys и autoexec.bat, loadlin - для загрузки Linux из-под DOS и эти самые утилитки, также вполне можно было создать систему с мультизагрузкой. Вывод: важнее всё-таки знать, что нужно делать, а средства осуществления - найдутся.

Вот, собственно, и всё о моём любимом мультизагрузчике в варианте изложения для приверженцев MS Windows. Побольше любопытства, хладнокровия при операциях на MBR и - успехов!


Улучшенные радиотелефоны panasonic с автодозвоном и будильником . Акции на покупку golf. Новые модели golf в Москве. . научиться рисовать