Помните, что это уменьшит размер диска только в том случае, если он вырос в размере, и с тех пор вы удалили данные. Итак, если вы только что создали динамический диск, это не уменьшит его. Но если вы создали динамический диск, загрузили в него 10 ГБ данных, а затем удалили эти 10 ГБ данных, вы сможете сжать диск примерно на 10 ГБ.
Шаг первый: убедитесь, что вы используете динамический диск
Этот процесс работает только для динамических дисков, которые могут расти и уменьшаться по размеру. Например, динамические диски могут быть до определенного максимального размера - 50 ГБ, но они только на самом деле растут до такого максимального размера, когда они содержат столько данных. Диски с фиксированным размером всегда будут иметь максимальный размер.
Если у вас есть диск с фиксированным размером, который вы хотите сжать, вы можете сначала преобразовать его на динамический диск, а затем следовать приведенным ниже инструкциям. Например, если у вас есть фиксированный диск размером 50 ГБ с объемом всего 20 ГБ данных, и вы конвертируете его на динамический диск, вы сможете сократить его до 20 ГБ пространства.
Чтобы проверить, является ли диск динамическим или фиксированным размером в VirtualBox, щелкните правой кнопкой мыши виртуальную машину, использующую диск, и выберите «Настройки». Перейдите на вкладку «Хранение» и выберите диск. Вы увидите, какой тип диска отображается рядом с «Детали». Например, на скриншоте ниже «Динамически распределенное хранилище» указывает, что это динамический диск.
Шаг второй: записать нули на диск в виртуальной машине
Обязательно удалите все данные, которые вы больше не хотите на диске внутри виртуальной машины, чтобы освободить место перед продолжением. Удалите файлы, которые вам не нужны, удалите программы, которые вы больше не используете, и очистите корзину. Затем вам нужно будет перезаписать это пустое пространство нулями.
Для гостевых операционных систем Windows
Если у вас установлена Windows внутри виртуальной машины, вы должны теперь загрузить виртуальную машину и дефрагментировать ее диски. Внутри виртуальной машины найдите в меню «Пуск» пункт «Дефрагментация» и запустите инструмент «Дефрагментация диска» или «Дефрагментация и оптимизация дисков». Выберите диск, который вы хотите сжать, и нажмите «Дефрагментировать диск».
Для этого загрузите утилиту SDelete из Microsoft. Извлеките
sdelete.exe
файл в папку на вашем компьютере.
sdelete.exe
файл путем ввода
cd
нажав «Пробел», введя путь к каталогу и нажав «Ввод». Обязательно укажите путь в кавычках, если он содержит пробельный символ. Он должен выглядеть так:
cd 'C:path ofolder'
Например, если вы извлекли
sdelete.exe
файл в папку загрузки вашей учетной записи пользователя, а ваше имя пользователя Windows - Bob, вы выполните следующую команду:
cd 'C:UsersobDownloads'
Чтобы быстро заполнить путь к каталогу, просто введите
cd
в окне командной строки нажмите «Пробел», а затем перетащите значок папки из адресной строки файлового менеджера.
sdelete.exe c: -z
Это будет записывать нули во все свободное место на диске C:. Если вы хотите уменьшить дополнительный диск, расположенный на другой букве диска на виртуальной машине, введите его букву диска вместо c:. Для этого был разработан инструмент. Как и на странице SDelete на веб-сайте Microsoft, опция -z «хороша для оптимизации виртуальных дисков».
Перед продолжением вас попросят согласиться с лицензионным соглашением. Просто нажмите «Согласен».
Для гостевых операционных систем Linux
Если у вас установлен Linux на виртуальной машине - гостевая операционная система Linux, а не гостевая операционная система Windows, другими словами, вы можете пропустить процесс дефрагментации и использовать встроенные команды для нулевого свободного пространства на диске. Мы будем использовать Ubuntu в качестве примера здесь, но процесс будет похож на другие дистрибутивы Linux.
Для этого вам сначала нужно установить
zerofree
утилита внутри виртуальной машины. Он должен быть доступен в репозиториях вашего дистрибутива Linux. Например, вы можете установить его на Ubuntu, выполнив следующую команду на терминале внутри вашей виртуальной машины:
sudo apt install zerofree
zerofree
на вашем / разделе, пока вы загружаетесь в стандартную среду Linux.Вместо этого вы захотите перейти в специальный режим восстановления, когда ваш обычный корневой раздел не установлен. На Ubuntu перезагрузите свою виртуальную машину и несколько раз нажмите клавишу «Esc» во время загрузки, чтобы получить доступ к меню Grub. Когда появится меню Grub, выберите «* Дополнительные параметры для Ubuntu» и нажмите «Ввод».
df
На выходе ниже мы видим, что
/dev/sda1
это наше единственное фактическое дисковое устройство здесь. Мы знаем, что, поскольку это единственный диск с
/dev/
в крайнем левом столбце.
Предполагая, что ваша виртуальная машина была создана с настройками по умолчанию, она будет иметь
/dev/sda1
который является первым разделом на первом жестком диске. Если вы по-разному настраиваете разные диски или несколько разделов, вам может понадобиться нуль другого раздела или нуля нескольких разделов.
/dev/sda1
с именем устройства раздела, в который вы хотите записать нули. У большинства людей будет
/dev/sda1
устройство к нулю.
zerofree -v /dev/sda1
halt
Шаг третий: найдите команду VBoxManage
Остальная часть процесса будет выполнена за пределами виртуальной машины в вашей операционной системе хоста. Например, если на компьютере и Windows 7 работает Windows 10 на виртуальной машине, вы должны выполнить оставшуюся часть процесса в Windows 10.
Этот параметр не отображается в графическом интерфейсе VirtualBox. Вместо этого вы должны использовать
VBoxManage.exe
команда.
Найдите эту команду, чтобы продолжить. В Windows вы найдете его в каталоге программ VirtualBox, который
C:Program FilesOracleVirtualBox
по умолчанию. Если вы установили VirtualBox в другой каталог, посмотрите там.
cmd
и нажмите Enter.
cd
в командной строке, а затем путь к папке, где находится команда VBoxManage. Вы должны будете заключить его в кавычки.
Вы можете быстро сделать это, набрав
cd
в окно командной строки, а затем перетащить значок папки из адресной строки диспетчера файлов в командную строку.
cd 'C:Program FilesOracleVirtualBox'
vboxmanage
обычно, как и любая другая команда.
Шаг четвертый: найдите путь к диску, который вы хотите компактно
Выполните следующую команду в окне командной строки, чтобы просмотреть список всех виртуальных жестких дисков на вашем компьютере:
VBoxManage.exe list hdds
C:UserschrisVirtualBox VMsWindows 7Windows 7.vdi
Шаг пятый: компакт-диск
Чтобы сжать диск, вам необходимо использовать
VBoxManage.exe
с правильной командой. Просто запустите следующую команду, заменив путь к файлу VDI диска на путь к диску в вашей системе, который вы нашли, используя указанную выше команду. Обязательно укажите путь к файлу в кавычках, если он содержит пробел в любом месте своего пути.
Он должен выглядеть так:
VBoxManage.exe modifymedium disk 'C:path odisk.vdi' --compact
Например, поскольку путь к файлу
C:UserschrisVirtualBox VMsWindows 7Windows 7.vdi
в нашем примере мы выполнили бы следующую команду:
VBoxManage.exe modifymedium disk 'C:UserschrisVirtualBox VMsWindows 7Windows 7.vdi' --compact
Также подумайте об удалении снимков
VirtualBox позволяет создавать снимки для каждой виртуальной машины. Они содержат полное изображение виртуальной машины при создании моментального снимка, позволяя восстановить его в предыдущем состоянии. Это может занимать много места.
Чтобы освободить больше места, удалите снимки, которые вы не используете. Чтобы просмотреть снимки, сохраненные для виртуальной машины, выберите его в главном окне VirtualBox и нажмите кнопку «Снимки» справа от «Сведения» на панели инструментов. Если вам больше не нужен снимок, щелкните его правой кнопкой мыши в списке и выберите «Удалить снимок», чтобы освободить место.