Увеличение размера виртуального диска не приводит к автоматическому изменению размера тома

Наверняка многие из вас сталкивались с тем, что выделенный ранее размер виртуального диска (VHD) стал недостаточен для нужд вашей виртуальной машины. Это может касаться как о расширяемых (Dynamically Expanding), так и о дисках фиксированного объема (Fixed Size). Выходов из подобной ситуации немного — увеличить размер имеющегося диска или добавить новый. Первый вариант обычно оказывается предпочтительнее. В отличие от физических жестких дисков, для виртуальных это не составляет никакой проблемы. Достаточно в консоли Hyper-V Manager выбрать операцию Edit Disk, указать нужный файл и увеличить его размер при помощи команды Expand. Понятно, что диск в этот момент не должен использоваться виртуальными машинами. Однако, запустив виртуальную машину после описанной процедуры, вы обнаружите, что объем доступного системе места не изменился. В моем случае, диск C как был 50-гигабайтным, так и остался — хотя я увеличил размер файла диска до 130 ГБ.

Ошибка? Нет, в консоли Hyper-V Manager я явно вижу полный размер диска.

На примере этой ситуации хорошо видна разница между двумя предметами.

  • диск — как часть эмулируемого оборудования виртуальной машины. Он же виртуальный диск или файл VHD;
  • том или раздел — как элемент файловой системы ОС, существующей внутри виртуальной машины. Он же логический диск.

Я увеличил размер виртуального диска, но при этом логический диск остался неизменным — что явно видно в консоли Disk Manager виртуальной машины.

Если в вашей виртуальной машине установлена ОС Windows Vista или Windows Server 2008, расширить логический диск вы можете совершенно элементарно, причем это касается и системного, и загрузочных дисков. Не потребуется даже перезагружаться. Для этого в контекстном меню раздела выбираете команду Extend Volume.

Укажите размер, на который вы хотите увеличить логический диск. Выбирайте число, равное значению поля Maximum available space, чтобы увеличить том до полного размера виртуального диска.

И вот как будет выглядеть результат.

Увы, данный способ сработает лишь в Vista/WS08. Если вы используете более старую ОС, вам потребуется использовать утилиту Diskpart. Причем если вам необходимо изменить размер загрузочного диска, то потребуектся сначала перезагрузить ВМ в другую ОС — например, с диска WinPE или Microsoft Diagnostic and Recovery Toolkit. Вот так можно посмотреть полный размер виртуального диска.

Затем выбираем первый физический (а в нашем случае — виртуальный) диск командой select disk 0.

Затем уже из разделов на этом диске выбираем том, размер которого собираемся менять. В нашем примере — с 127 ГБ до 130 ГБ.

И просто выполняем команду extend.

Вуаля, задача выполнена, логический диск увеличен. Можно перезагружаться в основную ОС и радоваться жизни.