10 лет назад 10 ноября 2008 в 18:22 42

Борьба с загрузчиком Vista

Автор: Сергей Яремчук

Многие изменения, появившиеся в windows vista, заметны сразу, но еще больше скрыто “под капотом”. некоторые, казалось бы, давно привычные решения реализованы совсем иначе, и пользователь в очередной раз вынужден взяться за чтение документации. среди таких изменений и новый загрузчик.

НОВЫЙ ЗАГРУЗЧИК VISTA

До выхода Vista все версии Windows, построенные на ядре NT, использовали в качестве загрузчика NT Loader, который имел простой конфигурационный файл boot.ini. Работа нескольких версий Windows – от 95 до XP – на одном компьютере не вызывала особых проблем с загрузкой. Предыдущая версия распознавалась корректно, и вся необходимая информация автоматически заносилась в boot.ini. Наоборот не всегда получалось, но выход из ситуации, как правило, был прост и лежал на поверхности. При необходимости самостоятельной корректировки установок этот файл можно было легко отредактировать как в текстовом редакторе вроде Блокнота, так и при помощи меню “Загрузка и восстановление”, которое находится в окне “Свойства системы” на вкладке “Дополнительно”.

Но начиная с Vista порядок загрузки операционной системы изменился. И в сегодняшних ОС от Microsoft (Vista и Windows Server 2008) используется уже совсем другой механизм загрузки – Boot Configuration Data (BCD). Возможно, ничего особенного в этом бы и не было, но жизнь пользователя осложняется тем, что теперь все настройки хранятся в файле бинарного формата, который находится в скрытом каталоге Boot\BCD на системном томе. И главное – его уже нельзя отредактировать вручную, просто открыв в Блокноте. В меню “Загрузка и восстановление” соответствующая ссылка отсутствует. Для управления же загрузкой в современнейшей “Висте” предлагается использовать консольную (!) утилиту bcdedit.exe.

НАСТРОЙКА ДВОЙНОЙ ЗАГРУЗКИ VISTA И XP

Две операционные системы Vista и XP могут почти мирно существовать на одном компьютере (даже на одном разделе). Пока известно одно серьезное ограничение – после загрузки Windows XP будут удалены все точки восстановления, созданные Vista (и файлы Complete PC Backup кроме последних – support.microsoft.com/kb/926185). Но следует взять за правило всегда устанавливать вначале младшую версию, а затем старшую. Более ранняя версия Windows, как правило, не имеет совместимости по загрузчику с поздним вариантом системы. Например, в случае установки Windows XP, а затем Vista будет возможна загрузка обоих вариантов, так как в стартовое меню автоматом будет добавлено все для этого необходимое. Но, увы, и этот вариант срабатывает далеко не всегда. Дело в том, что Vista требует, чтобы раздел, на который она устанавливается, был активным, при невыполнении этого требования она может запросто затереть загрузчик XP. При установке же Vista на другой жесткий диск таких проблем обычно нет.

А вот при обратной последовательности загрузка Vista будет невозможна. Так как более ранняя версия “не узнает” старшую систему, перезаписывает все данные в загрузочном секторе диска и устанавливает свой загрузчик NT Loader. После этого в меню выбора ОС информация о Vista отсутствует, и загрузить последнюю будет нельзя. Вариантов выхода из подобной ситуации может быть несколько. Правильным считается восстановление загрузчика Vista и добавление в его базу записи о Windows XP.

Есть два штатных способа восстановления основной загрузочной записи системы Vista. Для обоих необходимо иметь загрузочный диск Windows Vista. Вставляем его в привод (пусть его номер будет Е) выбираем “Пуск” – “Выполнить” (Win+R) и вводим E:\boot\Bootsect.exe /NT60 All. Если по каким-то причинам загрузчик таким образом восстановить не удается (операция блокируется системой, антивирусом и прочее), то загружаемся с установочного диска Windows Vista. В первом окне обязательно выбираем язык ввода США, иначе команды в консоли будет вводить проблематично. Нажимаем на ссылку “Восстановление системы”, которая расположена внизу окна, и в следующем окне выбираем пункт “Командная строка”. Вводим в окне терминала команду, показанную выше. Загрузчик восстановлен, но возможности выбора Windows XP пока нет. В документе support.microsoft.com/kb/919529/ru дан список команд, которые необходимо выполнить, чтобы добавить в меню пункт для загрузки другой системы, но сегодня появились программы с удобным графическим интерфейсом, о них чуть дальше.

ДОБАВЛЯЕМ LINUX

