Меню Рубрики

Универсальный образ windows для vhd

Создание VHD-диска и загрузка с VHD

Бывают такие ситуации, когда необходимо на одном компьютере запускать различные операционные системы, а использование виртуальных машин невозможно или не требуется.

В этой статье я расскажу, как создать виртуальный жесткий диск (VHD), установить на него операционную систему и научить компьютер загружаться с этого VHD.

Быстродействие такой системы будет выше, чем при использовании виртуальных машин. Т.к. при использовании виртуализации на копьютере запускается одновременно две системы. А в случае с VHD — только одна и все ресурсы компьютера отданы именно ей.

В качестве основной системы можно использовать Windows 7 и выше. На виртуальный диск указанным способом можно устанавливать операционную систему от Windows Vista и выше.

Внимание!

Загрузку с VHD дисков в Windows 7 поддерживают только редакции Максимальная (Ultimate) и Корпоративная (Enterprise).

В Windows 10 загрузку с VHD поддерживает редакция Профессиональная (Professional) и выше.

Создание вирутального жесткого диска (VHD)

Создать VHD в Windows 7 можно двумя способами — с помощью утилиты Diskpart (используя CMD), а можно через визуальный интерфейс Менеджера дисков. Второй способ проще и нагляднее, поэтому используем его.

Открываем Менеджер дисков. Это можно сделать по следующему пути: Пуск -> Панель управления -> Администрирование -> Управление компьютером -> Управление дисками.

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

Указываем расположение файла VHD.

Размер файла должен быть досточно большим, чтобы его хватило на разворачивание операционной системы, установки обновлений, необходимых программ и хранения различных файлов. В то же время, размер файла не должен быть больше, чем свободное место на диске, где он располагается.

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

Нажимаем кнопку OK, создается файл VHD.

После этого в консоли «Управление дисками» появляется созданный виртуальный диск. Но он не инициализирован.

Инициализируется он через контекстное меню:

Далее необходимо создать том и отформатировать диск. Тоже через контекстное меню:

В итоге мы создали виртуальный жесткий диск, он находится на диске D: (D:\MyDisk.vhd) и виден в операционной системе. Можно разворачивать на нем другую «операционку».

Развертывание операционной системы Windows на VHD

Для этого потребуется утилита imagex.exe из состава Windows AIK или Windows ADK. Я уже предусмотрительно взял эту утилиту из WADK и приложил к статье. Скачать imagex для x64 и x86 Вы можете внизу страницы.

Также понадобится файл install.wim из дистрибутива Windows. В дистрибутиве он находится в папке Sources. Предположим, что у нас в привод вставлен установочный DVD и путь к install.wim выглядит так — E:\Sources\install.wim.

Разворачивание ОС из файла install.wim на диск выполняется следующим образом.

Так как в одном WIM-файле может находится несколько образов ОС, то предварительно определим индекс нужного нам образа:

Допустим, что нужная Винда находится под индексом 1.

Разворачиваем из индекса 1 операционку на наш VHD:

где Z: — буква, присвоенная нашему VHD.

После окончания разворачивания операционки, можно зайти на VHD-диск и убедится, что структура его каталогов соответсвует системному диску Windows.

Если всё прошло успешно, то переходим к добавлению в загрузчик ОС информации о том, что с нашего VHD тоже можно грузиться.

Изменение информации в загрузчике Windows

Создаем копию текущей операционной системы в загрузчике и даем ей описание «Windows 7 VHD»:

При выполнении этой команды также будет отображен GUID новой записи. Запишите или скопируйте его — он нам пригодится.

Если вы забыли записать GUID, то узнать его вы можете запустив команду bcdedit без параметров.

Далее установите параметры device и osdevice для загрузочной записи VHD. В командной строке введите:

bcdedit /set osdevice vhd=[D:]\MyDisk.vhd

где GUID — идентификатор нашей новой записи в загрузчике.

Не забудьте изменить букву диска и путь к файлу VHD на свои.

Для некоторых систем на основе x86 требуется изменить параметр конфигурации загрузки для ядра, чтобы найти сведения об определенном оборудовании и успешно выполнить встроенную загрузку с VHD:

