Windows vista установка на vhd

Too much idle time has led to this quad boot 4.9GB VirtualBox VHD that boots 4 Windows versions (zipped size 1.7GB).

The Windows versions booting in the VHD are:

* Windows 2000 Super Nano Lite by Alexey
* Windows XP Performance Edition 2009
* Tiny Vista Rev 02 by eXPerience
* Windows Tiny 7 by eXPerience

Apart from changing desktop backgrounds most versions are as found except for Windows 2000 where I added a VGA driver as the screen resolution was very low.

I’ve not installed any other missing drivers or Guest Additions so some updating may be needed — I’ll leave that to you.

Both Vista and Windows 7 run fine with 2GB of RAM allocated — Vista uses 255mb at idle and Windows 7 uses 341mb.

The VHD was created in VirtualBox 6.1.26 and all OS versions are 32 bit.

I wanted to get the total VHD size to under 4GB, but both the Vista and Windows 7 installs are a little too large to let that happen.

If anyone has a smaller version of Vista and Windows 7 than eXPerience’s (both 699mb ISOs), please let me know below.

* For tips on multibooting Windows, visit https://multiboot-windows.dscloud.me/

Цель настоящей статьи — рассказать о моем опыте работы с весьма полезной и не слишком хорошо известной функцией 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.

image

Вот так будет выглядеть меню загрузки системы в Bootice (раздел BCD, Easy Mode)

image

Здесь 25 Gb C: это тот «физический» диск, на котором я создал виртуальный размером 20 Gb и куда установил Windows 10. Все прекрасно, но дальше нам нужно создать оболочку для управления. Как известно, WinRE всегда устанавливается вместе с Windows и приходит на помощь тогда, когда обнаруживаются проблемы с загрузкой. Нам же она нужна для другой цели, я хочу попадать туда для работы с VHD-файлами. Добавим пункт WinRE в меню загрузки. Для этого в Bootice воспользуемся Professional Mode, последний объект в списке слева это как раз Windows Recovery, справа видно его расположение на VHD:

image

Этот объект, вернее, ссылку на него, надо добавить в список меню загрузки, выберем вверху слева ветвь Windows Boot Manager, в правой панели выберем пункт Display Order и добавим пункт про WinRE из выпадающего списка:

image

Теперь пункт Windows Recovery Environment будет показываться в загрузочном меню системы, в чем мы можем убедиться, вернувшись в Easy Mode:

image

Осталось перезагрузиться и выбрать второй пункт, начнется загрузка 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 находилась на нашем хост-диске, и грузиться в нее оттуда. Загрузочное меню будет выглядеть так:

image

2. Установка Windows на VHD на работающем компьютере

Не представляет никакой проблемы добавить на имеющемся компьютере дополнительную операционную систему, создав новый VHD и присоединив его, а затем запустив программу установки и выбрав букву, назначенную для присоединенного диска. Намного более сложной задачей будет перенос текущей конфигурации, уже установленной на физическом диске системы на диск виртуальный. Здесь приходит на ум несколько вариантов. Первый, о котором я вспомнил, это использовать Windows Backup, ведь он как раз создает файл VHD (vhdx) в режиме создания образа системы. Казалось бы, всё, что требуется — это добавить ссылку на такой VHD в меню загрузки и посмотреть, что выйдет. Так я и сделал, при первой загрузке Windows выдала ошибку, а при всех последующих старательно что-то загружалось, очень долго, и даже промелькивало окошко с картинкой экрана блокировки первоначальной системы, но так и исчезало опять. Не знаю почему, но с VHD-диска, полученного из backup’а, Windows загрузить не удается. Пришлось идти иным путем, воспользоваться Disk2vhd из комплекта Sysinternals.

Все довольно просто, выбираешь раздел физического диска, или весь диск, и Disk2vhd делает из него VHD-файл:

image

Но дальше начинаются неудобства. Получившийся 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:

image

Теперь нужно добавить/исправить в BCD пункт, отвечающий за загрузку с VHD, указав вместо master.vhd дифференциальный child.vhd.

