Как установить windows XP на компьютер с уже установленной Vista

Я не стану разводить диспут на тему, что же все-таки лучше, Windows ХР или Windows Vista, но коль уж имеется желание установить старую добрую XP рядом с Вистой, мы это сделаем. Пусть каждый для себя ответит на тот вопрос, зачем это ему нужно, ведь кто-то вынужден работать за ПК совместно с человеком, которого Виста целиком устраивает, а у кого-то не работает программа, заточенная под ХР. Единственное, что стоит разъяснить, так это причину проблемы, но сначала позвольте вам напомнить, как происходит загрузка компьютера. Это, на мой взгляд, ключевой момент.

Причина всех бед

Итак, непосредственно после нажатия кнопки Power BIOS проводит так называемую процедуру POST (самодиагностика при старте), которая при обнаружении аппаратной неисправности основных узлов должна пропищать специальные коды. После «поста» системный BIOS детектирует загрузочное устройство, им может быть дискета, CD-ROM, жесткий диск и USB-периферия. Обнаружив несколько жестких дисков установленных в системе, BIOS выбирает из них основной (это можно задать в CMOS Setup) и ищет на нем первый сектор, который находится на нулевой дорожке. В первом секторе хранится главная загрузочная запись MBR (Master Boot Record), которая при обнаружении считывается в ОЗУ. После того как BIOS считала MBR в ОЗУ, дальнейший ход загрузки компьютера выполняет микрокод, хранящийся в MBR. Считанная в ОЗУ MBR сканирует таблицу разделов (Partition Table) и находит в ней первичный активный раздел. Чаще всего таковым оказывается раздел, получающий в ОС семейства Windows буквенное имя С: (у Linux это hda0). Найдя этот раздел, MBR загружает в ОЗУ код загрузчика ОС, хранящийся в самом первом секторе первичного активного раздела. Еще этот сектор называют нулевым, поскольку отсчет секторов на HDD начинается с нуля, но по сути он первый.

В этом месте я немного отвлекусь и замечу, что в случае, если вы сделаете активным не первый раздел (обычно получающий в ОС имя С:), а второй, он в загруженной Windows все равно получит имя С:. Microsoft в своем репертуаре, в очередной раз сбила с толку пользователей, наделив разделы буквенными именами, вот в Linux все по-человечески. Если попытаться загрузить компьютер, на котором отсутствует таблица разделов и главная загрузочная запись, то вы получите ошибку BIOS – сообщение о том, что операционной системы нет (Operation System is Missing). В процессе инсталляции ОС в первый сектор первичного активного раздела (загрузочного) записывается так называемый загрузчик операционной системы, который выглядит как обычный файл с атрибутами «только для чтения» и «защищенный системный». В Windows 9х этот файл назывался bootsect.dos и также записывался в первый сектор активного раздела, в системах семейства NT он переименован в ntldr и у него гораздо больше возможностей, нежели у предшественника. Так, например, ntldr работает в паре с файлом boot.ini, что позволяет загружать операционные системы, указывая, где расположены системные файлы (это называется ARC-имена). В процессе загрузки ntldr считывает из файла boot.ini то, на каком контроллере, диске и разделе находятся такие файлы, как ntoskrnl. А если одновременно установить Windows 98 и Windows NT, в самом низу этого файла появляется запись вида «C:\=”Windows 98″», которая на этапе выбора загрузки ОС из списка передает управление файлу bootsect.dos.

Если вы установите Windows NT после установки Windows 9х, то инсталлятор сохранит копию загрузчика bootsect.dos на диске С: и запишет на его место ntldr, который, руководствуясь файлом boot.ini, уже знает о присутствии Windows 9х. В случае, если вы поступите наоборот, инсталлятор старушки Win 98 перезапишет ntldr своим bootsect.dos, который, конечно же, ничего не знает об NT-системе. С Vista дела обстоят примерно таким же образом: при инсталляции к уже установленной ОС Windows NT Vista «подберет» ее, а вот в обратном случае все будет куда хуже.

Сначала я хотел вам предложить вариант с программой SyMon, о которой писалось в статье «20 ОС? Не вопрос!», она-то способна в два счета помочь юзеру создать на HDD до 36 разделов (20 из них основных) и расставить в них операционные системы с их загрузчиками и загрузочными файлами. Но программа рассчитана на продвинутых пользователей и для полного ввода в курс дела потребовалось бы исписать страниц пять, прежде чем пользователь поймет, что к чему. Поэтому все производимые действия мы проведем подручными средствами, понадобятся лишь два диска с дистрибутивами и, возможно, менеджер разделов (Partition Magic или Acronis Disk Director).

Легенда - имеется компьютер с установленной операционной системой Windows Vista, на него требуется установить Windows ХР (но это может быть и Win2k, и 2003 Server). Дабы усложнить задание и сделать ситуацию более реалистичной, представим, что Vista проинсталлирована на единственный раздел жесткого диска, как обычно бывает при покупке нового ПК.

