Основное преимущество виртуальных машин в том, что вы можете гибко выделять дополнительные ресурсы ВМ, если они ей нужны. Если на виртуальном диске закончилось свободное место, вы можете легко и быстро расширить его. В этой статье мы рассмотрим, как изменить размер диска виртуальной машины в VMware ESXi и затем расширить раздел в гостевой ОС Windows или Ubuntu без остановки или перезагрузки виртуальной машины.
Есть несколько ограничений, которые нужно учитывать, если вы хотите увеличить размер диска виртуальной машины VMware:
- Если у ВМ есть сохраненные снимки (снапшоты), вы не сможете расширить диск. Все снапшоты придется удалить;
- Если На лету можно расширить только диски, подключенные через виртуальный SCSI или NVMe контроллер (если диск подключен через IDE, виртуальную машину придется сначала выключить);
- Расширение не поддерживается для ВМ типа Linked Clone (Vmware Horizont);
- Если в панели ВМ указано предупреждение
‘Virtual Machine disks consolidation is needed’
, выполните консолидацию дисков виртуальной машины; - Онлайн расширение дисков виртуальных машин (без выключения) поддерживается, если в гостевой ОС установлены VMware Tools, Если VMTools не установлены, после изменения диска появится ошибка:
Task name Reconfigure virtual machine The attempted operation cannot be performed in the current state (Powered on).
Процесс расширения диска виртуальной машины выполняется в два этапа:
- Сначала нужно увеличить максимальный размер VMDK файла в настройках ВМ на vCenter/ESXi;
- Затем нужно расширить раздела диска в гостевой ОС (мы рассмотрим отдельно Windows и Linux).
Увеличить размер виртуального диска (VMDK) в VMware
Допустим, у вас есть виртуальная машина, которой презентован один виртуальный жесткий диск (vmdk) размером 40 Гб. Вы хотите увеличить данный виртуальный диск до 50 Гб.
- Подключитесь к своему серверу vCenter или отдельному серверу ESXi с помощью vSphere Client;
- Найдите виртуальную машину и откройте ее настройки (Actions -> Edit Settings);
- Найдите виртуальный диск, который нужно расширить. В этом примере у ВМ есть только один Hard Disk 1 размером 40 Гб. Укажите новый размер диска в этом поле и сохраните настройки. Обратите внимание, что максимальный размер диска, доступный для данного хранилища (VMFS, NFS, vSAN) указан в поле Maximum size; Убедитесь, что на вашем VMFS хранилище достаточно свободного места. Если нужно, вы можете расширить размер VMFS хранилища в VMWare ESXi.
Также вы можете расширить VMDK диск виртуальной машины с помощью командлетов из модуля VMware PowerCLI Установите модуль PowerCLI на свой компьютер (можно установить модуль PowerShell даже на Linux хост) и подключитесь к vCenter/ESXi:
Connect-VIServer hostname
Чтобы расширить диск ВМ, выполните команду:
Get-HardDisk "VMTest1" | where {$_.Name -eq "hard disk 2"} | Set-HardDisk -CapacityGB 50 -ResizeGuestPartition -Confirm:$false
Вы можете воспользоваться командлетом Invoke-VMScript для запуска команд расширения раздела в гостевой ОС:
Invoke-VMScript -vm VMTest1 -ScriptText "echo select vol c > c:\diskpart.txt && echo extend >> c:\diskpart.txt && diskpart.exe /s c:\diskpart.txt" -GuestUser $guestUser -GuestPassword $guestPass -ScriptType BAT
Не забудьте завершить сессию.
Disconnect-VIserver -Confirm:$false
После того, как вы увеличили виртуальный диска в консоли VMware, нужно расширить раздел в гостевой операционной системе.
Расширить диск в виртуальной машине Windows
Чтобы гостевая Windows увидела дополнительно пространство, нужно запустить консоль управления дисками (Computer Management-> Storage-> Disk Management) и выполнить команду Rescan Disk.
Затем выберите раздел, который нужно увеличить и выберите Extend Volume;
Укажите на сколько Мб нужно расширить выбранный раздел Windows за счет неразмеченного Unallocated пространства (в поле Select the amount of space in MB).
Нажмите Next -> Finish и проверьте, диск C был успешно расширен.
Вы не сможете расширить ваш диск C:, пока не удалите или не переместите раздел Recovery в конец диска. Мы описали процедуру в статье не активен пункт Расширить том в Windows.
Windows XP и Windows Server 2003 не поддерживают онлайн расширение системного тома C:. Для увеличения системного раздела без перезагрузки можно воспользоваться утилитой ExtPart от Dell.
Чтобы расширить системный дисковый раздел в Windows 2003/XP скопируйте утилиту в гостевую ОС и запустите ее с параметрами:
extpart.exe c: 1020
, где c: — имя раздела который необходимо расширить, 1020 – размер (в Мб), на который нужно расширить диск
Скачать утилиту ExtPart можно здесь (40 Кб).
Также вы можете расширить раздел на диске ВМ в офлайн режиме другими способами:
- Можно загрузить виртуальную машину с любого livecd (например, GParted) и расширить раздел;
- Подключить виртуальный vmdk к другой машине и увеличить раздел уже из нее;
- С помощью утилиты VMware vCenter Converter можно сконвертировать ВМ в режиме переконфигурирования;
- С помощью утилит типа Acronis/ Ghost перенести содержимое виртуального диска на новый диск нужного размера, растянув разделы.
Расширить диск виртуальной машины Linux
Теперь рассмотрим, как расширить диск если в виртуальной машине установлена гостевая ОС семейства Linux.
В первую очередь, нужно чтобы Linux увидела новое место на диске. Чтобы выполнить рескан, выполните команду:
$ echo 1>/sys/class/block/sdd/device/rescan
Чтобы показать доступное место на диске, воспользуйтесь утилитой:
$ sudo cfdisk
В данном примере вижно, что на диске /dev/sda есть свободно место размером 2 Гб. Выберите раздел, который нужно расширить (/dev/sda3 в этом примере) и выберите в меню Resize.
Чтобы применить изменена к разделу, выберите Write.
В моем случае мне нужно расширить диск на виртуальной машине с Ubuntu 22.04 LTS. По умолчанию приустановке в этой версии Ubuntu используются тома LVM:
$ sudo lsblk
Для расширения тома на LVM нужно увеличить PV (Physical Volume):
$ sudo pvresize /dev/sda3
После этого можно расширить логической том (используем все доступно свободное пространство):
$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
Теперь нужно расширить файловую систему:
$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
Проверьте свободное место в Linux с помощью команды:
$ df -h
Если у вас не используются LVM тома, можно использовать утилиту parted для расширения разделов в Linux:
$ sudo parted
Выведите сколько неразмеченного пространства свободно на диске:
print free
Видно, что Free Space = 2149MB
Чтобы увеличить раздел /dev/sda3, выполните:
resizepart 3
Укажите новый размер раздела (в данном примере нужно указать размер End из блока Free Space)
End? [21.5GB]?
23.6G
Завершите сеанс parted:
quit
Осталось растянуть файловую систему (для файловых систем ext4, 3 и 2):
$ sudo resize2fs /dev/sda3
Итак, в данной статье мы разобрались в способах расширения виртуального жесткого диска в среде VMWare vSphere с гостевой ОС Windows и Linux. В отдельно статье мы описали, как уменьшить размер виртуального диска в VMware.
не работает… После копирования в гостевую ОС Windows XP SP3. При запуске: extpart.exe c: 6150 говорит: Unable to connect to c: or it does not exist
Диск гостевой ОС системный на LSI SCSI.
Странно… Проверьте букву диска, и попробуйте указать меньший размер на который нужно расширит диск..
Тип диска ни на что не влияет
спасибо большое последний способ с утилитой: dell extpart очень выручил с windows 2003 системный диск расширить на VMware ESXI 5.1 без перезагрузки и остановки сервера.
Это поле с размером диска вообще не активно…
Что делать?
Виртуальную машину нужно остановить. После этого поле Provisioned Size станет доступным для редактирования.
Здравствуйте! столкнулся с тем же что и Валео. Поле с размером диска не активно. Пробовал разные варианты, а именно как вот тут и так же как описывали вы, но увы, оно не активируется! Спасите! Что делать!? Перенос машины на другую VM крайне не желателен, уж больно много там чего на ней!
Попробуйте для начала убедится что для виртуалки используется актуальная версия (для вашей версии ESXi) виртуального железа и VM Tools. Если нет — обновитесь.
Так же уточните версию гостевой системы, и какой диск расширяется (системный или нет). И получается ли увеличить диск при отключении (Shutdown Guest) виртуалки
Снапшоты удалите.
или сделать consolidate для снапшотов
Спасибо, очень полезная инфа! Расширил гостевую winXP 32 утилитой от Dell, скачал с офсайта. Вопрос занял несколько минут. Правда Проводник увидел полный диск только после перезагрузки этой машины)
Огромное спасибо. Единственная статья, которая помогла мне с расширением системного диска виртуальной машины под Windos XP!
consolidate помогло, если вдруг у кого не активно поле для редактирования размера виртуального жесткого диска. Спасибо
Расширил диск ubuntu в vmware с помощью вашей инструкции. Большое спасибо вам!
Спасибо за инфу!