Для этого воспользуемся Professional Mode в Bootice, сделаем копию имеющегося пункта Windows 10 (правая кнопка мыши, Duplicate this entry) и переименуем новый в Windows 10 Child VHD. Теперь в этом пункте исправим ApplicationDevice и OsDevice, изменив имя vhd-файла:

image

Всё, теперь нужный пункт добавлен в загрузочное меню. Если выбрать 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 и это умеет:

image

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

Спасибо за внимание

Файл виртуального диска VHD можно создать по разному, но по моему самый простой способ, это использование утилиты

Disk2vhd v2.01 от Марк Руссиновича.

и запускаем её.

В главном окне снимаем галочку с «Use Vhdx», если не хотите создать файл нового формата VHDX.

В левой части окна отмечаем галочкой диск C:\ с установленной Windows Vista.

Даём имя будущему файлу виртуального диска «Windows Vista».

Жмём на кнопку проводника в правой части окна.

Сохраним виртуальный файл на переносном винчестере USB буква диска (E:).

Начинается процесс создания виртуального диска VHD.

Файл виртуального диска с Windows Vista создан.

Подключаем переносной жёсткий диск USB с файлом VHD к ноутбуку с Windows 10. Устанавливаем виртуальную машину VirtualBox 5.0.4 на ноутбук и настраиваем её

Скачиваем последнюю версию виртуальной машины VirtualBox 5.0 и устанавливаем её на ноутбук с Windows 10

в процессе установки виртуальной машины нет никаких подводных камней, жмите всё время Далее.

Создаём виртуальную машину.

В главном окне VirtualBox жмём «Создать». 

Даём имя виртуальной машине «Windows Vista»

выбираем

Тип: «Microsoft Windows».

Версия: «Windows Vista» (64-bit)».

и жмём «Next»

Можете выделить виртуальной машине побольше памяти, например 1024 Мб.

«Next»

Отмечаем пункт «Использовать существующий виртуальный жёсткий диск» и жмём на кнопку проводника справа.

В открывшемся проводнике находим на переносном жёстком диске USB файл виртуального диска VHD с Windows Vista, выделяем его левой мышью и жмём «Открыть».

«Создать» 

Виртуальная машина «Windows Vista» создана, перед запуском машины расскажу про один важный момент.

В переносе VHD, созданного путём конвертирования физического диска есть один значительный момент.

На старых компьютерах использовался режим жёсткого диска IDE

VirtualBox при создании виртуальной машины Vista устанавливает режим SATA

Если у Вас на старом компьютере с Windows Vista был режим IDE, то при создании виртуальной машины нужно Sata поменять на IDE.

Запускаем виртуальную машину. 

И Windows Vista запускается.

Для более стабильной работы виртуальной машины установите «Дополнения гостевой ОС», после этого вы сможите создавать общие папки, подгонять размер экрана гостевой ОС и т.д.

Также после установки «Дополнений гостевой ОС» перейдите в режим полного экрана, работать так будет более комфортно.

Что делать, если Windows Vista на виртуальной машине загрузится с ошибкой

Друзья, такое вполне возможно и в этом случае одно из возможных решений — восстановить загрузчик операционной системы и нам понадобиться ISO-образ Windows Vista, если такого образа у вас нет, то вполне сойдёт ISO-образ Windows 7, но команды для восстановления будут разные. Давайте сначала восстановим загрузчик Windows Vista с помощью ISO-образа операционной системы, а в конце статьи для этих целей применим ISO-образ Win 7, так как я уверен, что многие пользователи с трудом смогут найти ISO-образ Висты.

В главном окне VirtualBox выбираем нашу виртуальную машину «Windows Vista» и жмём «Настроить»

Вкладка «Система»

Изменяем порядок загрузки:

1. Оптический диск.

2. Жёсткий диск.

«ОК».

Вкладка «Носители»

Первый носитель, виртуальный диск VHD, выступающий в роли жёсткого диска.

Второй носитель нужно выбрать, им будет ISO-образ Windows Vista.

Выделяем левой мышью пустое поле и жмём на значок дисковода. 

