В первую очередь этот пост для тех, кто хотел бы попробовать работу Windows 7 на своем компьютере, но по каким-то причинам не рискует этого делать - не хочется, например, переразбивать разделы на жестком диске, есть сомнения в дальнейшей работоспособности или совместимости с уже установленной ОС. Но благодаря некоторым новым возможностям Windows 7/Windows Server 2008 R2 - это не проблема. Теперь вы можете установить новую ОС Windows 7 рядом с уже существующей, ни коим образом не затронув ее базовую функциональность, разбивку дисков или файловую структуру. Кроме того, вы можете спокойно установить неколько независимых копий ОС Windows 7 на одном разделе и успешно между ними переключаться.
Все это реализовано теперь весьма и весьма просто - файлы .VHD, известные как виртуальные диски, Windows 7/Windows Server 2008 R2 теперь воспринимают как отдельные разделы и поддерживают загрузку ОС, установленных внутри этих файлов. Но, хочу заметить, никакого отношения к вирутализации данный случай не имеет - система внутри VHD загружается также, как если бы ее файлы находились бы просто на "обычном", привычном для нас, разделе диска типа С: или D:. Т.е., создаем файл .VHD нужного размера на уже существующей файловой системе того или иного диска, в процессе установки Windows 7 или Windows Server 2008 R2 монтируем этот VHD-файл, как отдельный раздел диска, устанавливаем в него ОС… Все… Можем повторить процедуру M, нет, лучше N раз, пока не закончится место на "родительском" разделе и установить столько ОС, сколько влезет. При этом как ОС, установленная на "радительском" разделе, так и ОС в других .VHD, останутся нетронутыми.
Перспективы, как вы понимаете, колоссальные, как для обеспечения ускоренного развертывания, так и для обеспечения отказоустойчивости и динамического распределения нагрузки при помощи той же виртуализации. Теперь любая виртуальная машина при потребности в повышенных аппаратных ресурсах может быть переведена в "физическое" состояние простым перенаправлением загрузчика физического хоста на файл .VHD этой виртуальной машины, и, наоборот - любая ОС, работающая на физическом хосте, может быть тут же превращена в виртуальную. Перспективы заманчивые… Вплоть до скорой реализации "Восстания машин" и "Матрицы".
Ну а теперь - к делу… Теория без практики - пуста… Допустим, у вас под рукой скромный ПК или ноутбук, на жестком диске которого только один раздел С:, и на нем присутствует 50ГБ свободного места. Вы хотите установить сюда Windows 7 beta, но при этом сохранить установленную на диске ту же Windows Vista.
Итак, установка Windows 7 или Windows Server 2008 R2 на VHD. Все просто:
Записываем "скачаный" образ .ISO на диск или делаем из образа загрузочный USB с установкой Windows 7 (очень полезно для нетбуков)
Загружаем наш ПК с полученого диска/USB
Подтверждаем установку, выбираем язык и редакцию, соглашаемся с лицензией и все такое… Не боимся, все с вашей текущей системой будет нормально…
Доходим до шага мастера установки, где нас просят выбрать или создать тот раздел диска, на который будет установлена Windows 7.
А теперь внимание! Следуем инструкции… Трюк!
Нажимаем комбинацию клавиш Shift+F10, мастер запускает командную строку CMD.EXE. В окне CMD.EXE запускаем программу diskpart. Немного ждем и получаем приглашение DISKPART>
Далее идет несколько шагов - создание непосредственно файла .VHD, будущего диска для установки нового экземпляра Windows 7, выбор и монтирование этого файла как "реального", с точки зрения мастера установки, диска.
В приглашении DISKPART> вводим команду create vdisk file="C:\Win7.vhd" type=FIXED maximum=30720
Данная команда создает файл .VHD на диске С: с именем Win7.vhd (диск, папка расположения и имя файла зависят только от вашей системы и фантазии), максимальный размер будущего виртуального диска определен как 30ГБ, при этом тип .VHD определен как "фиксированного размера", т.е. файл изначально будет занимать 30ГБ на "родительской" файловой системе. Это обеспечит лучшую производительность и меньшую вероятность сбоев, покольку если вы укажите тип как "динамически расширяемый" (type=EXPANDABLE), то, во-первых, это потребует дополнительных дисковых операций по мере необходимости увеличения реального размера .VHD, а во-вторых, если "вдруг" на родительском разделе место закончится раньше, чем такой файл достигнет своего максимального размера - то за последствия для ОС, использующей этот файл, никто не отвечает :) С другой стороны - 30ГБ дискового пространства более чем достаточно для установки системы, тем более что файлы пользователя могут храниться на файловой системе "физического" диска, который будет также доступен ОС, установленной на .VHD. И тут динамический тип позволяет съэкономить дисковое пространство. Выбор, как говорится - за вами. Для более полного ознакомления с параметрами create vdisk рекомендую познакомиться, выполнив в строке DISKPART> команду help create vdisk
После успешного выполнения команды create (процесс может занимать длительное время при создании фиксированного файла с большим максимальным значением размера) выполняем следующие команды:
DISKPART> select vdisk file="C:\Win7.vhd" - выбор созданного .VHD для дальнейших операций в рамках утилиты diskpart
DISKPART> attach vdisk - монтирования выбранного .VHD-диска как нового диска в системе
После успешного выполнения всех операций командой exit выходим из утилиты diskpart, и еще раз команда exit - уже в приглашении CMD.EXE для закрытия командной строки.
Мы вернулись в окно мастера установки с выбором диска для установки Windows 7. В нем нажимаем кнопку Refresh, расположенную под списком дисков. Видим наш новый диск, выбираем его, нажимаем Next.
Все, процесс установки Windows 7 на .VHD диск, который мы только что создали, пошел… При это будет не только установлена новая ОС, но и подменен загрузчик на "физическом" системном разделе для успешного старта с .VHD. Кстати, при установке Windows 7/Windows Server 2008 R2 на "голую" машину, мастер установки автоматически создает на диске системный раздел в 200МБ, на котором помещается загрузчик, а уже для самой системы создается отдельный раздел.
И еще один, далеко не праздный, вопрос. Как загрузиться с уже существующего VHD-файла, в котором установлена Windows 7, например, перенесенного с другого ПК. Все очень просто - необходимо подменить файлы загрузчика bootmgr/bcdedit.exe на системном разделе версиями, взятыми из уже установленной Windows 7. Заметьте, такой тип загрузчика и простота его замены поддерживается только для Windows Vista/Windows Server 2008, а с Windows XP придется повозиться (копать в направлении bootsect). Далее, получив на "физической" ОС загрузчик от Windows 7, запускаем "новый" bcdedit, чьи параметры device и osdevice теперь поддерживают значения типа vhd=C:\Win7migrated.vhd. В общем это буде выглядеть примерно так: bcdedit /set {boot_record_GUID} device vhd=C:\Win7migrated.vhd (подробнее читаем документы в Сети). После таких экспериментов перегружаем систему и видем меню загрузчика, дополненое новым пунктом и передающем управление на перенесенный файл .VHD
Так что удачной вам всем установки Windows 7/Windows Server 2008 R2 на VHD-диски и интересного тестирования.
kirpich, тут сложно сказать. Я не думаю, что производительности при работе с виртуальным диском будет сколько-нибудь значительной. Основная цель мануала - дать возможность попробовать бета-версию без вреда для здоровья компьютера, то есть, чтобы ее установка и последующее удаление не повлияли на иную информацию на компьютере.
Одна лишь разница с тех пор: в pre-beta монтировать виртуальный диск нужно было через команду surface vdisk, а в beta команду поменяли на attach vdisk.
Статья хорошая, спасибо автору. Но вот возник вопросик:
Диск, на котором собираемся создавать образ, должен быть тот, где уже стоит Windows, или можно выбрать другой раздел?
Отличная статья! Попробывал этот способ на рабочем ноутбуке с WinXP. Очень доволен - все быстро и просто! Падение производительности дисковых операций на глаз почти не заметил.
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.031 секунд (Общее время SQL: 0.014 секунд - SQL запросов: 79 - Среднее время SQL: 0.00018 секунд))