где GUID — идентификатор нашей новой записи в загрузчике.

Завершение

Теперь можно перегружать компьютер.

При старте компьютера на черном фоне будет в течение 5 секунд выдан запрос о выборе операционной системы. Выбирайте свою вновь созданную систему.

Начнется загрузка и установка ОС. После чего не забудьте установить драйверы на новой ОС и можете пользоваться новой системой, которая располагается на виртуальном диске VHD.

Отключение загрузки с VHD и возврат к первоначальному состоянию

Чтобы вернуть компьютер к первоначальному состоянию, необходимо выполнить следующие шаги (в любой последовательности):

Удалить запись из загрузчика.

Для этого выполняем команду bcdedit без параметров. Она выведет нам все записи. Находим в списке нашу добавленную запись и ее GUID.

Для ее удаления выполняем команду:

Удалить виртуальный диск из консоли «Управление дисками«.

Источник

Создание VHD и установка в него Windows с помощью WinNTSetup и Simple VHD Manager

Albert_researcher

Модератор

Создание VHD и установка в него Windows с помощью WinNTSetup и Simple VHD Manager.

Создаем VHD используя программу WinNTSetup

Скачать утилиту можно здесь https://yadi.sk/d/xLGkpAOzhXCPc
Запускаем программу. Нажимам клавишу VHD>>>, выбираем создание VHD, создается диск и автоматически монтируется (например под буквой Y). Заполняем форму.

Изменение размера VHD. Заходим под другой системой.

Увеличение размера VHD, VHDX через CMD
Периодически надо увеличивать размер виртуальных дисков.
Делается это все в командной строке под администратором:
Запускаем CMD, под админом

Запускаем diskpart
SELECT VDISK file=”пусть к vhd” (VHD должно быть в состоянии detach)
EXPAND VDISK MAXIMUM=”новый размер в мегабайтах“
Exit

Microsoft Windows [Version 10.0.18363.657]
(c) Корпорация Майкрософт (Microsoft Corporation), 2019. Все права защищены.
C:\Windows\system32>diskpart
Microsoft DiskPart, версия 10.0.18362.1
(C) Корпорация Майкрософт (Microsoft Corporation).
На компьютере: DESKTOP-7RHSIJ4
DISKPART> SELECT VDISK file=»D:\Win_vhd_x32.vhd»
Файл виртуального диска успешно выбран с помощью программы DiskPart.
DISKPART> EXPAND VDISK MAXIMUM=»30000″
Завершено (в процентах): 100
Файл виртуального диска расширен с помощью программы DiskPart.
DISKPART> exit
Завершение работы DiskPart.
C:\Windows\system32>

Далее диск аттачим назад и делаем “Extend Volume…” в консоле управления дисками на разделе увеличенного диска.

Сжимание динамический диск vhd с помощью Diskpart

Запускать от имени администратора.

Предварительно рекомендую заполнить всё cвободное пространство на виртуальном диске нулями, это повысит эффективность сжатия в зависимости от того насколько много вы удаляли файлов в виртуальной машине. Сделать это можно с помощью различных программ, например wipefreespace, sdelete (https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete).
Если у вас виртуальный диск очень большого размера перед заполнение нулями лучше уменьшить размер раздела — это никак не повлияет на сжатие и раздел можно будет обратно увеличить после сжатия, но при заполнение нулями это существенно уменьшить нагрузку на жесткий диск и ускорит сжатие.
Программа sDelete используется в Windows гостевой системе для заполнение нулями свободного пространства, например запускаем командную строку и вводим:

Где параметр z — это заполнение нулями, а C — это диск на котором необходимо произвести заполнение нулями.
Далее, для сжатия откройте командную строку с правами администратора и наберите в ней:

diskpart
Выберите диск, который вы хотите сжать, указав диски и путь к vhd файлу:
select vdisk file=»c:\Data\DAT22GB.vhd»
Подключите диск в режиме чтения Read-only:
attach vdisk readonly
И выполните команду сжатия:
compact vdisk

