Сжатие виртуальных дисков VirtualBox (11.02.2017). Печать
2017 - Февраль
11.02.2017 09:49
Save & Share
VirtualBox - бесплатный аналог VMware Workstation. Есть и плюсы, и минусы; но основные фишки - видеозапись экрана виртуальной машины в файл малого размера, интуитивно понятный интерфейс. Однако встала проблема: непонятен алгоритм сжатия виртуальных жестких дисков. В VMware сначала это делалось из консоли, потом они сделали кнопку - возможно, создатели VirtualBox еще не поняли, что им тоже нужно сделать кнопку.

Из консоли получилось сжать диск, однако данный способ был неудобен и неоптимален, поэтому был придуман оптимальный:
- в гостевой ОС запускается утилита SDelete для каждого логического диска: зануляет все свободное пространство виртуального диска. В системах NTFS может наблюдаться глюк: якобы 100% выполнено быстро, но программа "висит". Она не висит, работает: даже на RAM-диске скорость зануления займет длительное время, т.к. скорость зависит не от носителя, а от процессора. Параметры: "-c -z C:";
- в VirtualBox через "Файл->Менеджер виртуальных носителей" нужно скопировать зануленный виртуальный диск. При копировании автоматически произойдет его сжатие. Может потребоваться освободить диск соответствующей кнопкой;
- удалить файл исходного виртуального диска и подключить к машине сжатый виртуальный диск.

(добавлено 15.02.2017) При примерно одних и тех же данных на виртуальном жестком диске: сжатый архиватором виртуальный диск VMware весит чуть или много больше, чем виртуальный диск VirtualBox.

(добавлено 05.02.2019) В Linux дефрагментация и зануление свободного пространства проводятся командами:
- "fsck -n": оценка фрагментации (в конце "0.1% non-contiguous"). Фрагментация ext3 и ext4 ничтожна в сравнении с NTFS и FAT;
- "e4defrag -c /dev/sda1" (сторонний дефрагментатор), где sda1 - раздел с дефрагментируемой файловой системой. Может требовать sudo или su;
- "fsck -f" - полное исправление ошибок файловой системы (необходимо);
- "dd if=/dev/zero of=zerofill" - очистка свободного пространства. При этом нужно так и писать: /dev/zero. Извиняюсь за этот треш: поверил непроверенным данным (надеюсь, никто не пострадал). В итоге, отечественное ПО для зануления написал + под линукс будет скоро.

(добавлено 11.08.2022) Еще один способ занулить место (но только на виртуальном диске): архивировать Acronis, создать новый виртуальный диск, восстановиться на него, заменить старый виртуальный диск новым. Но в этом случае 2 проблемы:
- часть Linux не способны архивироваться без посекторного копирования или без свободного пространства (например, OpenSuse v.12.1 - требует и то, и то);
- иногда важно сохранить уникальный идентификатор виртуального диска.

(добавлено 08.10.2024) Для шифрования виртуальных носителей необходим плагин Oracle VM VirtualBox Extension Pack, подключаемый через менеджер плагинов. Шифрованный диск перестаёт сжиматься архиватором (степень сжатия - 99%).

(добавлено 09.12.2024) Название файла, скачанного плагина для конкретной версии VirtualBox, - изменять нельзя: программа не распознаёт его (типа, ошибка XML, - хотя XML тут ни при чём). Возможно, было дело в пробелах, - выяснять подробно не стал.
Обновлено ( 09.12.2024 17:46 )