Управління VHD розділами/файлами в Windows 7


Припустимо, ви скористалися моїми порадами по установці Windows 7 на віртуальний розділ, який зберігається в VHD-файл і тепер хочете його змінити... Або вам просто захотілося поманипулировать - змінити розділ або створити копію, зробити дочірній образ – VHD-файлами для віртуальних ОС, які використовуються для запуску додатків в режимі Windows XP Mode. А іноді, чисто з нелюдського цікавості, хочеться просто подивитися, що ж там усередині-то VHD робиться...

Не біда – в Windows 7 або Windows Server 2008 R2 присутні всі необхідні інструменти, щоб втілити всі бажання в вірутальную реальність :) і самий простий з них – стандартний Disk Management. За допомогою цієї графічної консолі, модифікованої в Windows 7, можна створювати віртуальні диски, які відображаються в VHD-файли, і монтувати вже існуючі файли, як диски так само, як і будь-які інші "фізичні" диски, створювати і розширювати розділи на них.

Управление VHD разделами/файлами в Windows 7

Безумовно, такий підхід найбільш зрозумілий і зручний, якщо тільки не виникає декілька специфічних завдань, а саме – ви встановили саму Windows 7 в VHD-файл і тепер потрібно провести якісь роботи з даним файлом, або вам просто захотілося поміняти встановлений максимальний розмір файлу VHD (а не розділів, що знаходяться в ньому), чи необхідно автоматизувати якісь процеси шляхом написання файлу сценаріїв (скриптів). У таких випадках немає можливості взагалі скористатися утилітою, або вона не дозволяє цього зробити. І тоді на допомогу приходить така корисна і багаторазово описана мною раніше (в тому ж пості про установку Windows 7 в VHD-файл або створення завантажувальної USB флешки для інсталяції), утиліта DISKPART.

Почнемо з азів – створення VHD-файл та його монтування як нового диска в Windows 7/Windows Server 2008 R2. Тут все просто:

  • Запускаємо (в Windows 7!!!) з командного рядка або з пункту Run DISKPART і потрапляємо у відповідне запрошення програми:

    Управление VHD разделами/файлами в Windows 7

    виконуємо в DISKPART послідовно команди:
  • CREATE VDISK FILE="шлях\ім'я_файлу.vhd" MAXIMUM=требуемый_размер_в_МБ TYPE=FIXED – безпосередньо створює VHD-файл;
  • SELECT VDISK FILE="шлях\ім'я_файлу.vhd" – вибирає зазначений VHD-файл для подальших операцій в DISKPART;
  • ATTACH VDISK – монтує обраний на попередньому кроці VHD-файл як диск ОС.

Управление VHD разделами/файлами в Windows 7

Результат операції – створюється файл і він доступний ОС для роботи як новий фізичний диск.

Управление VHD разделами/файлами в Windows 7

Управление VHD разделами/файлами в Windows 7

Саме ця особливість роботи з VHD-файлами використовується для установки Windows 7 в VHD, щоб не були порушені інші розділи і встановлені на них операційні системи в наведеному мною раніше сценарії. І запускається DISKPART безпосередньо з диска установки Windows 7/Windows Server 2008 R2 в ході роботи майстра установки Windows – по комбінації клавіш Shift F10 (дивись все той же перший пост про установку).

Управління розділами всередині новоствореного "віртуального диска VHD аналогічно управління розділами на будь-якому іншому диску. Можна це зробити через графічну утиліту Disk Management, а можна використовувати команди того ж DISKPART в наступній послідовності:

  • для монтування VHD-файл, якщо він ще не змонтовано, виконуємо команди SELECT VDISK і ATTACH VDISK, як це описано вище;
  • LIST DISK – отримуємо список доступних дисків, серед яких буде і VHD-файл у вигляді "нового диска";
  • SELECT DISK №требуемого_диска_из_списка – вибираємо диск для подальших операцій;
  • CREATE PARTITION PRIMARY – створюємо розділ (або, по команді CREATE VOLUME SIMPLE), по всім джерелам команди читаємо допомога – HELP CREATE PARTITION;
  • LIST PARTITION – список розділів на диску;
  • SELECT PARTITION №требуемого_раздела – вибираємо розділ для подальших операцій;
  • FORMAT – форматуємо розділ (якщо потрібно), читаємо HELP FORMAT – для "тонкого" форматування з потрібним типом та параметрами файлової систем.

Управление VHD разделами/файлами в Windows 7

І, насамкінець, як розширювати вже існуючі VHD-файли з використанням DISKPART. Хочу зауважити, що цей метод можна з успіхом використовувати як для збільшення розмірів VHD файлів віртуальних машин, так і для збільшення розмірів розділів безпосередньо ОС Windows 7, якщо вона встановлена в VHD. В останньому випадку вимагається завантаження з інсталяційного диска або USB-флеш Windows 7, і в процесі роботи майстра установки просто запускаємо командний рядок за Shift-F10 і з неї DISKPART.

Вважаємо, що VHD-файл у нас вже вибраний і змонтований, як диск (див. вище). Тоді:

  • размонтируем диск командою DETACH VDISK, але вибір не скасовуємо;
  • EXPAND VDISK MAXIMUM=новый_размер_vhd – встановлюємо новий розмір поточного VHD-файл;
  • ATTACH VDISK – знову монтуємо поточний VHD, як диск.

Управление VHD разделами/файлами в Windows 7

Отже, ми отримали файл збільшеного розміру (в нашому прикладі з 10ГБ до 20ГБ), але це тільки файл, всередині диска розділи зберегли свої початкові розміри.

Управление VHD разделами/файлами в Windows 7

Управление VHD разделами/файлами в Windows 7

Тому ми можемо скористатися або тим же Disk Management, якщо дозволяють обставини, або командами DISKPART:

  • переконуємося, що диск змонтований і доступний;
  • стандартна процедура вибору потрібного диска для роботи (описано вище) – LIST DISK, SELECT DISK №#;
  • аналогічно, вибір розділу, який потрібно розширити на диску (описано вище) – LIST PARTITION (VOLUME), SELECT PARTITION (VOLUME) №#;
  • EXTEND – розширює поточний розділ до максимально вільного на поточному диску розміру. див. допомога – HELP EXTEND – де описані різноманітні ключі команди.

Управление VHD разделами/файлами в Windows 7

Як видно з прикладу – досить просто керувати VHD-файлами у вигляді дисків безпосередньо з WIndows 7, так і використовувати завантажувальний диск Windows 7 для зміни параметрів VHD-диска самої Windows 7, якщо була виконана установка на віртуальний розділ в VHD-файл.

Сподіваюся, цей пост допоможе не тільки моїм колегам, які активно використовують фазні варіації на тему VHD в процесі розробки і демонстрацій, але і всім іншим :)