Share via


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

Наверняка многие из вас сталкивались с тем, что выделенный ранее размер виртуального диска (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.

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

Comments

  • Anonymous
    January 01, 2003
    Нет. Мы категорически не поддерживаем ручное изменение конфигурационных файлов. Только через WMI/PowerShell, а это все документировано.

  • Anonymous
    January 01, 2003
    А как проделать тоже самое, только с debian в качестве гостевой?

  • Anonymous
    January 01, 2003
    AndreyV спасибо большое! Добавим в копилку знаний! тут и пример есть: ict-freak.nl/2008/10/10/vmware-extend-the-os-disk-the-easy-way-extpartexe/

  • Anonymous
    January 01, 2003
    По разному можно. С LiveCD: wiki.kartbuilding.net/.../Resize_%26_Create_Partitions_in_Debian или даже напрямую: www.radioprosciutto.com/.../7

  • Anonymous
    January 01, 2003
    http://msdn.microsoft.com/en-us/library/cc136992(VS.85).aspx

  • Anonymous
    January 01, 2003
    Старый добрый diskpart, еще на Beta релизе Server 2008 я был приятно удивлен когда diskpart зделал extend системного диска C: Примите к сведению господа, на Windows Server 2008 можно extend-ить и shrink-ить диск в онлине! В независимость от того физичеки это сервер (диск) или виртуальный. В Server 2003 проводить такие работы над диском C: было невозможным, только перегружая сервер... Еще одно маленькое преимущество Server 2008 над Server 2003. Windows Server non stop! Arman Obosyan.

  • Anonymous
    January 01, 2003
    http://www.microsoft.com/windows/enterprise/products/dart.aspx

  • Anonymous
    January 01, 2003
    Данный файл создается, но в него ничего не пишется. Память всегда хранится в RAM. Файл создается на случай необходимости экстренного сохранения системы (Save State), - например, при окончании места на диске. Сделано это, чтобы вы не потеряли данных.

  • Anonymous
    October 27, 2008
    DELL EXTPART увеличивает размер раздела в Windows 2003 Server без перезагрузок.

  • Anonymous
    November 26, 2008
    Добрый день. Вопрос немного не в тему. При старте виртуальной машины на диске появляется файл равный по размеру памяти выделяемой для этой машины. Есть ли возможность не создавать эти файлы? Чтобы далеко не ходить в обьяснениях - тот же vmware server при старте делает тоже самое (пишет содержимое памяти на диск), и чтобы "уговорить" его держать память виртуальной машины в физической памяти, а не записывать на диск есть команда, которую можно написать в конфигурационном файле виртуальной машины и в результате файл не создается, место на диске не расходуется, снижается дисковая активность и прочая прочая... Нет ли какого документа по таким ключам в конфигурации виртуальных машин создаваемых Hyper-v ?

  • Anonymous
    November 27, 2008
    Alex A. - спасибо. А по содержимому конфигурационного файла есть где либо информация? Например какой параметр за что отвечает. Иногда проще поправить конфигурацию напрямую в тексте. Ну и для использования скриптов (изменение параметров машины для какой либо задачи) было бы интересно.

  • Anonymous
    November 27, 2008
    *Только через WMI/PowerShell, а это все документировано. Тыкнете носом пожалуйста в документацию

  • Anonymous
    June 23, 2009
    Ссылки нерабочие в: "Причем если вам необходимо изменить размер загрузочного диска, то потребуектся сначала перезагрузить ВМ в другую ОС — например, с диска WinPE или Microsoft Diagnostic and Recovery Toolkit."

  • Anonymous
    November 08, 2012
    Alex A. вы описали ситуацию когда у вас только один диск С, как быть если присутствует С и D, в консоли Hyper-V Manager я увеличил размер диска, запустил "машину" но команда Extend Volume ни на диске С ни D мне не доступна. Диски С ни D хранятся в одном vhd файле, так как виртуалка сделана с физической машины с помощью Disk to vhd Заранее спасибо      

  • Anonymous
    June 20, 2014
    Спасибо большое!

  • Anonymous
    February 27, 2015
    спасибо. Почему нигде этого не пишут? Еле нашел...