![уменьшить размер файла ova в virtualbox](https://rvso.com/image/1337792/%D1%83%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B8%D1%82%D1%8C%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%20ova%20%D0%B2%20virtualbox.png)
У меня есть 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