Все это реализовано теперь весьма и весьма просто – файлы .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. Все просто:
- Качаем нужный образ Windows 7 или Windows Server 2008 R2
- Записываем "скачаный” образ .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