Задача - создать еще один раздел и установить в него Windows ХР, но так, чтобы в процессе загрузки Windows Vista ее загрузочное меню отображало две установленные операционные системы.

Что к чему

Как создать два раздела из одного, на котором, собственно, и установлена операционная система, уже неоднократно писалось, но вкратце напомню. Нужно сначала укоротить раздел С: с конца, а затем на свободном пространстве создать раздел (основной или расширенный – решать вам, это в нашем случае несущественно). В этот раздел мы и будем устанавливать Windows ХР. Обратите внимание, как выглядит раздел С: с установленной Вистой и он же, но только с Windows ХР. Понятное дело, новая операционная система принесла с собой более сложную организацию загрузочных файлов. Устанавливаем на раздел D: Windows ХР и смотрим, что у нас получилось. Видно, что добавились некоторые файлы, но самое главное – в первый сектор загрузочного раздела был записан загрузчик ntldr, который ровным счетом ничего не знает о существовании Висты, поскольку берет все данные о загрузке из файла boot.ini.

После установки Windows ХР она загружается без предоставления какого-либо меню выбора операционных систем, будто кроме ее загрузочных файлов на разделе С: ничего не существует. Наша первая задача – инвертировать ситуацию и заставить загружаться подобным образом Висту, чтобы она ничего не подозревала об установленной «хрюшке». Итак, берем в руки установочный диск Windows Vista и загружаемся с него. На первом этапе загрузки я бы вам посоветовал избрать в качестве основной раскладки английскую, поскольку нам будет нужна командная строка, а она, как известно, изъясняться по-русски еще не научилась. После нажатия клавиши «Далее» нужно нажать на ссылку «Восстановление системы», и мы попадаем в диалоговое окошко, которое предлагает нам выбрать ту Висту, которую нужно восстановить (это если их несколько). Смело нажимаем кнопку «Далее» и в следующем диалоге выбираем командную строку.

В командной строке нужно ввести команду X:\boot\Bootsect.exe /NT60 All, которая и восстановит оригинальный загрузчик Висты, чтобы мы могли загрузиться. Дальнейшие манипуляции мы будем производить уже из-под нее, в ипостаси администратора или, как любят говаривать линуксоиды, супервайзера. Будьте внимательны, в моем примере указана буква привода X:, а если на вашей машине два раздела и один оптический привод, скорей всего, это будет Е:. Набирайте в строке Exit и нажимайте кнопку «Перезагрузка», по умолчанию у вас загрузится Виста, еще не предлагая перечень установленных ОС.

Командуем в строке

Когда операционная система загрузится, идите прямиком в меню Пуск, там заходите в меню Все программы – Стандартные – командная строка, делайте правый клик и запускайте строку от имени администратора. Перед началом работы в строке я бы хотел остановиться на программе, с которой нам придется работать, она называется Bcdedit.exe и проживает по адресу %System-Drive%\%SystemRoot%\System32. Программа называется редактор хранилища данных конфигурации загрузки, что достаточно красноречиво говорит о ее предназначении. Синтаксис этой программы можно узнать по команде bcdedit /?. Кстати, насчет справочной системы командной строки: если вы хотите узнать что-то о программе bcdedit.ехе или какой-то другой, недостаточно давать запрос вида bcdedit /?. Для более детального изучения синтаксиса команд после названия программы нужно задавать те команды, которыми вы будете управлять, вот пример: bcdedit delete /?. Такой запрос подробно расскажет вам о том, какие тонкости есть у удаления параметров записей. Итак, начнем колдовать.

Первая команда – это bcdedit /create {ntldr} /d «Windows XP». Этой командой мы приказываем создать запись с идентификатором {ntldr} и названием в меню выбора «произвольное имя». Единственное условие состоит в том, что имя ОС должно быть взято в кавычки (на латинской раскладке).

Вторая команда – это bcdedit /set {ntldr} device partition=C:. Эта команда производит запись в хранилище данных о том, что загружаться мы будем с физического устройства раздела С:.

Третья команда – это bcdedit /set {ntldr} path \ntldr, она устанавливает путь к файлу из корня загрузочного раздела. Обратите особое внимание на то, что слэш перед ntldr не прямой, а обратный; в случае неправильного синтаксиса команда не будет выполнена. По сути, это запись о том, что в момент выбора загрузчик Висты передает свои полномочия файлу ntldr (как в старые добрые времена).

Четвертая команда – bcdedit /displayorder {ntldr} /addlast – завершает наш марафон и указывает, какой ОС стоять первой в списке: новомодной Vista или старой доброй XP; по истечении тридцати секунд эта ОС начнет загрузку.