В зависимости от размера виртуального диска, процедура сжатия может занять достаточно продолжительно время.
Если сжатие прошло успешно, появится надпись:
DiskPart successfully compacted the virtual disk file
Отмонтируйте диск VHD:
detach vdisk

У каждого свои способы. Предлагаю поделиться опытом и мнением.

Источник

Установка Windows 7 на USB storage и/или виртуальный диск VHD

В данной статье хочу рассмотреть вопросы по установке на внешний USB-накопитель не обычного набора инструментов реанимации, а полноценной рабочей ОС, которую можно носить с собой. И если Linux ставится из коробки на любое устройство и без проблем работает, то Windows и не ставится, и не работает.
Также раздел этой статьи может быть полезен при загрузке Windows на новом оборудовании (при обновлении материнской платы и т.д.).

Изначально было 2 противоречивых требования души:«всё своё ношу с собой» и «не хочу быть нагруженным», что в итоге вылилось в установку Ubuntu на внешний диск. Всё было замечательно, но чувствовалась какая-то незавершённость. И решил я установить Windows 7 туда же.

Но появились проблемы:

  1. Windows 7 предупреждает о невозможности загрузки с USB (заботливый какой) и не хочет устанавливаться на него;
  2. установщик не умеет работать с VHD;
  3. при загрузке Windows 7 с USB-storage появляется BSOD.

И они были успешно решены.

Нам потребуются

Поехали

В настройках виртуальной машины подключаем к CD-ROM Windows 7 и добавляем HDD: «Use physical disk» -> выбрать диск, соответствующий USB (скорее всего, он последний). Стоит отметить, что другие диски на данном этапе лучше удалить из виртуальной машины. Загружаемся с CD и попадаем в установщик.

Установка

Сейчас самое время указать установщику VHD. Командой Shift+F10 открывается консоль. Допустим, мы хотим установить Windows на C:\win7.vhd:

diskpart
create vdisk file=C:\win7.vhd type=fixed maximum=25000
select vdisk file=C:\win7.vhd
attach vdisk
create partition primary
list volume

Убеждаемся, что имеем 3 volume с Fs: UDF, NTFS, RAW. Ну или больше, если на диске есть другие разделы.

Теперь можно уходить с консоли и перейти к непосредственной установке. При выборе назначения установки, мы должны увидеть Disk 1 Partition 1, при выборе которого Windows 7 заботливо предупредит о возможных проблемах, но продолжить всё-таки разрешит.
Теперь можете откинуться на спинку кресла и отдохнуть. По завершению данного этапа установщик должен записать загрузчик на физический раздел, который запустит Windows с виртуального диска. В итоге мы получим рабочую Windows 7 внутри виртуальной машины. Самое время подготовиться к запуску с USB.

Настройка для запуска с USB

С особенностями загрузки Windows 7 я особо не знаком, но вкратце суть примерно такая: загрузчик читает ядро и самые важные драйвера (к которым USB не относится) и передаёт управление ядру, которое должно прочитать всё остальное, но в нашем случае оно ничего не найдёт. Соответственно, сам напрашивается вариант: надо сказать загрузчику, что USB критически важен и надо бы сначала его загрузить, а потом передавать управление. И, что характерно, в Microsoft дали такие возможности: надо в реестре по адресам [HKLM/System/CurrentControlSet/services/usb*] установить значение ключа Start в 0. Самым неприятным оказывается то, что периодически это поле само сбрасывается в 3, судя по всему при появлении новых устройств. Но и это не проблема. Существует 2 возможных решения (суть которых, естественно, совпадает):

    usbbotfix.bat — мне понравился больше, ибо командный файл, который легко правится. Взят отсюда и мною добавлены улучшения: отключение создания имён 8.3, отключение обновления времени последнего обращения (ну зачем нам лишние операции записи) и запрет удаления страниц с исполняемым кодом, дабы случайно не сбросился в своп код драйвера USB (вполне возможно, что это не обязательно, но лучше перестраховаться). Этот файл также скажет планировщику вызывать его при Event 20003 — т.е. при добавлении новых устройств.
    Содержимое файла такое:
    @echo off
    if «%1″==»fix» goto :fix