«Выбрать образ оптического диска»

В открывшемся проводнике находим ISO-образ Windows Vista, выделяем его левой мышью и жмём «Открыть».

Виртуальная машина настроена.

«ОК». 

Восстановление загрузчика Windows Vista

Запускаем VirtualBox

Появляется предложение загрузиться с ISO-образа Windows Vista — «Press any key to boot from CD or DVD», соглашаемся и нажимаем любую клавишу на клавиатуре.

«Далее» 

«Восстановление системы»

«Далее»

«Командная строка»

В открывшейся командной строке вводим команды:

diskpart

lis vol (видим, что буква дисковода с ISO-образом Windows Vista является (D:).

exit

D:\boot\bootsect /nt60 All (этой командой мы восстанавливаем загрузчик Windows Vista).

exit

Закрываем командную строку и перезагружаемся.

После наших действий Windows Vista должна загрузиться.

Если у вас нет ISO-образа Windows Vista, то для восстановления загрузки вполне сойдёт ISO-образ Windows 7.

Укажите в настройках виртуальной машины, а именно на вкладке «Носители» ISO-образ Windows 7.

Запустите виртуальную машину.

В начальном окне установки Windows 7 жмём клавиатурное сочетание Shift + F10, появляется окно командной строки. 

Вводим команды:

diskpart

lis vol (видим, что Windows Vista находится на Томе 1, буква диска C:)

sel vol 1 (выбираем  Томе 1)

activ (делаем его активным)

exit (выходим из diskpart)

bootrec /fixmbr (утилита bootrec записывает совместимую с Windows 7 и Windows Vista главную загрузочную запись (Master Boot Record, MBR) в системный раздел.

bootrec /fixboot (утилита bootrec записывает в системный раздел новый загрузочный сектор, совместимый с Windows 7 и Windows Vista).

bcdboot C:\Windows (файлы загрузки Windows Vista создаются на диске C:)

Выходим из командной строки и перезагружаемся.

Загружается Windows Vista !

2 hours ago, Sergiaws said:

I read that you can install Windows 7/8/10 on a .vhd virtual hard disk and boot it with your pc. Could that be done with Windows Vista? 

Yes and no.

Windows 7 (some versions, and later OS’s) have «native» VHD drivers.

Vista has them not, but you can use a fixed VHD (which is nothing but a RAW image with a single «Conectix» sector appended) mapping it in grub4dos, and using *any* of the available drivers (Firadisk, WinvBlock or — lately — SVbus).

See:

http://reboot.pro/topic/21787-svbus-virtual-scsi-host-adapter-for-grub4dos/

http://reboot.pro/topic/9715-firadisk-and-vhd-img-images/

http://reboot.pro/topic/15407-booting-from-vhd-in-grub4dos/

Vista being very little used, I don’t think there is a specific set of instructions for it, surely not for the new kid on the block (actually recommended) which is SVbus, but since it needs not any value passed from grub4dos, it should be easier than Firadisk or WinvBlock.

jaclaz

Понравилась ваша девушка, а если она еще и умница…

Меня интересует, как модифицировать загрузчик Windows Vista, чтобы, при инсталляции системы, была возможность подключения файла vhd, как физического диска?                                         

С Уважением dr. Abst 

Категория: Система
Автор вопроса: Гость
Просмотров: 1748

Ответы специалистов и комментарии пользователей

vitalist
/ Виталий Владимирович
24.10.2017, 08:51

Я не понял: тебе надо, чтобы при загрузке системы был выбор — или загружать Windows Vista или систему на VHD? Или возможность при установке системы (у тебя присутствует слово инсталляция, что означает установка) установить её на виртуальный диск? Поясни, что ты имел ввиду.

Голосов:
0

Для ответа в данной теме, войдите на сайт под своим логином или зарегистрируйтесь.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как прочитать диск synology в windows
  • Как обновить powershell на windows 10 из консоли
  • Windows 365 cloud pc
  • Control flow guard windows 10 как отключить
  • Не могу ничего установить на windows 10