
У меня есть Ubuntu 64bit VM, которую я получил из файла ova размером ~1 ГБ, я использовал его под VMware vSphere, чтобы установить на нем еще немного программного обеспечения и использовать систему для нескольких наборов данных, которые занимали около 2-3 ГБ места, но теперь, когда я удалил эти большие файлы, я ожидал, что вновь созданный файл ova из него также займет около ~1,1 ГБ места, но вместо этого он занимает около 3 ГБ. Если я посмотрю на детали файла .vmdk в virtualbox, я увижу следующее:
Hart Disk: SATA Port 0
Type (Format): Normal (VMDK)
Virtual Size: 8.00 GB
Actual Size: 7.90 GB
Details: Dynamically allocated storage
Location: /somewhere/myVM-disk1.vmdk
Attached To: myVM.virtualbox
Размер ova при экспорте этой машины составляет ~3 ГБ.
Есть идеи, как его уменьшить?
решение1
Место в .vmdk выделяется, когда ОС делает первую запись в определенный сектор. После записи оно выделяется навсегда.
Итак, вам нужно добавить второй динамический виртуальный HDD к вашей виртуальной машине, затем загрузить VM с LiveCD, создать разделы с помощью fdisk и скопировать все файлы (cp -R). Затем выключите VM, поменяйте местами виртуальные HDD, загрузитесь снова и проверьте, все ли работает, затем отсоедините оригинальный виртуальный HDD от VM и удалите его как файл на диске хост-системы.
Прямое копирование с помощью dd в виртуальной машине не сработает, поскольку оно запишет каждый сектор в целевой файл .vmdk, поэтому он расширится до полного размера, а не сожмется.
решение2
Смотреть статьюКак сжать динамически расширяемый гостевой образ virtualbox.
Описывается, как сжать диск с помощью:
- Обнулите свободное пространство, используяzerofreeдля Убунту
- Уменьшите размер виртуальной машины, используя
VBoxManage modifyhd my.vdi –compact