GRUB - GRand мира загрузчиков
4cab9ef0

с мультизагрузкой. Поздравляю. Надеюсь, предложенный


Отредактировав menu.lst, Вы получаете законченную систему с мультизагрузкой. Поздравляю. Надеюсь, предложенный мной путь не показался Вам слишком трудным - проще не смог, уж не взыщите. А приведённые ниже советы можно прочитать "чисто из любопытства" или в том случае, если Вы столкнётесь с проблемой, для разрешения которой знаний у Вас окажется недостаточно. Можно рассматривать их, как мини-FAQ к основному материалу. Итак:
  • не потеряйте дискету GRUB. Ваш menu.lst никуда не денется, если только Вы сами его ненароком не уничтожите, а вот исполняемый код MBR (который в настоящий момент представляет собой ни что иное, как stage1 GRUB) рано или поздно будет уничтожен очередной реинсталляцией продукта MicroSoft. К счастью, установка мультизагрузчика отнимает не более минуты, вот только дискета GRUB при этом - обязательное условие;
  • когда разделов на Вашем диске станет много, их таблица, выводимая GRUB, как автозаполнение команды root, не должна ввести Вас в заблуждение множеством разделов типа 00B или 00C. Все разделы с номерами старше трёх - логические и, хотя типы их такие же, как у разделов первичных, загружаться они не могут. На самом деле, с помощью GRUB - могут, если будут содержать в загрузочной записи (boot record) код загрузки операционной системы. Только вот Microsoft не предоставляет средств инсталляции своих ОС в логические разделы. Если же Вы воспользуетесь средствами копирования разделов независимых производителей и не ошибётесь при задании идентификатора файловой системы, то преодоление ограничения на количество загружаемых разделов перестанет быть неразрешимой задачей;
  • не забывайте о существовании командного режима. В Вашем распоряжении больше полусотни команд, среди которых сравнение и поиск файлов, средства загрузки по сети и многое другое, о чём я не писал, дабы преждевременно не утомить избалованных "интуитивно понятным интерфейсом". help и help имя_команды - лучшие помощники при использовании командного режима;
  • имея несколько разделов, Вам, возможно, захочется один из них использовать в качестве "подопытного" - того, на котором можно опробовать "сомнительное" ПО.


    Результатом таких проб и ошибок часто становится крах системы. Сохраните заблаговременно образ "свежеинсталлированнной" системы (Ghost от Symantec или DriveImage от PowerQwest - вполне подходящие для этого средства) - пригодится;
  • существует "туповатый" аналог команды root - rootnoverify. Разница между ними в том, что rootnoverify просто объявляет указанный раздел "разделом по умолчанию", даже не пытаясь читать его. Все последующие команды будут подразумевать именно этот раздел. Пробовать можно смело: хуже не будет;
  • если команду chainloader использовать с опцией --force, то не будет проверяться так называемая "сигнатура" - последние два байта загрузчика раздела (boot loader), которые всегда должны быть равны 0x55 0xAA. Мне, признаться, не встречались исправные загрузчики с неверной сигнатурой, но, может быть, Вам повезёт больше;
  • и первичные, и логические разделы можно "скрывать" (hide), устанавливая четвёртый бит в байте типа системы (тот самый, который MicroSoft игнорирует, начиная от win'2000). Вставив, например, в некоторую секцию загрузки команды: hide (hd0,1) hide (hd1,1) unhide (hd0,0) мы "скроем" при её загрузке вторые разделы первого и второго дисков и, напротив, "откроем" первый раздел первого диска.
  • существует возможность выводить меню GRUB в графическом режиме на фоне какой-либо картинки. Для этого используется следующая команда установочной сессии: splashimage=(hd0,0)/boot/grub/splash.xpm.gz номер диска и раздела могут быть, разумеется, любыми. splash.xpm.gz - сжатый (gziped) файл "заставки". Команду задания цветов меню color в этом случае лучше исключить: всё равно не сработает. Формат "заставки", к сожалению, задан жёстко: 640х480, 14 цветов, xpm-кодирование. К сожалению, потому, что как простейший из архиваторов gzip, так и графический формат xpm не являются "естественными" в среде Microsoft Windows. К тому же, команда splashimage не включена в вариант GRUB, предоставляемый GNU, а только в те, которыми комплектуются дистрибутивы RedHat или ALT Linux, например.


    Красота, как это часто бывает, и в этом случае "требует жертв";
  • ни одна ОС от MicroSoft, кроме NT, не может быть загружена со второго диска. Нужно выходить в BIOS Setup, менять устройство загрузки и т.д. и т.п. GRUB предоставляет альтернативу. Команды: map (hd0) (hd1) map (hd1) (hd0) root (hd0,0) makeactive chainloader +1 загрузят ОС из первого раздела второго диска. Обратите внимание, что команды map "меняют местами" диски даже в представлении GRUB: второй диск становится после их выполнения hd0, а не hd1. Также, собственно, поступает и BIOS;
  • символьные имена дисковых устройств, доставшиеся современным ОС от MicroSoft "по наследству" от MS DOS, приносят, подчас, немало неудобств. И дело, конечно, не в том, буквами или цифрами обозначать логические устройства, а в том, детерминирована ли связь между наименованием логического устройства и его физической сущностью. У MicroSoft - нет. Сами-то они "буковки" эти не шибко "жалуют" - загляните хотя бы в NT-шный boot.ini: нумерация дисков и разделов вполне очевидна. Но для пользователя... Наблюдали ли Вы изменение порядка именования устройств при подключении второго диска или изменении структуры разделов? Об этом-то и речь. Как будто второй логический раздел расширенного раздела первого диска изменился после подключения второго диска. Явно - нет, но называется теперь иначе. Для борьбы с этим явлением рекомендуется задавать в BIOS второй, подключаемый диск как "отсутствующий" (not installed). Система всё равно обнаружит его, но на более позднем этапе и "буковки" присвоит его разделам следующие за "буковками", занятыми разделами первого диска.
    C NT - получше. Имена разделам можно присваивать самому, а в последних версиях уже появилась возможность монтирования "a la unix", когда новое устройство становится как бы частью уже существующего дерева каталогов - и никаких "буковок". Но... Всё это не относится к разделу системному - тому, на котором сама NT инсталлирована.


    А потребность такая не исключена. Реинсталляция NT после переноса на другой диск или инсталляция "поверх" (с целью спасти нужные файлы не ко времени "рухнувшей" системы) с высокой долей вероятности дадут Вам новое имя системного раздела. А это неудобно, принимая во внимание количество ссылок в registry на имя старое. Тут уж придётся действовать "отмычкой": с помощью regedit переименуйте соответствующий ключ в секции: \\HKLM\System\MountedDevices\ Подробнее не описываю: знающему достаточно, а не знающему, что такое regedit, сначала лучше с ним поближе познакомиться, и лишь потом переходить к редактированию registry.
  • первичные разделы и логические разделы расширенного раздела нумеруются в порядке создания, а не в соответствии с их физическим расположением. Это одно и то же, но только до первого удаления уже существующего раздела (а кто помешает нам это сделать?). Можно бы об этом и не задумываться, но некоторое ПО почему-то настойчиво предлагает ренумеровать разделы в соответствии с их физическим порядком, а некоторое - просто выполняет такую ренумерацию, даже не проинформировав об этом пользователя. Полагаю, не нужно объяснять, что номера разделов в menu.lst после этого могут указывать уже не "туда, куда следует". Придётся вспомнить о командном режиме, определении действительных типов файловых систем, после чего отредактировать menu.lst;
  • все описанные операции над таблицей разделов не касались изменения размеров разделов существующих. И это естественно: GRUB не предлагает такой возможности, да и знаний тут требуется побольше. Если же Вам когда-нибудь всё-таки придётся вручную модифицировать эти размеры (восстанавливая MBR после CIH-атаки, например), то помните, что в таблице они задаются двумя способами: старым, с указанием значений номеров цилиндра, головки и сектора для начала и конца раздела (CHS), и новым - с указанием логического номера стартового блока раздела и его длины в блоках. Нетрудно догадаться, что второй является одновременно и единственно правильным для LBA (Logical Block Addressing) режима.Для разделов, физические параметры которых уже невозможно описать формулой "цилиндр - головка - сектор" (места, отведённого в своё время создателями IBM PC для хранения этих данных просто недостаточно для описания параметров современных винчестеров), поля CHS всё же заполняются, указывая, обычно, на близкий к максимально адресуемому в рамках CHS.


Содержание раздела