Как видите, всего четыре несложные команды, и дело в шляпе. Теперь при загрузке операционной системы вам будет представлено полноценное меню загрузки операционных систем. Конечно, прежнее редактирование файла boot.ini было куда проще, нежели работа с командной строкой при полном отсутствии дружеского интерфейса с пользователем. Это еще раз подчеркивает то, что программисты стараются поглубже скрыть те настройки, которые абсолютно не нужны простому смертному… может, это и к добру.

Вы можете посмотреть на количество записей в хранилище командой bcdedit /enum, а если вам что-то не понравится, запись с идентификатором {ntldr} можно вообще удалить, делается это командой bcdedit /delete {ntldr} /f. Команда bcdedit /timeout XX позволит задать временной интервал, по истечении которого загрузится операционная система, установленная по умолчанию. Чтобы заставить нашу Pстать в списке первой (а как же по-другому?), нужно набрать в строке такую команду:
bcdedit /displayorder {ntldr} /addfirst – и теперь тридцать секунд придется ждать, чтобы началась загрузка Windows ХР, а это уже совсем другое дело.

Напоследок

Для самых ленивых: у сторонних разработчиков имеются фронтенды для программы bcdedit.exe, которые способны предоставить пользователю нехитрый интерфейс, так что не придется напрягать фаланги пальцев и отстукивать по клавиатуре. В качестве примера могу привести парочку таких фронтов. Один из них – это Vista Boot Pro 3.3.0.

 

vista-boot-pro.png

Программа распространяется бесплатно, имеет довольно привлекательный внешний вид и совершенно не тяжела даже для диалапщиков, ведь ее вес всего 1.6 Мб. Этот фронт интуитивно понятен, имеет полностью англоязычный интерфейс, но, к сожалению, некорректно отображает русскоязычные названия ОС. В качестве альтернативы Vista Boot Pro можно рассматривать фронт EasyBCD. При достаточно легком весе, этот фронт также распространяется бесплатно и выполняет все манипуляции за своего ленивого хозяина, не желающего становиться PowerUser. Скачать программулину можно здесь.

 

easybcd.jpg

У этого фронта те же самые проблемы с отображением кириллицы, но зато у него побольше возможностей, он умеет организовывать совместную загрузку таких ОС, как Linux, WinPE, MacOS – и, конечно же, Windows.


Comments (5)

patch25March 27th, 2009 at 12:13 am

Спасибо огромное за статью. Точнее за хорошее разъяснение “что к чему”. Проблема была в том, что предустановленная Виста (ASUS VX3), не в коем разе не хотела восстанавливать MBR из Recovery меню: говорила не та версия (перепробовал все, мож пересборка официальная), в лучшем случае загружала скрытый раздел и вывешивала “ERROR” с заголовком окна recovery.dat на весь экран. Оказалось всё намного проще. Вытащил с диска висты bootsect.exe и прямо из XP поправил всё и сразу. Boom.

FarikJune 1st, 2009 at 8:10 am

U menya takaya problema: Kupil komp HP Pavilion dv7-1245dx na nem stoit Vista Ultimate X64. Hotel pereustanovit i postavit Win XP X64 licenzionniy, kuplenniy v kompanii Microsoft ne polu4aetsya. poyavlyaetsya siniy ekran i Vidayot oshibku i pishet: A problem has been detected and windows has been shut down to prevent damage to your computer.

If this is the first time you’ve seen this stop error screen, restart you computer. if this screen appears again, follow these steps:

Check to make sure any new hardware or software is properly installed. If this is a new installation, ask you hardware or software manufacturer for any windows updates you might need.

If problems continue, disable or remove any newly installed hardware or software. Disable bios memory options such as caching or shadowing. If you need to use safe mode to remove or disable components, restart you computer, press F8 to select Advanced startup options, and then select safe mode.

Technical Information:

***STOP: 0x0000000A (0×00000000,0x0000001c,0×00000000,0x804e1c4c)

Beginning dump of physical memory

Vse isprobival vse ravno ne poluchaetsya pereustanovit, kajdiy raz vidaet odnu i tu je oshibku! Pomogite pojalsta

olgaJuly 7th, 2009 at 12:05 am

pri vvode v komandunuju stroku (command prompt) vami upomianutych kodov vybevajet takije soobschenija:
The boot configuration data store could not be opened. Access is denied.

mozhet ja schto nibut ne tak sdelala… nu da ladno, budem probovat variant dlia lenivyx.

V liubom sluchiaje spasibo za poznovatelnuju statju.

ОлегMay 29th, 2010 at 11:11 am

Спасибо за подробную инструкцию, я Вистой не пользуюсь, у меня стоит Windows XP и Windows 7. А ваши подсказки теперь буду использвать при работе с клиентами, которые все еще “любят” Висту.

shavkatJuly 26th, 2012 at 6:29 am

zaidi v bios, v advanced zaidi v system config. Tam v sata controller pomenjay na comatiblity. I pereustanovi xp.

Оставить комментарий

Ваш комментарий