Операционные системы семейства Linux без проблем уживаются на одном компьютере с Vista и XP. Вот только как быстро удастся наладить их сотрудничество и насколько удобно будет выбирать нужную ОС при загрузке, зависит от порядка установки и количества дисков в компьютере. Самым простым вариантом является размещение Vista на отдельном диске и использование загрузчика из Linux: GRUB или LILO. Порядок действий в этом случае таков. Оставляем один диск в системе (можно просто сделать в BIOS его основным, современные варианты BIOS это позволяют) и устанавливаем на него Vista. После установки подключаем второй диск (или меняем местами в BIOS, делая его основным) и затем последовательно устанавливаем на диск Windows XP и Linux. На этапе установки загрузчика большинство современных дистрибутивов Linux (Ubuntu, Mandriva, openSUSE, Fedora и другие) корректно распознают наличие других установленных операционных систем и автоматически заносят в конфигурационный файл нужную информацию. В итоге после перезагрузки можно сразу выбирать нужную ОС в меню GRUB или LILO. Учитывая, что настройки загрузчиков Vista и XP не тронуты, в них выбирать ничего не придется, что очень удобно.

Есть небольшая особенность, с которой, возможно, придется столкнуться. Возникает она только тогда, когда на компьютере одновременно используются SATA- и ATA-диски. Например, в настройках BIOS в качестве основного выбран SATA-диск, на который, собственно, и ставится система. Но, например, Ubuntu и некоторые другие современные дистрибутивы во время установки имеют привычку “переставлять” диски местами. Поэтому после установки загрузчик Linux (или его конфигурационный файл) может оказаться не на том диске. Если такое произошло, то загрузчик Linux придется переустанавливать на другой диск.

Но если все три системы (или только две – Vista и Linux) ставить на один жесткий диск, то алгоритм будет другим. В зависимости от того, из какой ОС будет использоваться загрузчик, можно выбрать и разный порядок установки. Помните: Vista не захочет устанавливаться в раздел, который не помечен как активный, и по ходу будет затерт любой загрузчик, находящийся в MBR. Поэтому чтобы сократить себе последующую работу, лучше устанавливать Vista первой по порядку и на первый (активный) раздел. Если первой будет Linux, которая займет активный раздел, в процессе установки Vista придется потрудиться, чтобы сделать раздел, в который она устанавливается, активным, иначе систему инсталлировать не удастся. Более того, в свете выхода SP1 для Windows Vista был предпринят удар по устранению возможности двойной загрузки Windows и Linux. Так как обновление KB935509, устанавливаемое для версий Ultimate и Enterprise, проверяет главную загрузочную запись, и если будет обнаружен любой другой загрузчик, установка сразу же прекращается.

Поэтому порядок такой: устанавливаем Vista (обновляем ее до SP1 по необходимости) и затем устанавливаем Linux. Но на этапе установки загрузчика Linux следует определиться, что мы будем использовать для выбора ОС. Современные версии Linux корректно распознают установленную “Висту” и заносят информацию в файл своего загрузчика. Поэтому, установив загрузчик в MBR, можно будет сразу выбрать и Linux, и Windows.

При необходимости изменить систему, загружаемую по умолчанию, очень просто. Все настройки загрузчика GRUB производятся в файле boot/grub/menu.lst. Для правки его достаточно открыть в обычном текстовом редакторе вроде kate или gedit (нужны права администратора):

$sudo gedit /boot/grub/menu.lst

На систему, которая будет загружаться по умолчанию, указывает параметр “default”. Изначально его значение равно 0, то есть будет выбран первый пункт списка, обозначаемого параметром “title” – обычно здесь стоит Linux. Например:

titleUbuntu 8.04, kernel 2.6.24-16-generic

В качестве значения для “default” указываем номер по счету того title, который должен быть загружен по умолчанию. Но считать нужно начинать с нуля, а все закомментированные поля “title” (со знаком решетки – “#”) игнорируем. То есть для третьего по счету “title” это будет (3-1=2):

default2

Если же вместо загрузчика Linux планируется использовать вистовский BCD, то в этом случае линуксовый загрузчик устанавливаем не в MBR, как это делается по умолчанию, а в корневой раздел Linux. А чтобы прописать загрузку Linux в BCD, используем программу EasyBCD.

ГРАФИЧЕСКИЕ УТИЛИТЫ ДЛЯ НАСТРОЙКИ BCD

Стандартные инструменты, предлагаемые Microsoft для изменения параметров загрузчика Vista, могут понравиться разве что хакерам, которые жить не могут без строки терминала. Нормальному же человеку следует прибегнуть к помощи утилит сторонних разработчиков. Среди бесплатных программ для редактирования загрузочного меню Vista можно выделить VistaBootPRO и EasyBCD. Обе очень просты в работе. По сути, они являются графическим интерфейсом к bcdedit и позволяют быстро изменить, переустановить или удалить загрузчик. По основным возможностям программы сходны, однако EasyBCD кроме всех версий Windows умеет работать и с загрузчиками некоторых других операционных систем: Linux, BSD и Mac OS X.

Таким образом, хотя появление нового загрузчика и добавило немного хлопот обычному пользователю, но сторонние утилиты позволяют все их сгладить.