rem — install task
copy /y «%

f0″ «%SystemRoot%\system32\usbbootfix.bat»
SCHTASKS /Create /RU SYSTEM /SC ONEVENT /MO «*[System[Provider[@Name=’Microsoft-Windows-UserPnp’] and EventID=20003]]» /EC System /TN USBBootFix /TR «‘%SystemRoot%\system32\usbbootfix.bat’ fix» /F
rem — apply other settings
fsutil behavior set disablelastaccess 1
fsutil behavior set disable8dot3 1
reg add «HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management» /v DisablePagingExecutive /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\pciide /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\msahci /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\intelide /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\viaide /v Start /t REG_DWORD /d 0x0 /f
rem — run :fix once after install

:fix
call :fixservice usbehci «Boot Bus Extender»
call :fixservice usbohci «Boot Bus Extender»
call :fixservice usbuhci «Boot Bus Extender»
call :fixservice usbhub «System Bus Extender»
call :fixservice usbstor «SCSI miniport»
goto :eof

:fixservice
setlocal
set Start=
set Group=
for /f «skip=2 tokens=1,2,*» %%I in (‘reg query HKLM\SYSTEM\CurrentControlSet\services\%

1′) do (
if «%%I»==»Start» set Start=%%K
if «%%I»==»Group» set Group=%%K
)
if not «%Start%»==»0x0» reg add HKLM\SYSTEM\CurrentControlSet\services\%

1 /v Start /t REG_DWORD /d 0x0 /f
if not «%Group%»==»%

2″ reg add HKLM\SYSTEM\CurrentControlSet\services\%

1 /v Group /t REG_SZ /d «%

2″ /f
endlocal
goto :eof

  • UsbBootWatcher.exe — проверенное временем решение, устанавливается как сервис и вызывается при изменении выбранных нами ключей реестра. Можно взять тут.
  • Если загрузка системы не происходит

    В случае, если мы уже пришли на новое место и там оказалось, что ОС запускаться не хочет, придётся чинить тем, что есть: раздел загрузки Repair, в который Windows скорее всего сам и предложит загрузиться после неудачной попытки (если не предложит — перед загрузкой нажимать F8). Затем открываем «Command Prompt» (в случае неудавшегося автоматического восстановления перед этим нажимаем «View advanced options»).

    1. Запускаем редактор реестра командой «regedit». Стоит отметить, что это — реестр системы восстановления.
    2. Подключаем нужный реестр (точнее, улей). Нас интересует «[HKLM/SYSTEM/]», он хранится в файле %WINDIR%\System32\Config\System. Для этого наводим фокус на «HKEY_LOCAL_MACHINE», в меню выбираем File -> Load Hive -> нужный файл -> Key name: «nn» (в случае установки на VHD, необходимо его в подключить в консоли).
    3. В загруженном улье должно быть несколько ControlSet*, нужный записан в «Select/Current». Переходим в «ControlSet*/services». В разделе чуть выше описано, что и зачем делать. Но стоит отметить, что в случае запуска не с USB, могут заинтересовать ключи вроде «atapi», «pciide», «intelide», «msahci» и аналогичные им.
    Загрузка с USB

    Т.к. перезапускаться лишний раз всем лень, проверимся мы снова в виртуальной машине. Выключаем её, в настройках удаляем все HDD, запускаемся, перебрасываем USB-HDD в виртуалку и… Понимаем, что наш диск не видно. Но ведь в списке того, что требуется не была упомянута поддержка BIOS’ом загрузки с USB.
    Качаем plop boot manager — в архиве есть образы iso и img. Указываем виртуальной машине грузиться с диска plpbt.iso (или plpbt.img для floppy) и уже он передаст управление загрузчику с USB. Всё должно пройти успешно и в итоге запустится Windows 7 и скажет, что найдено новое устройство.

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

    Источник

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Универсальный образ acronis windows 7
  • Универсальный мессенджер для windows
  • Универсальный медиаплеер для windows 7
  • Универсальный код активации windows 7
  • Универсальный драйвер vga windows 98