RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

User Tools

Site Tools


Sidebar


Навигация

Линкшэринг

ALARM!

Добавить новую страницу

You are not allowed to add pages
virtualization:vbox_disk_resize

VirtualBox: изменение размера диска

Исходные данные:

  • VirtualBox 5.1.18 (хост система macOS Sierra).
  • Гостевая система Windows 7 Professional, динамический VDI диск.

Рано или поздно пользователи VirtualBox сталкиваются с тем, что диск (динамический) гостевой системы стал занимать много места на хост системе.

Диск в гостевой системе 25 ГБ. Занято в Windows только 13 ГБ, но на хост системе диск занимает почти 19 ГБ.

Вывод команды VBoxManage

$ VBoxManage showmediuminfo /Users/dx/VirtualBox\ VMs/w7_pro/w7_pro_d1.vdi 
UUID:           dad0bd3d-3e10-4b0d-9e25-e79e6126be5d
Parent UUID:    base
State:          locked write
Type:           normal (base)
Location:       /Users/dx/VirtualBox VMs/w7_pro/w7_pro_d1.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       25600 MBytes
Size on disk:   18823 MBytes
Encryption:     disabled
In use by VMs:  w7_pro (UUID: f2f5c52d-4463-4245-91e4-7eb10bca9021)

Для ещё большей наглядности скриншот

Диск в менеджере носителей

Windows

Как увеличить/уменьшить размер диска

Для изменения размера диска нужно запустить vboxmanage с опцией modifymedium. В прошлых релизах VirtualBox опция называлась modifyhd или modifyvdi.

Из документации VirtualBox:

For compatibility with earlier versions of VirtualBox, the "modifyvdi" and "modifyhd" commands are also supported and mapped internally to the "modifymedium" command.

Для хост системы Mac/Linux

$ VBoxManage modifymedium disk [pandorabox].vdi --resize [new_size]

Для хост системы Windows

$ C:\Program Files\Oracle\VirtualBox\VboxManage.exe modifymedium disk [pandorabox].vdi --resize [new_size]

Увеличим диск с 25 ГБ до 30 ГБ. Размер указывается в МБ. 30 ГБ = 30*1024 = 30720.

$ vboxmanage modifymedium disk /Users/dx/VirtualBox VMs/w7_pro/w7_pro_d1.vdi --resize 30720
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Далее остаётся только расширить диск внутри гостевой ОС

Как сжать VDI диск

TL;DR 1. Заполнить диск нулями. 2. Сжать диск.

Шаг 1. Выполняем дефрагментацию диска (зачем?!) в гостевой системе (только для Windows).

Шаг 2. Заполняем диск нулями

Для гостевой системы Windows

Для Windows есть специальная утилита SDelete.

Запускаем

sdelete.exe c: -z
Usage: sdelete [-p passes] [-s] [-q] <file or directory> ...
sdelete [-p passes] [-z|-c] [drive letter] ...
-a	Remove Read-Only attribute.
-c	Clean free space.
-p passes	Specifies number of overwrite passes (default is 1).
-q	Don't print errors (Quiet).
-s or -r	Recurse subdirectories.
-z	Zero free space (good for virtual disk optimization).

Результат

Для гостевой системы Linux

Для Linux вариантов несколько:

dd if=/dev/zero of=zero bs=512k
rm zero

Или через утилиту zerofree

apt-get install zerofree
telinit 1
mount -o remount,ro /dev/sda1
zerofree -v /dev/sda1
shutdown -hP 0

Или через утилиту sfill (входит в состав пакета secure-delete; только для Debian)

sfill -llvz /

Шаг 3. Выключаем гостевую машину.

Шаг 4. Запускаем modifymedium с опцией compact.

Для хост системы с Mac

VBoxManage modifymedium disk [path/to/disk.vdi] --compact

Для хост системы с Linux

vboxmanage modifymedium disk [path/to/disk.vdi] --compact

Для хост системы с Windows

VBoxManage.exe modifymedium disk [c:\path\to\disk.vdi] --compact
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Discussion

Enter your comment. Wiki syntax is allowed:
 
virtualization/vbox_disk_resize.txt · Last modified: 2017/08/09 09:01 (external edit)