Проблема
После установки более ранней версии операционной системы Windows на компьютер с Microsoft Windows Vista в конфигурации с двойной загрузкой может возникнуть одна из указанных ниже проблем. • При установке более ранней версии операционной системы Windows на компьютер с Windows Vista система Windows Vista перестает запускаться. В этом случае запускается только более ранняя версия операционной системы Windows.
• При установке дополнительного экземпляра Microsoft Windows XP на компьютер, на котором уже установлены системы Windows XP и Windows Vista в конфигурации с двойной загрузкой, появляется приведенное ниже сообщение об ошибке.
Произошла ошибка чтения диска. Причина
Эти проблемы возникают из-за того, что более ранние версии операционной системы Windows несовместимы с новым методом загрузки системы Windows Vista. Система Windows Vista использует новое хранилище данных конфигурации загрузки. Это хранилище содержит меню загрузки и все сведения об операционных системах, установленных на компьютере. Следовательно, файл Boot.ini из более ранней версии операционной системы Windows нельзя использовать для запуска системы Windows Vista.
В предыдущих версиях операционной системы Windows, которые запускались на компьютере с BIOS, например в Windows XP, процесс загрузки начинается с BIOS. BIOS определяет загрузочное устройство, а затем загружает первый физический сектор. Этот физический сектор называется основной загрузочной записью (MBR). MBR содержит таблицу разделов и необходимый загрузочный код. Этот код осуществляет поиск активного раздела в таблице разделов и передает управление загрузочному сектору активного раздела. Затем загрузочный сектор активного раздела загружает программу Ntldr. Программа Ntldr выполняет синтаксический анализ файла Boot.ini. Этот файл содержит список установленных операционных систем.
При запуске на компьютере с BIOS системы Windows Vista BIOS загружает MBR, а затем — загрузочный сектор. Однако загрузочный код загружает новую программу — диспетчер загрузки Windows (Bootmgr). Диспетчер загрузки Windows анализирует файл данных конфигурации загрузки, составляет список установленных операционных систем и выводит меню загрузки. Если вместе с системой Windows Vista в конфигурации с двойной загрузкой установлена более ранняя версия операционной системы Windows, диспетчер загрузки Windows передает управление программе Ntldr для предыдущей версии операционной системы Windows. Диспетчер загрузки Windows выполняет эти действия при выборе пункта Windows Vista в меню загрузки.
При установке более ранней версии операционной системы Windows на компьютер с Windows Vista программа установки перезаписывает все данные в MBR, загрузочном секторе и загрузочных файлах. Таким образом, более ранняя версия операционной системы Windows теряет прямую совместимость с системой Windows Vista.
Решение
Для устранения этих проблем необходимо выполнить следующие действия.
Примечание. Команды в следующей процедуре выполняются в командной строке. В системе Windows Vista эти команды необходимо выполнять в командной строке с повышенными правами пользователя. Для этого нажмите кнопку Пуск, выберите пункт Стандартные, щелкните правой кнопкой мыши ярлык командной строки и выберите пункт Запуск от имени администратора. 1. Для восстановления основной загрузочной записи системы Windows Vista и загрузочного кода, который передает управление диспетчеру загрузки Windows, воспользуйтесь программой Bootsect.exe. Для этого введите в командной строке следующую команду: Диск:\boot\Bootsect.exe /NT60 All
В этой команде диск — это диск, на котором находятся установочные файлы системы Windows Vista.
Примечание. Загрузочная папка для этого действия находится на DVD-диске.
2. Для создания в двоично-десятичном файле Boot.ini записи для более ранней версии операционной системы Windows вручную воспользуйтесь программой Bcdedit.exe. Для этого введите в командной строке следующие команды.
Примечание. В этих командах диск — это диск, на котором установлена система Windows Vista. • Диск:\Windows\system32\Bcdedit /create {ntldr} /d "Описание предыдущей версии Windows"
Примечание. В этой команде описание предыдущей версии системы Windows может быть произвольным текстом. Например, в качестве описания предыдущей версии системы Windows можно ввести "Windows XP" или "Windows Server 2003".
• Диск:\Windows\system32\Bcdedit /set {ntldr} device partition=x:
Примечание. В этой команде x: — это буква диска активного раздела.
• Диск:\Windows\system32\Bcdedit /set {ntldr} path \ntldr
• Диск:\Windows\system32\Bcdedit /displayorder {ntldr} /addlast
3. Перезагрузите компьютер.
Дополнительная информация
Для запуска версий операционной системы Windows на основе Microsoft Windows NT необходимы следующие файлы: • Ntldr
• Boot.ini
• Bootfont.bin
Примечание. Этот файл необходимо использовать при установке версий Windows для языков Восточной Азии.
• NTDetect.com
В системе Windows XP эти файлы расположены на системном разделе, который помечен как "активный". По умолчанию эти файлы в Windows XP являются скрытыми системными файлами. Эти файлы можно заменить с помощью консоли восстановления, в ином случае запустить операционную систему можно с помощью загрузочного диска Windows NT. Система Windows Vista не использует эти три файла. Система Windows Vista запускается с помощью скрытого системного файла Bootmgr и других необходимых файлов, расположенных в каталоге \Boot.
Создание конфигурации с поддержкой нескольких операционных систем, включающей Windows Vista
Чтобы создать работоспособную конфигурацию с поддержкой нескольких операционных систем, сначала установите самую старую версию операционной системы Windows. Затем установите более новые версии в порядке возрастания. Каждая новая версия системы Windows сохраняет обратную совместимость для запуска более ранних версий Windows.
Чтобы создать конфигурацию с поддержкой нескольких операционных систем, включающую систему Windows Vista, необходимо иметь отдельный раздел для каждой устанавливаемой более ранней версии Windows. Следуйте указанным ниже общим рекомендациям. • Создайте не менее двух разделов. Один раздел используйте для установки системы Windows Vista.
Примечание. Если раздел, предназначенный для системы Windows Vista, уже отформатирован, убедитесь в том, что он отформатирован в файловой системе NTFS. Рекомендуется использовать один из указанных ниже способов. • Создайте второй неотформатированный раздел.
• Не создавайте второй раздел и оставьте свободное место на диске. Вместо этого создайте второй раздел в процессе установки системы Windows Vista.
• Если на компьютере не установлена операционная система, установите сначала самую старую версию Windows.
Примечание. Систему Windows XP следует устанавливать перед установкой Windows Server 2003.
• Запустите программу установки системы Windows Vista. Установите систему Windows Vista на свободное место или на существующий раздел. Программу установки можно запустить в более ранней версии Windows либо запустить компьютер, вставив предварительно диск с системой Windows Vista в CD- или DVD-дисковод.
По завершении установки системы Windows Vista будет создана правильно настроенная среда с поддержкой нескольких операционных систем, включающая Windows Vista и более ранние версии Windows. Выводимое на экран меню загрузки диспетчера загрузки подобно следующему:
Предыдущая версия операционной системы Microsoft Windows
Удаление Windows Vista из конфигурации с двойной загрузкой
Если необходимо удалить систему Windows Vista из среды с двойной загрузкой, в которую входит предыдущая версия Windows, выполните указанные ниже действия.
Примечание. Эти действия можно выполнить в более ранней версии Windows или в системе Windows Vista. При выполнении этих действий в системе Windows Vista команды необходимо выполнять в командной строке с повышенными правами пользователя. Для этого нажмите кнопку Пуск, выберите пункт Стандартные, щелкните правой кнопкой мыши ярлык командной строки и выберите пункт Запуск от имени администратора. 1. Для восстановления программы Ntldr воспользуйтесь программой Bootsect.exe. Для этого выполните следующую команду: Диск:\Boot\Bootsect.exe –NT52 All
Примечание. В этой команде диск — это диск, на котором находятся установочные файлы системы Windows Vista.
После перезапуска компьютера диспетчер загрузки Windows не будет загружен. Вместо этого загрузятся Netldr.exe и Boot.ini.
2. Удалите раздел, на котором установлена система Windows Vista.
Внимание! Раздел, на котором установлена система Windows Vista, можно удалить только в том случае, если этот раздел не является активным. Например, возможна следующая ситуация: • система Windows Vista установлена на диске C, а диск C является разделом под номером 1 и активным разделом;
• система Windows XP установлена на диске D, а диск D является разделом под номером 2 и не является активным разделом.
В этой ситуации можно выполнить команду bootsect, но нельзя удалить раздел, на котором установлена система Windows Vista. При удалении этого раздела компьютер будет невозможно загрузить, поскольку загрузочные файлы системы Windows XP будут удалены.
Ссылки
Дополнительные сведения см. в следующих статьях базы знаний Майкрософт:
314079 (http://support.microsoft.com/kb/314079/) Использование системных файлов для создания загрузочного диска с целью предотвращения проблемы, когда не удается запустить Windows XP
911080 (http://support.microsoft.com/kb/911080/) При использовании программы Winnt32.exe для переустановки Windows XP на компьютере, на котором установлены системы Windows XP и Windows Vista, появляется сообщение об ошибке «Произошла ошибка чтения диска» (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Дополнительные сведения о данных конфигурации загрузки см. на веб-узле корпорации Майкрософт по следующему адресу:
http://msdn2.microsoft.com/en-us/library/aa362692.aspx (http://msdn2.microsoft.com/en-us/library/aa362692.aspx)(на английском языке)
Дополнительные сведения об интерфейсе EFI в системе Windows Vista см. на веб-узле MSDN (Microsoft Developer Network) по следующему адресу:
http://www.microsoft.com/whdc/system/platform/firmware/efibrief.mspx (на английском языке) (http://www.microsoft.com/whdc/system/platform/firmware/efibrief.mspx)