Автоматическое монтирование VHD/VHDX-диска при загрузке Windows

Автоматическое монтирование VHD/VHDX-диска при загрузке Windows

В Windows 7 и Windows Server 2008 R2 появилась возможность создавать и подключать файлы виртуальных дисков (VHD/VHDX) прямо из консоли управления дисками (Disk Management). Такие виртуальные диски выглядят в системе как отдельные физические диски и могут использоваться для хранения произвольных данных. Существенный недостаток таких дисков — при каждой перезагрузке Windows приходится каждый раз вручную монтировать все VHD/VHDX файлы. Кроме того, право на монтирование файлов виртуальных дисков vhd есть только у администраторов компьютера, простые пользователи не могут самостоятельно подключить VHDx файл (каждый раз приходится вмешиваться администратору).

В этой статье мы покажем, как автоматически монтировать vhd/vhdx файл при загрузке системы, так, чтобы виртуальные диски были доступны и простым пользователям (не обладающих правами администратора)

В Windows отсутствует встроенная возможность автомонтирования vhd-файлов при перезагрузке системы, поэтому нам придется разработать собственный механизм монтирования. В этом нам поможет планировщик заданий Windows и утилита diskpart.

Итак, создадим текстовый файл (C:Scriptsattach_vhd.txt) со следующим кодом:

select vdisk file="C:vhd2w10vhd.vhdx"
attach vdisk
select part 1
assign letter=K
exit

Автоматическое монтирование VHDx дисков в Windows

где:
C:vhd2w10vhd.vhdx – полный путь к VHD или VHDX образу диска
K –буква диска, которую нужно назначить VHD образу

Данный сценарий подключает указанный vhd файл, выбирает на нем первый раздел и назначает ему данную букву диска. Если на диске несколько разделов, измените код соответствующим образом, указав номер раздела, который нужно подключать.

Примечание. В целях безопасности желательно изменить NTFS разрешения на файл «C:Scriptsattach_vhdx.txt», так чтобы простые пользователи не могли его изменить.

Запустите Windows Task Scheduler (Taskschd.msc) и создайте новое задание планировщика (Actions -> Create Task). Настройте его следующим образом: Задание планировщика automountvhd

  • Вкладка General:
    • Укажите имя задания (Name):automountvhdx;
    • Отметьте, что он должно запускаться независимо от того, вошел пользователь в систему или нет (Run whether user is logged on or not);
    • Укажите, что задание должно запускаться с максимальными привилегиями ( Run with highest privileges);
  • Вкладка Triggers:
    • Добавьте новый триггер запуска при загрузке (At Startup) с настройками по-умолчанию.запуск задания при загрузке Windows
  • Вкладка Actions:
    • Создадим новое действие New:
      • Действие запуск программы (Start a program);
      • Программа/скрипт: diskpart ;
      • В качестве аргументов программы укажем: /s «C:Scriptsattach_vhd.txt» ;
        Задание diskpart с аргументами
  • На вкладке Conditions снимите галку у опции «Start the task only if the computer is on AC power«.
  • Сохраните изменения. Система попросит вас указать данные учетной записи, из-под которой будет запускаться задание (учетная запись должна обладать правами администратора).

Пользователь из-под которого запускается задание

Чтобы задание выполнялось от имени системы, еще раз откройте его свойства и на вкладке General нажмите кнопку Change User or Group. В окне выбора пользователя укажите system и сохраните изменения.

Запуск задания планировщика с правами системы

Теперь при следующей перезагрузке компьютера указанный виртуальный VHDx диск будет смонтирован автоматически.

Автоматически подключенный диск в консоли управления дисками

Примечание. Как правило, диск появляется в списке доступных дисков не сразу, а через 30-60 секунд после загрузки Windows.

Если вы хотите, чтобы виртуальный vhdx диск монтировался не в отдельную букву диска, а в папку, измените код в файле c:Scriptsattach_vhd.txt на:

select vdisk file="C:vhd2w10vhd.vhdx"
attach vdisk
select part 1
assign mount="c:mount"
exit

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

смонтировть vhdx образ в папку

Можно смонтировать не только локальный VHD диск, но и диск из сетевого каталога через UNC путь.

select vdisk fils="192.168.1.100shareshared.vhdx"

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

diskpart /s c:Scriptsattach_vhdx.txt

Если ваш код не содержит ошибок, то команда подключит vhdx файл и в системе появится новый диск.

проверка работы скрипта diskpart

Данные способы автоматического подключения виртуальных дисков работают как в Windows 10, так и в Windows 8.1 и Win 7.

Если вы больше любите PowerShell, можно автоматически смонтировать VHDX диск с помощью следующего PoSh скрипта в автозагрузке (для управления дисками изспользуются командлеты из модуля Storage):

mount-vhd -path C:vhd2w10vhd.vhdx –PassThru | Get-Disk | Get-Partition | Set-Partition -NewDriveLetter G

mount-vhd powershell скрипт для монтирования vhdx файла

Windows 8
Автоматическое монтирование VHD/VHDX-диска при загрузке Windows