Цель настоящей статьи — рассказать о моем опыте работы с весьма полезной и не слишком хорошо известной функцией Windows, которая называется VHD Native Boot, то есть способности загружаться с виртуального жесткого диска формата VHD/VHDx.
Начиная с 7-й версии, в Windows появилась возможность создавать виртуальные диски VHD/VHDx (далее просто VHD), а также подсоединять и отсоединять их через графический интерфейс «Управление дисками» и утилиту командной строки diskpart. Кроме этого, Windows научилась с таких дисков загружаться, и все бы ничего, но этот самый Native Boot был доступен только обладателям старших версий, то есть от Pro и выше. Очевидно, что это было лишь маркетинговое ограничение, потому что с появлением Windows 10, а я проверял Anniversary Update (1607) и Creators Update (1703), никаких ограничений больше нет. Это работает и в Windows 10 Home, причем она может выступать как в роли хоста, так и в роли гостя. О том, как это выглядит и как это можно использовать, вы узнаете ниже.
С давних пор меня интересовала идея использования виртуализации применительно к рабочему компьютеру, внутренней виртуализации, если так можно выразиться. Как полезны и удобны виртуальные машины для разработчиков-программистов, специалистов по безопасности, тестированию. А вот до уровня домашнего/рабочего компьютера и его операционной системы это дело все никак не доходило. Ну, очевидно же, что если операционная система — такой сложный и чувствительный компонент, нельзя огульно доверять ее пользователю, он ее так и норовит чем-нибудь заразить или повредить. Да, есть резервное копирование и восстановление из точек восстановления (то есть из теневой копии), и это отличные вещи. Но это весьма чувствительные к ошибкам компоненты, и могут не спасти, кроме того, многие зловреды умеют удалять теневые копии, не оставляя пользователю шанса. Хотелось бы что-то простое и банальное на уровне copy-paste, чтобы «упавшую» или «испортившуюся» систему вернуть в рабочее состояние в течение нескольких минут. Конечно, идеально было бы, чтобы решение было в самой системе, просто заложено в ней. Hyper-V все же не совсем то, хотя может быть его и допилят до требуемого уровня. Ведь хочется, чтобы все возможности машины, все ее железо, вся мощь были доступны, с минимальными жертвами.
Использование виртуального жесткого диска вместо реального кажется вполне допустимой жертвой с учетом того, что вся система умещается в один файл, и достаточно этот файл время от времени копировать куда-то «в сторонку», и всё будет хорошо. Ведь копировать один файл, пусть и большой, явно проще, чем десятки тысяч. Кроме того, такой файл можно легко использовать для развертывания Windows в организации.
Когда есть несколько (немного) типов компьютеров, достаточно установить систему и все требуемое ПО на VHD, а потом просто скопировать этот файл на все аналогичные компьютеры, сведя работы на местах к минимуму. Неплохо было бы иметь некую оболочку, без загрузки Windows, что-то типа «консоли гипервизора», позволяющую попадать в нее и работать с VHD на уровне файлов, копировать, заменять, обновлять и т.д. Тем более, что сама Windows такую оболочку в своем составе имеет, и называется она Windows Recovery Environment, далее WinRE. Давайте посмотрим, как все это выглядит на практике.
1. Установка Windows на VHD с нуля
Эта тема широко освещена в Сети, существуют десятки толковых руководств (см. ссылки в конце статьи), поэтому я остановлюсь лишь вскользь, попутно рассматривая возможные варианты.
В целом все сводится к нажатию волшебной комбинации Shift-F10 в момент, когда компьютер загрузился с установочного диска. Параллельно открывается окошко командной строки, где следует, используя diskpart, отформатировать и разметить реальный жесткий диск (если компьютер/диск новый) и создать VHD требуемого объема. Для простоты я буду рассматривать установку 64-разрядной версии и жесткие диски с MBR.
Итак, жесткий диск разбит, папка VHDs на соответствующем томе создана, теперь в diskpart надо создать виртуальный жесткий диск в этой папке, дав ему понятное имя, и выполнить присоединение, тогда тому виртуального диска будет присвоена очередная буква. Теперь можно вернуться в окно установки Windows и выбрать именно эту букву для установки. Всё, дальше программа установки все сделает сама. В том числе и добавит нужную запись в файл BCD.
Сразу скажу, что использовать bcdedit мне показалось уж слишком жестоким самоистязанием, поэтому я позволил себе использование одного стороннего инструмента для манипуляций, это утилита Bootice соответствующей разрядности. Предположим, он у вас есть на том же установочном диске. Если нет, в дальнейшем я покажу, как его можно «закинуть» в нашу оболочку «гипервизора».
Итак, для демонстрации пусть у меня есть один жесткий диск 25 Gb (я воспользуюсь любимым Virtualbox для показа), в нем один раздел, там папка VHDs, где я создал виртуальный диск, а на него установил Windows 10.
Вот так будет выглядеть меню загрузки системы в Bootice (раздел BCD, Easy Mode)
Здесь 25 Gb C: это тот «физический» диск, на котором я создал виртуальный размером 20 Gb и куда установил Windows 10. Все прекрасно, но дальше нам нужно создать оболочку для управления. Как известно, WinRE всегда устанавливается вместе с Windows и приходит на помощь тогда, когда обнаруживаются проблемы с загрузкой. Нам же она нужна для другой цели, я хочу попадать туда для работы с VHD-файлами. Добавим пункт WinRE в меню загрузки. Для этого в Bootice воспользуемся Professional Mode, последний объект в списке слева это как раз Windows Recovery, справа видно его расположение на VHD:
Этот объект, вернее, ссылку на него, надо добавить в список меню загрузки, выберем вверху слева ветвь Windows Boot Manager, в правой панели выберем пункт Display Order и добавим пункт про WinRE из выпадающего списка:
Теперь пункт Windows Recovery Environment будет показываться в загрузочном меню системы, в чем мы можем убедиться, вернувшись в Easy Mode:
Осталось перезагрузиться и выбрать второй пункт, начнется загрузка WinRE, а там нас интересует только пункт Поиск и устранение неисправностей, Дополнительные параметры, Командная строка. Все это напоминает и программу установки Windows, и прародителя WinRE, широко известную Windows Preinstallation Environment. Отсюда, собственно, и начинается работа с оболочкой, и не так важно, какую именно вы выберете, поскольку там все приблизительно одно и то же.
Наш основной жесткий диск оказывается в ней диском C:, в его папке VHDs обнаруживается наш master.vhd, и мы можем спокойно его куда-нибудь скопировать. В WinRE волшебной командой мы подключаем сеть:
wpeutil initializenetwork
автоматически выбирается и запускается драйвер сетевого адаптера, получается ip-адрес от сервера DHCP, и мы можем работать с сетью. В Virtualbox я могу подключить сетевую папку такой командой:
net use z: \\10.0.2.2\d$
и оттуда уже скопировать необходимые инструменты для работы в оболочке. Так как выбрана версия x64, то и программы, запускаемые в WinRE, должны быть x64, никакие суррогаты не запустятся.
Помимо Bootice легко добавляются Far Manager, 7-zip, а с ними уже как-то повеселее. Мне удалось найти даже работающий веб-браузер Palemoon Portable, а уж с ним загрузить из Сети необходимые компоненты совсем легко. Прекрасно установился cygwin64, что открывает путь для ssh/rsync в смешанных средах. Дальше понятно, у нас есть возможность спокойно архивировать и копировать файлы vhd. Если что-то не так в master.vhd, мы загружаемся в WinRE и забираем его резервную копию из сетевого хранилища, затем выходим из WinRE и получаем нашу систему обратно.
Прямо из оболочки WinRE при помощи diskpart или Bootice можно создать новый VHD диск, запустить программу установки Windows, если хочется добавить какую-то иную версию и установить эту новую Windows на новый VHD, нужный пункт в меню загрузки ОС добавится сам.
Осталось только подстраховаться на тот случай, если с master.vhd все настолько плохо, что и в оболочку WinRE не загрузишься, ведь она часть этого диска. Конечно, это не смертельно, всегда можно загрузиться с установочного диска Windows и нажать Shift-F10, но приложив определенные усилия, можно сделать так, чтобы WinRE находилась на нашем хост-диске, и грузиться в нее оттуда. Загрузочное меню будет выглядеть так:
2. Установка Windows на VHD на работающем компьютере
Не представляет никакой проблемы добавить на имеющемся компьютере дополнительную операционную систему, создав новый VHD и присоединив его, а затем запустив программу установки и выбрав букву, назначенную для присоединенного диска. Намного более сложной задачей будет перенос текущей конфигурации, уже установленной на физическом диске системы на диск виртуальный. Здесь приходит на ум несколько вариантов. Первый, о котором я вспомнил, это использовать Windows Backup, ведь он как раз создает файл VHD (vhdx) в режиме создания образа системы. Казалось бы, всё, что требуется — это добавить ссылку на такой VHD в меню загрузки и посмотреть, что выйдет. Так я и сделал, при первой загрузке Windows выдала ошибку, а при всех последующих старательно что-то загружалось, очень долго, и даже промелькивало окошко с картинкой экрана блокировки первоначальной системы, но так и исчезало опять. Не знаю почему, но с VHD-диска, полученного из backup’а, Windows загрузить не удается. Пришлось идти иным путем, воспользоваться Disk2vhd из комплекта Sysinternals.
Все довольно просто, выбираешь раздел физического диска, или весь диск, и Disk2vhd делает из него VHD-файл:
Но дальше начинаются неудобства. Получившийся VHD, какого бы он ни был реального размера, сообщает о себе, что он размером с весь наш физический диск. То есть если у меня был физический диск 180 Gb, а я выбрал только первый раздел размером 100 Gb, VHD-файл получился около 50 Gb, но сообщает он о себе как о 180-гигабайтном. Проблема здесь в том, что если с такого VHD загрузиться, то Windows потребует 180 Гб места для его работы. То есть как его ни оптимизируй (defrag, sdelete -z), как ни сжимай (compact vdisk, shrink), от первоначальных характеристик, снятых Disk2vhd никак не избавиться. Пришлось пойти на сложное преобразование, создать пустой VHD, загрузить в Virtualbox PartedMagic, подсунув тому преобразованный и пустой VHD и при помощи Gparted (и Clonezilla, если не хочется возится с bootrec) перенести раздел. В результате получился VHD 20 Gb, с которого я сейчас и пишу данную статью.
3. Использование дифференциальных VHD
В особо ненадежных средах, на публичных компьютерах или при проведении каких-то опасных экспериментов, может пригодиться возможность использования дифференциальных VHD-дисков, на которых записывается только разница, изменившаяся информация, а оригинальный VHD остается без изменений. Ясно, что для начала надо уже иметь работающую систему на VHD-диске, а потом добавить вариант с дифференциальным диском. Создать такой диск можно в diskpart или все в том же Bootice. Пусть master.vhd наш основной диск, создадим для него дифференциальный child.vhd, нажав кнопку Create:
Теперь нужно добавить/исправить в BCD пункт, отвечающий за загрузку с VHD, указав вместо master.vhd дифференциальный child.vhd.
Для этого воспользуемся Professional Mode в Bootice, сделаем копию имеющегося пункта Windows 10 (правая кнопка мыши, Duplicate this entry) и переименуем новый в Windows 10 Child VHD. Теперь в этом пункте исправим ApplicationDevice и OsDevice, изменив имя vhd-файла:
Всё, теперь нужный пункт добавлен в загрузочное меню. Если выбрать Windows 10 Child VHD, Windows запустится и с этого момента будет все изменения записывать в child.vhd. Следует учесть, что под child.vhd в момент загрузки будет зарезервировано столько же места, сколько указано в master.vhd, то есть в нашем случае 20 Gb, пусть его реальный размер в сотни раз меньше. Время от времени имеет смысл выполнять процедуру слияния (merge), то есть отправлять накопленную разницу из child в master, чтобы ничего не потерять. Дело в том, что стоит вам загрузиться не в child, а в master или даже WinRE на основе master.vhd, то связь между master и child будет нарушена, придется чинить child, но Bootice и это умеет:
4. Рекомендуемая конфигурация физического диска при работе с загрузочными VHD
Я бы предложил разметить физический диск следующим образом.
Один раздел, достаточно большой, оставить под хранение файлов VHD, тут все зависит от того, сколько разных VHD вам понадобится. Минимально для установки Windows x64 требуется 20 Гб, можно создавать динамические диски, то есть увеличивающие свой реальный размер только по мере их внутреннего наполнения. Но еще раз подчеркну, в момент загрузки динамического VHD Windows резервирует под него место в соответствии с указанным максимальным размером.
Microsoft советует использовать VHD фиксированного размера в производственной среде, а динамические — только для тестов, но я особой потери производительности у динамических VHD не ощутил.
Второй раздел я бы предпочел создать для данных пользователя и набора портативных приложений, если требуется, например, загружаться с разных VHD, а работать с одними и теми же файлами и программами. Такое деление может быть полезным еще и для того, чтобы раздел с VHD вообще скрыть, во избежание неразумных действий конечного пользователя.
А скрыть раздел можно при помощи вот такого нехитрого сценария для diskpart, с учетом выбранного диска и раздела для хранения VHD.
sel disk 0
sel part 1
set id=17
Теперь раздел скрыт, буква ему не присвоена, однако Windows все равно будет грузиться с VHD, хранящегося в этом разделе. Единственный нюанс — выбор места на физическом диске для файла подкачки. Если он выбирается системой, и это как раз тот раздел, который будет скрыт, каждый раз при старте Windows будет спрашивать, где же создавать файл подкачки.
А чтобы вернуть ларчик назад, достаточно в diskpart выполнить команду
set id=07
или
set id=27
Спасибо за внимание
I’m going to try a workflow that involves running from a system contained in a VHD
file rather than directly installed to a hard disk. This isn’t just to try out new
versions like Windows 10, but as a normal practice. Here are a few of the things
driving me to try this.
The main one is the idea of having a clean system at all times. Maintaining a clean system is
hard, because you install stuff in order to get work done, and then in a few months you have a
mess. My hope is that with a VHD-based system, I can set aside milestone VHDs that I can revert
to when I want a clean system again. That’s the main workflow I’ll be exploring: install clean
OS, install my tools, make snapshot, work for a while, then want to alter the base version, so
revert to it, install new tools, make a snapshot, etc. Hard disks are now fast enough that making
a snapshot is a matter of seconds to minutes, based on how big you keep your operating system
partition.
Another is being able to switch between versions of the operating system. I may prefer a specific
version of Windows as a user, but there are a lot of users out there with different preferences,
and I need to make sure my software works on their Windows version as well. Or I may want to write
software for a bleeding edge version that I don’t want to live in day-by-day yet.
And then finally, if I’m semi-frequently wiping my operating system partition, I’ll have to learn
to keep my user data off the operating system partition. I already work this way — I don’t put my
own stuff into my User folder, but separate folders like “projects”.
This is not a set of instructions at the moment, it’s a record of actions.
Grab Windows 10 Technical Preview
Grab it from here — for now, this is going to be final soon.
Download Windows 10 Insider Preview
Create a VHD
Using Disk Management console
run mmc diskmgmt.msc
from the command-line or launch Computer Management from Administrative tools or directly via Manage Computer. Or use DiskPart.
Action: Create VHD. Dynamically expanding VHDs have a slight performance overhead and aren’t appropriate
in certain scenarios (like, for example, booting from it).
This will create an uninitialized disk, so initialize it, either as MBR or GPT. Either is a fine choice
for modern systems. I do GPT.
MBR versus GPT
Use MBR if you’re going to boot from this on a non-UEFI system,
or if it’s a small disk, otherwise use GPT. In reality, use MBR for “small” disks (say under 500 GB) and
use GPT for larger ones. GPT is slightly more wasteful since it always includes a Protective MBR so that
older operating systems don’t think the drive is uninitialized, and this consumes between 30 to 100 MB,
at least on drives formatted on Windows 7 (bigger if it has an MSR).
- A 2 GB VHD partitioned as GPT and initialized with one volume gives a capacity of 2,111,827,968 bytes.
- A 2 GB VHD partitioned as MBR and initialized with one volume gives a capacity of 2,144,333,824 bytes.
You may or may not consider this substantial. GPT drives should be slightly more resilient than MBR
drives, and as an added bonus, volume labels are 72 bytes (36 UTF-16LE characters) in GPT (MBR
volumes don’t actually have names, but FAT-formatted volumes have a 11-byte limit and NTFS-fofmatted
volumes have a 32-character limit). So in reality, it’s irrelevant, because we almost always use
NTFS, right?
Mount a VHD
run mmc diskmgmt.msc
from the command-line or launch Computer Management from Administrative tools or directly via Manage Computer.
Action: Attach VHD. Select the mosunt point, which is typically going to be a drive letter.
Unmount a VHD
Detach VHD in Disk Management (right-click on a Disk to see this menu item).
Using DiskPart
DiskPart can do many disk-related tasks, and more importantly, can be driven with scripts. For
example, create this script
create vdisk file=C:\VHD\Win10.vhd maximum=51200 type=fixed
select vdisk file=C:\VHD\Win10.vhd
attach vdisk
create partition primary
assign letter=v
format quick label=vhd
detach vdisk
exit
and run it
> diskpart /s makevhd.txt
This will create a 50 GB VHD file, and then create a single primary partition on it.
Diskpart Scripts and Examples
Hyper-V and Windows 8
One reason to upgrade to Windows 8.1 is to get Client Hyper-V
5 excellent uses of Windows 8 Hyper-V
Burn ISO to USB drive
Well, not really burn. Windows doesn’t have native ISO tools, which is really annoying (especially
since ISO is a pretty simple format). Enter Rufus.
Rufus
How To Burn an ISO File to a USB Drive
Reference
- Dual Boot Windows 10 Technical Preview From A VHD
- Windows 10 Technical Preview Using VHD Native Boot
- Guide: How to install Windows 10 using VHDs
- How to Create Windows 8 VHD for Boot to VHD using simple, easy to follow steps
- Windows and GPT FAQ
- Creating and Managing MBR Disk Partitions on Windows Server 2008 Basic Disks
- Using Basic Disks and Partitions
- GUID Partition Table
- Windows and GPT FAQ
- Dual-boot Windows 7 and Windows 8 using a VHD
Здравствуйте! Хочу задать вопрос в продолжение статей о виртуальном диске VHD.
У меня на работе есть стационарный компьютер и на нём установлена Windows 8.1 с программами, диск (C:) я конвертировал в файл VHD и сохранил на переносном жёстком диске USB. Затем пришёл домой и подсоединил винчестер USB к ноутбуку с Windows 10, скопировал файл VHD на диск (D:) ноутбука, винчестер USB отсоединил.
И теперь сам вопрос: — Как мне сделать так, чтобы Windows 8.1 на VHD загружалась с внутреннего диска (D:) ноутбука второй системой, то есть при загрузке ноута выходило меню загрузки с выбором Win 10 или Win 8.1?
Включение файла виртуального диска VHD (содержащего Windows 8.1) в меню загрузки Windows 10 или запуск Windows 8.1 из VHD файла с внутреннего диска
Автор Владимир
К примеру, у вас есть на работе стационарный компьютер с Windows 8.1 и вы хотите перенести с него систему на домашний ноутбук с Windows 10. Вы просто берёте и конвертируете диск (C:) с Windows 8.1 стационарного компьютера в файл виртуального диска VHD и сохраняете этот файл на переносном жёстком диске USB, затем уже дома копируете VHD файл с переносного USB винта на диск (D:) ноутбука. После этого запускаете Управление дисками, подключаете файл VHD с Windows 8.1, затем с помощью командной строки, добавляете в хранилище загрузки установленной у нас Windows 10 операционную систему Windows 8.1 находящуюся на виртуальном VHD диске.
Теперь обо всём подробно.
Для конвертации диска (C:) стационарного компьютера с Win 8.1 воспользуемся утилитой Disk2vhd v2.01, скачать можно здесь
https://technet.microsoft.com/ru-ru/sysinternals/ee656415
Сохраним файл виртуального диска VHD с Win 8.1 на Новый том (G:).
В окне программы Disk2vhd v2.01 снимите галочку в Use Vhdx, это значит, мы создадим виртуальный диск обычного формата VHD, а не VHDX.
В левой части окна отмечаем галочкой диск C:\ с установленной Windows 8.1.
Даём имя будущему файлу Windows 8.1.
Жмём Create (Создать).
Файл виртуального диска VHD с Windows 8.1 создан и находится на диске (G:) переносного USB винчестера.
Подсоединяем переносной жёсткий диск USB к ноутбуку с Windows 10 и копируем файл Windows 8.1.VHD на диск (D:) ноутбука
На раздел (D:) файл Windows 8.1.VHD скопировать не получится, значит скопируем на (F:), затем отсоединим переносной винчестер USB.
Файл скопирован.
Управление дисками
Действие->Присоединить виртуальный диск.
Обзор
В открывшемся окне проводника находим VHD файл на разделе (F:), выделяем его левой мышью и жмём Открыть.
ОК.
Виртуальный диск Windows 8.1.VHD подсоединён и виден в Управлении дисками как Диск 2.
Разделу с файлами Windows 8.1 присваивается буква диска (M:).
Запускаем командную строку от имени администратора и добавляем в хранилище загрузки, установленной у нас Windows 10, операционную систему Windows 8.1 находящуюся на виртуальном VHD диске.
Вводим команды:
bcdboot M:\Windows (добавляем в хранилище загрузки установленной у нас Windows 10, операционную систему Windows 8.1 установленную на виртуальный VHD, диск M
Файлы загрузки успешно созданы.
bcdedit /default {current} (этой командой мы устанавливаем в качестве загружаемой по умолчанию основную Windows 10 установленную на внутренний жёсткий диск, раздел C:)
Операция успешно завершена.
bcdedit /timeout 5 (устанавливаем время ожидания в секундах (5 сек) при выборе Windows для загрузки, по умолчанию через 5 секунд загрузится основная операционная система установленная на внутренний жёсткий диск, то есть Windows 10).
Перезагружаем ноутбук. Появляется меню загрузки и в течении 5-ти секунд даёт нам время на выбор операционной системы для загрузки: Windows 10 или Windows 8.1. Выбираем Windows 8.1 (на томе 6, c\Windows 8.1.VHD)
Идёт подготовка устройств
На ноутбуке с Windows 10 загружается Windows 8.1 на виртуальном диске VHD.
В Управлении дисками Windows 8.1 находится на виртуальном диске, но сама об этом ничего не знает.
Буква диска операционной системы (C:).
Если вам, как и мне, требуется запуск Windows 8 “на железе” (в принципе, работа в виртуально машине меня устраивала почти во всем, кроме того, что там нельзя запустить Hyper-V, а значит и эмулятор Windows Phone 8), то у вас возможны следующие варианты:
- установить Windows 8 вместо текущей ОС. Мне не подошло, т.к. рабочая среда у меня – серверная, плюс имеется куча установленного и настроенного ПО, которое почти гарантированно придется переустанавливать
- установить второй системой в dualboot. Вариант хороший, но, по некоторым соображениям я решил отказаться и от него – все же система не основная, и при необходимости удалить файл виртуального диска все же проще, нежели возиться с разделами
- настроить загрузку с виртуального (VHD) диска
Собственно, как ясно из заголовка , я остановился на последнем варианте.
Здесь, правда, есть пара подвариантов:
- вы ставите систему с 0 из дистрибутива. Для частного применения самый, наверное, удобный вариант. На этом варианте я особо останавливаться не буду, т.к. схема подробно описана в блоге Скотта Хансельмана Guide to Installing and Booting Windows 8 Developer Preview off a VHD (Virtual Hard Disk). (в двух словах: качаете дистрибутив делаете из него загрузочную флэшку, запускаетесь с этой флэшки, на этапе выбора диска, куда ставить систему, переключаетесь в консоль, создаете новый виртуальный диск, подключаете его и развертываете систему на этот диск)
Update: если вам ближе читать на русском, то можете воспользоваться пошговым руководством отсюда
- у вас уже есть готовая установленная система на виртуалке и вам требуется просто перенести загрузку “на железо”
Я остановился именно на втором варианте, в первую очередь потому, что в нашей компании для развертывания системы используется система распространения готовых образов через System Center Configuration Manager (там помимо собственно операционки ставится куча корпоративного ПО, плюс накатывается куча различных настроек, например, система включается в домен, …), но в этих образах не предусмотрен выбор диска для установки (что логично – они нужны для развертывания на стандартизованных виртуальных машинах, а там это не требуется).
Итак, у нас есть:
- компьютер, на котором установлена Windows 7 или Windows Server 2008 R2
- VHD-файл c развернутой Windows 8 (у меня это путь D:\Hyper-V\VHDs\T2.vhd).
Все действия нужно, проводить с правами локального администратора.
Шаг 0. Просмотр (чтобы оценить результат визуально) текущей настройки загрузчика
Это можно сделать командой
Результат будет примерно таким:
Первый раздел (с заголовком Windows Boot Manager), это базовые настройки вашего загрузчика. Здесь интересны строки:
- default – содержит идентификатор системы, которая будет запускаться по умолчанию
- displayorder – какие системы и в каком порядке будут показываться при загрузке, на этапе выбора загружаемой системы (у меня всего одна)
- timeout – время ожидания выбора системы для загрузки (в секундах)
Второй раздел (с заголовком Windows Boot Loader – их может быть несколько) – это описание конкретной загружаемой системы. Здесь обратите внимание на строки:
- identifier – идентификатор системы. Используется, когда надо сослаться на конкретную запись загрузчика (например, она указана в настройке запуска системы по умолчанию)
- description – строка, которая видна в меню выбора системы при загрузке
- device и osdevice – диск (раздел) на котором расположены загрузчик системы и папка системы
Аналогичную, хоть и не такую подробную картину можно увидеть, если запустить утилиту msconfig.exe.
Шаг 1. Сохраните текущую версию ваших настроек загрузчика.
Это можно сделать командой:
bcdedit /export "d:\BCD_Backup"
Шаг 2. Присоединение VHD-файла с Windows 8 в качестве доступного раздела
Для этого запустите утилиту diskpart и наберите в ней команды:
select vdisk file="D:\Hyper-V\VHDs\T2.vhd"
attach vdisk
exit
(Важно!) Теперь проверьте, какая буква присвоена вашему диску, в моем случае это была F:\
Шаг 3. Обновление загрузчика системы на совместимый с Windows 8
Для этого вызовите команду (обратите, указывается путь к каталогу Windows 8, а не установленной на компьютере системы – имя диска вы получили на предыдущем шаге):
Помимо обновления загрузчика, команда также создаст новую запись загрузчика, для запуска Windows 8. Это можно увидеть, выполнив команду
Важные изменения:
- систем стало 2
- системой по умолчанию стала система с идентификатором {default} – Windows 8.
К сожалению, настройки загрузчика Windows 8 не верны – там указывается загрузка с физического диска F: (см. строки device и osdevice), тогда как нам нужно указать путь к виртуальному файлу.
Шаг 4. Смена раздела загрузки для Windows 8
Итак, нам нужно сменить для нашего раздела с идентификатором {default} значение полей device и osdevice. Сейчас они оба содержат значение
нам же нужно указать, что это будет VHD-файл c путем D:\Hyper-V\VHDs\T2.vhd т.е. значение должно стать:
vhd=[D:]\Hyper-V\VHDs\T2.vhd
Внимание! Квадратные скобки вокруг имени раздела – это часть синтаксиса, они должны быть!!!
Для изменений нужно выполнить 2 команды (для раздела с идентификатором {default} заменить значение полей device и osdevice):
bcdedit /set {default} device vhd="[D:]\Hyper-V\VHDs\T2.vhd"
bcdedit /set {default} osdevice vhd="[D:]\Hyper-V\VHDs\T2.vhd"
Результат:
Шаг 5. Отключение VHD-файла и настройка параметров запуска по умолчанию
Осталось несколько завершающих штрихов: нужно отмонтировать виртуальный диск и настроить запуск основной системы (той, которая установлена на компьютере) по умолчанию.
Для отмонтирования диска запустите diskpart и выполните последовательность команд:
select vdisk file="D:\Hyper-V\VHDs\T2.vhd"
detach vdisk
exit
Теперь укажем, что по умолчанию нужно загружать систему с идентификатором {current}, а ждать не более 10 секунд. Все это делается для записи загрузчика {bootmgr}, с помощью уже известных команд:
bcdedit /set {bootmgr} default {current}
bcdedit /set {bootmgr} timeout 10
Результат:
Обратите внимание, что идентификатор записи загрузки Windows 8 теперь показывается не как {default} (что по сути представляет собой специальный алиас), а своим реальным GUID.
Шаг 6. Перезагрузка, выбор ОС, наслаждение результатом
Ну, остальное банальное: перезагружаемся, выбираем нужную ОС из списка (кстати, почему-то у меня первый раз был показан GUI интерфейс выбора ОС, как в блоге у Скотта, а потом снова переключилось на текстовый )
Want to test Windows 11 without leaving Windows 10? So here is how to create a multiboot with Windows 10 and Windows 11 installed on virtual hard disks (VHDX).
To learn more about the operation, advantages and disadvantages of native boot (VHDX), refer to our article: Windows 7 / 8 / 8.1 / 10 / 11 — Native boot to VHD/VHDX.
Since UEFI and Secure Boot are Windows 11 prerequisites, this tutorial will only show you how to configure multiboot in EFI mode and not in LEGACY BIOS mode.
Unlike our other multiboot tutorials based on VHD or VHDX virtual hard disks where we explained the 2 possibilities (EFI and LEGACY BIOS).
- Configuration used
- Create a virtual hard disk (VHDX) to install Windows 10 on it
- Copy Windows 10 installation files to VHDX virtual hard disk
- Partition disk 0 of your computer
- Create boot files and boot entry for Windows 10
- Installing Windows 10
- Windows 10 setup steps
- Configure paging file for virtual memory on Windows 10
- Install drivers for your computer on Windows 10
- Rename Windows 10 boot option
- Create a virtual hard disk for Windows 11
- Install Windows 11 on virtual hard drive
- Add boot entry for Windows 11
- Installing Windows 11
- Windows 11 setup steps
- Configure paging file for virtual memory on Windows 11
- Install drivers for your computer on Windows 11
- Rename Windows 11 boot option
- Manage the boot menu on Windows 11 (to change the default OS)
- Manage the boot menu on Windows 10 (to change the default OS)
1. Configuration used
For this tutorial, we used a computer with:
- a 256 GB SSD on which Windows 10 is currently installed.
- a 500 GB hard drive will temporarily store your 1st virtual hard drive.
But, this will no longer be necessary once the multiboot has been created. You can therefore store your personal data (documents, …) there.
In our case, your computer is configured to boot in UEFI mode with secure boot enabled (supported by Windows 10 and required by Windows 11).
Note: the version of Windows currently installed on your computer is of little importance.
Indeed, disk 0 containing in particular the «C» partition where Windows is currently installed will be completely erased during this tutorial.
However, you must currently be on Windows 8 or later for the commands used in this tutorial to work.
To better see what will be erased in this tutorial, open File Explorer and right click «Manage» on «This PC».
In the «Computer Management» window that appears, go to the «Disk Management» section.
Important : the «Disk 0» displayed here will be completely erased during this tutorial.
Remember to back up the data on this hard disk to another disk or to a USB key (if applicable) before continuing with this tutorial.
Right-click «Properties» on the «Disk 0», then go to the «Volumes» tab.
As you can see, in our case, Windows 10 had been installed in EFI mode since the partition type is «GUID Partition Table (GPT)».
2. Create a virtual hard disk (VHDX) to install Windows 10 on it
To get started, open a command prompt as an administrator.
To do this, open the Windows start menu and type «cmd».
Next, for the «Command Prompt» program that will be selected automatically, click «Run as administrator».
On other versions of Windows, you will need to right-click «Run as administrator» on the «cmd.exe» or «Command Prompt» program that will be offered.
In the command prompt (cmd.exe) that appears, launch the «DiskPart» tool.
Batch
diskpart
Plain Text
Microsoft DiskPart version 10.0.19041.610 Copyright (C) Microsoft Corporation. On computer : InformatiWeb-PC DISKPART>
Create an 80 GB virtual hard disk in VHDX format on a partition of your 2nd hard disk.
In our case, our 2nd hard drive has a single partition named «DATA (D:)».
Note: to avoid data corruption and benefit from better performance, Microsoft recommends using a fixed-size virtual hard disk.
If you want to know more about the different types of VHD/VDHX virtual hard disks, refer to step «5. Types of virtual hard disks» of our article about native booting in Windows.
Batch
create vdisk file=D:\win10.vhdx maximum=81920 type=fixed
Wait while creating the virtual hard disk.
This may take a while depending on your hard drive and computer performance.
Plain Text
11 percent completed
Once the virtual hard disk has been created, this will be displayed:
Plain Text
100 percent completed DiskPart successfully created the virtual disk file.
Attach your virtual hard disk so Windows can use it.
Batch
attach vdisk
Plain Text
100 percent completed DiskPart successfully attached the virtual disk file.
Create a single primary partition on this entire virtual hard disk.
Batch
create partition primary
Plain Text
DiskPart succeeded in creating the specified partition.
Format this partition as NTFS (default) and name the partition «Windows 10 (VHD)».
Batch
format quick label="Windows 10 (VHD)"
Plain Text
100 percent completed DiskPart successfully formatted the volume.
Assign the letter «V» to this new partition of your virtual hard disk.
Batch
assign letter=V
Plain Text
DiskPart successfully assigned the drive letter or mount point.
Quit DiskPart.
Batch
exit
In the file explorer, go to the partition of your 2nd hard drive and you will see that an 80GB «win10.vhdx» file has been created.
If you display the properties of this «win10.vhdx» virtual hard disk, you will see that it already takes up 80 GB on your physical hard disk.
This is because you have created a virtual hard disk with a fixed size. The space required for the maximum size of this virtual hard disk has therefore already been preallocated.
This will save you from a brutal Windows crash if the space begins to run out on the physical hard drive. It also avoids data corruption and it improves the performance of this virtual hard disk.
If you go to «This PC», you will see that a «Windows 10 (VHD) (V:)» partition has appeared.
This is the partition created in your «win10.vhdx» virtual hard disk.
If you enter this partition, you will see that it is currently empty.
Right click «Manage» on «This PC».
In Windows Disk Management, you will see that a new disk has appeared.
But you will notice that this disk has a turquoise blue icon instead of a gray icon.
Which indicates that it is a virtual hard disk.
3. Copy Windows 10 installation files to VHDX virtual hard disk
To install Windows 10 on your VHDX virtual hard disk, you will need its installation DVD.
Once the Windows 10 installation DVD has been inserted into your CD/DVD drive, right-click «Open» on it.
On your Windows 10 installation DVD, you will find a «sources» folder (as it is since Windows 7).
In this «sources» folder, you will find an «install.wim» file (or maybe its compressed version: install.esd).
Regardless of the format of this file, the procedure is the same.
This «install.wim» (or «install.esd») file may contain one or more Windows 10 images (depending on your Windows 10 installation DVD).
Generally, there are as many images as editions of Windows 10 available on your Windows installation DVD.
To know them, use the command below.
Note: this command also works if you have the compressed version «install.esd» instead of the original version «install.wim».
Batch
Dism /Get-WimInfo /WimFile:E:\sources\install.wim
As you can see, our Windows 10 installation DVD has several editions, including the most common: Home and Professional.
Editions with an «N» at the end correspond to editions without multimedia features (Windows Media Player, …).
Plain Text
Deployment Image Servicing and Management tool Version : 10.0.19041.844 Details for image : E:\sources\install.wim Index : 1 Nom : Windows 10 Home Description : Windows 10 Home Size : 14,836,223,545 bytes *** Index : 6 Nom : Windows 10 Pro Description : Windows 10 Pro Size : 15,091,263,759 bytes ***
In our case, we will be installing the «Windows 10 Pro» edition, so we will have to indicate the index «6» in the following command.
To perform the 1st step of installing Windows 10, use the command below indicating:
- /ImageFile:E:\sources\install.wim : path to the «install.wim» or «install.esd» file of your Windows 10 installation DVD.
- /Index:6 : the number (index) of the image retrieved above that corresponds to the edition of Windows 10 that you want to install.
- /ApplyDir:V:\ : the letter (in our case «V») of the partition created previously on your virtual hard disk «win10.vhdx».
Batch
Dism /Apply-Image /ImageFile:E:\sources\install.wim /Index:6 /ApplyDir:V:\
Wait while the Windows 10 image is applied to your VHDX virtual hard disk.
This may take some time depending on the physical drive the «win10.vhdx» file is located on, as well as your computer’s performance.
Plain Text
Deployment Image Servicing and Management tool Version : 10.0.19041.844 Applying image [==== 7.0% ]
Once the image is applied, this will be displayed.
Plain Text
Applying image [==========================100.0%==========================] The operationg completed successfully
If you go to file explorer and click on «This PC», you will see that space is used up on your «Windows 10 (VHD) (V:)» partition.
If you enter this «Windows 10 (VHD) (V:)» partition, you will see that the folders displayed are those of a standard Windows installation.
In our case, Windows 10 currently takes up 8.91 GB.
Launch the DiskPart utility.
Batch
diskpart
Select your virtual hard disk by specifying the path of its VHDX file.
Batch
select vdisk file=D:\win10.vhdx
Plain Text
DiskPart successfully selected the virtual disk file.
Detach the virtual hard disk so that Windows no longer uses it for the time being.
Batch
detach vdisk
Plain Text
DiskPart successfully detached the virtual disk file.
Quit DiskPart.
Batch
exit
In File Explorer, you will notice that the «Windows 10 (VHD) (V:)» partition has disappeared.
Your VHDX virtual hard disk will also be gone from Windows 10 Disk Management.