Как в названии. Я использую Genymotion для эмуляции устройств Android. Со временем размер VDI увеличивается до такой степени, что на разделе, в который я его поместил, не остается места. После прочтения руководств я узнал, что мне нужно обнулить пространство в качестве гостя, а затем выполнить дефрагментацию в качестве хоста, но как это сделать, если у меня Android в качестве гостя?
решение1
Эту задачу можно выполнить в несколько шагов:
ВНИМАНИЕ: Сделайте резервную копию всех файлов vdi/vdmk, которые вы хотите сжать, на случай, если в ходе процесса что-то пойдет не так.
1.Используйте приложение Android внутри genymotion, например «Secure Eraser», чтобы заполнить нулевым значением свободное пространство для соответствующего vdi/vdmk (используйте опцию 0000-0000 из выпадающего списка)
Ссылка на безопасный ластик
https://play.google.com/store/apps/details?id=com.aiuspaktyn.secureeraser&hl=ru
2.Завершите работу genymotion и клонируйте vdi/vmdk с помощью следующей команды:
VBoxManage clonehd "файл" "новый_файл"
где file и newfile — исходный и целевой vdi/vmdk
3.Поскольку на шаге 2 будет создан новый uuid для клонированного vdi/vdmk, вам нужно будет установить старый uuid для клонированной копии с помощью следующей команды:
VBoxManage внутренние команды sethduuid "FILE" "UUID"
(где file указывает на клонированный vdi/vdmk, а uuid — это uuid, который вы хотите установить.)
решение2
Если вы используете Windows, вы можете поместить этот vdi в сжатую папку (щелкните правой кнопкой мыши по папке, вкладка «Общие», кнопка «Дополнительно», отметьте галочкой «Сжать содержимое для экономии места на диске»)… Я знаю, что это обходной путь, но он может сработать для вас, поскольку я не знаю ни одного метода дефрагментации ОС Android, поскольку считаю, что она предназначена для работы с флэш-памятью. Удачи!