По умолчанию VirtualBox создает динамические диски, размер которых увеличивается по мере добавления данных. Однако, если вы удалите данные из виртуальная машина позже вы заметите, что диск не сжимается автоматически. Но вы можете вручную сжать динамический диск с помощью скрытой команды.
СВЯЗАННЫЕ С: Начинающий компьютерщик: как создавать и использовать виртуальные машины
Помните, что это приведет к уменьшению размера диска только в том случае, если он увеличился в размерах и с тех пор вы удалили данные. Итак, если вы только что создали динамический диск, это не сжимает его. Но если вы создали динамический диск, загрузили на него 10 ГБ данных, а затем удалили эти 10 ГБ данных, вы сможете сжать диск примерно на 10 ГБ.
Шаг 1. Убедитесь, что вы используете динамический диск
Этот процесс работает только с динамическими дисками, размер которых может увеличиваться или уменьшаться. Динамические диски могут достигать определенного максимального размера, например 50 ГБ, но на самом деле они увеличиваются до этого максимального размера только тогда, когда содержат такой объем данных. Диски фиксированного размера всегда будут иметь максимальный размер.
СВЯЗАННЫЕ С: Как конвертировать между фиксированными и динамическими дисками в VirtualBox
Если у вас есть диск фиксированного размера, который вы хотите сжать, вы можете сначала преобразовать его в динамический диск а затем следуйте приведенным ниже инструкциям. Например, если у вас есть фиксированный диск размером 50 ГБ, на котором хранится всего 20 ГБ данных, и вы преобразовываете его в динамический диск, вы сможете сжать его, чтобы он занимал всего 20 ГБ.
Чтобы проверить, является ли диск динамическим или фиксированным размером в VirtualBox, щелкните правой кнопкой мыши виртуальную машину, которая использует диск, и выберите «Настройки». Щелкните вкладку «Хранилище» и выберите диск. Вы увидите, какой тип диска отображается рядом с полем «Подробности». Например, на снимке экрана ниже «Динамически выделяемое хранилище» означает, что это динамический диск.
Шаг второй: запись нулей на диск виртуальной машины
Обязательно удалите все данные, которые вам больше не нужны на диске внутри виртуальной машины, чтобы освободить место прежде чем продолжить. Удалите ненужные файлы, удалите программы, которые больше не используете, и очистите корзину. Затем вам нужно будет заменить это пустое место нулями.
Для гостевых операционных систем Windows
Если у вас установлена Windows внутри виртуальной машины, теперь вы должны загрузить виртуальную машину и дефрагментировать ее диски. Внутри виртуальной машины найдите в меню «Пуск» строку «Дефрагментация» и запустите инструмент «Дефрагментация диска» или «Дефрагментация и оптимизация дисков». Выберите диск, который вы хотите сжать, и нажмите «Дефрагментировать диск».
После завершения процесса дефрагментации вам нужно будет записать нули в пустое пространство внутри виртуальной машины. Когда вы удаляете файлы, удаленные данные все еще хранятся на диске поэтому VirtualBox не может автоматически сжимать диск. Но когда вы напишете нули над удаленными файлами, VirtualBox увидит большое количество нулей - другими словами, пустое пространство - и сможет сжать диск.
Для этого загрузите
СДелете
утилита от Microsoft. Извлеките
make.eq
файл в папку на вашем компьютере.
Откройте окно командной строки. Для этого откройте меню «Пуск», найдите «Командная строка» и запустите ярлык.
Перейдите в каталог, содержащий
make.eq
файл, набрав
CD
, нажав пробел, введите путь к каталогу и нажмите Enter. Обязательно заключите путь в кавычки, если он содержит пробел. Должно получиться так:
cd "C: \ путь \ к \ папке"
Например, если вы извлекли
make.eq
в папку загрузок вашей учетной записи и ваше имя пользователя Windows - Боб, вы должны выполнить следующую команду:
cd "C: \ Users \ bob \ Downloads"
Чтобы быстро ввести путь к каталогу, просто введите
CD
в окне командной строки нажмите пробел, а затем перетащите значок папки из адресной строки файлового менеджера.
Выполните следующую команду:
make.ek ts: -z
Это приведет к записи нулей во все свободное место на диске C :. Если вы хотите сжать дополнительный диск, расположенный на виртуальной машине с другой буквой диска, введите его букву диска вместо c :. Для этого и был разработан инструмент. Как отмечается на странице SDelete на веб-сайте Microsoft, параметр -z «подходит для оптимизации виртуального диска».
Перед продолжением вам будет предложено принять лицензионное соглашение на инструмент. Просто нажмите «Согласен».
Подождите, пока процесс завершится. Когда это будет сделано, выключите виртуальную машину с помощью параметра «Завершение работы» в меню «Пуск». Теперь вы готовы его сжать.
Для гостевых операционных систем Linux
Если на виртуальной машине установлен Linux - другими словами, гостевая операционная система Linux, а не гостевая операционная система Windows - вы можете пропустить процесс дефрагментации и использовать встроенные команды для обнуления свободного места на диске. В качестве примера мы будем использовать Ubuntu, но процесс будет аналогичным для других дистрибутивов Linux.
Для этого сначала нужно установить
нулевой
служебная программа внутри виртуальной машины. Он должен быть доступен в репозиториях программного обеспечения вашего дистрибутива Linux. Например, вы можете установить его в Ubuntu, выполнив следующую команду на терминале внутри вашей виртуальной машины:
sudo apt install zerofree
Вы не можете использовать
нулевой
на вашем разделе /, пока вы загружаетесь в стандартную среду Linux. Вместо этого вы захотите загрузиться в специальном режиме восстановления, в котором ваш обычный корневой раздел не смонтирован. В Ubuntu перезапустите виртуальную машину и несколько раз нажмите клавишу «Esc» во время загрузки, чтобы получить доступ к меню Grub. Когда появится меню Grub, выберите «* Дополнительные параметры для Ubuntu» и нажмите Enter.
Выберите параметр «(режим восстановления)», связанный с самым последним ядром Linux, то есть вариант с самым высоким номером версии в верхней части списка, и нажмите Enter.
Выберите «root» в меню восстановления, чтобы загрузиться в командной строке root.
После этого нажмите «Enter», когда на вашем экране появится «Press Enter for maintenance». Вам будет предложено окно терминала.
В командной строке определите, какой виртуальный диск вы хотите обнулить, выполнив следующую команду:
df
В выводе ниже мы видим, что
/ dev / sda1
это наше единственное реальное дисковое устройство здесь. Мы знаем это, потому что это единственный диск с
/ dev /
в крайнем левом столбце.
Предполагая, что ваша виртуальная машина была создана с настройками по умолчанию, у нее будет только
/ dev / sda1
, который является первым разделом на первом жестком диске. Если вы по-другому настроили несколько дисков или несколько разделов, вам может потребоваться обнулить другой раздел или несколько разделов.
Теперь вы готовы обнулить диск. Выполните следующую команду, заменив
/ dev / sda1
с именем устройства раздела, в который вы хотите записать нули. У большинства людей просто будет
/ dev / sda1
устройство до нуля.
зерофрее -в /дев/сда1
Когда процесс обнуления завершится, выполните следующую команду, чтобы выключить виртуальную машину:
стоп
Когда вы видите на экране сообщение «Система остановлена», это значит, что система остановилась, и теперь вы можете выключить свою виртуальную машину. Закройте окно виртуальной машины и выберите «Выключить виртуальную машину».
Шаг третий: найдите команду VBoxManage
Остальная часть процесса будет выполняться вне виртуальной машины в операционной системе вашего хоста. Например, если на вашем ПК работает Windows 10, а на виртуальной машине - Windows 7, остальную часть процесса вы должны выполнить в Windows 10.
Этот параметр не отображается в графическом интерфейсе VirtualBox. Вместо этого вы должны использовать
VBoxManage.exe
команда.
Найдите эту команду, чтобы продолжить. В Windows вы найдете его в программном каталоге VirtualBox, который
C: \ Program Files \ Oracle \ VirtualBox
по умолчанию. Если вы установили VirtualBox в другой каталог, поищите там.
Откройте окно командной строки. Для этого откройте меню Пуск, введите
cmd
и нажмите Enter.
Тип
CD
в командную строку, а затем путь к папке, в которой находится команда VBoxManage. Его нужно заключить в кавычки.
Вы можете быстро сделать это, набрав
CD
в окно командной строки, а затем перетащите значок папки из адресной строки файлового менеджера в командную строку.
Если вы используете путь по умолчанию, он должен выглядеть следующим образом:
cd "C: \ Program Files \ Oracle \ VirtualBox"
ПРИМЕЧАНИЕ. В этих инструкциях предполагается, что вы используете VirtualBox в Windows. Если вы используете VirtualBox в macOS или Linux, вы можете просто открыть окно терминала и запустить
vboxmanage
обычно, как и любую другую команду.
Шаг четвертый: найдите путь к диску, который вы хотите сжать
Выполните следующую команду в окне командной строки, чтобы просмотреть список всех виртуальных жестких дисков на вашем компьютере:
Список жестких дисков VBoxManage.exe
Просмотрите список и определите путь к виртуальному диску, который вы хотите сжать. Допустим, мы хотим изменить виртуальный диск, связанный с виртуальной машиной с именем «Windows 7». Как видно из вывода ниже, путь к этому виртуальному диску в нашей системе
C: \ Users \ chris \ VirtualBox VMs \ Windows 7 \ Windows 7.vdi
.
Шаг пятый: сжатие диска
Чтобы сжать диск, вам понадобится
VBoxManage.exe
с правильной командой. Просто выполните следующую команду, заменив путь к файлу VDI на диске на путь к диску в вашей системе, который вы нашли с помощью указанной выше команды. Не забудьте заключить путь к файлу в кавычки, если он содержит пробел в любом месте своего пути.
Должно получиться так:
VBoxManage.exe модифицирует средний диск "C: \ path \ to \ disk.vdi" --compact
Например, поскольку путь к файлу
C: \ Users \ chris \ VirtualBox VMs \ Windows 7 \ Windows 7.vdi
в нашем примере мы бы выполнили следующую команду:
VBoxManage.exe модифицирует средний диск "C: \ Users \ chris \ VirtualBox VMs \ Windows 7 \ Windows 7.vdi" --compact
VirtualBox сожмет диск, и вы сможете сразу после этого загрузить виртуальную машину, если хотите. Сколько места вы сэкономите, зависит от того, сколько свободного места нужно было восстановить.
Также подумайте об удалении снимков
СВЯЗАННЫЕ С: Как сэкономить время с помощью снимков в VirtualBox
VirtualBox позволяет создавать снимки для каждой виртуальной машины. Они содержат полный образ виртуальной машины при создании моментального снимка, позволяющий восстановить его до предыдущего состояния. Это может занять много места.
Чтобы освободить больше места, удалите ненужные снимки. Чтобы просмотреть снимки, которые вы сохранили для виртуальной машины, выберите ее в главном окне VirtualBox и нажмите кнопку «Снимки» справа от «Подробности» на панели инструментов. Если вам больше не нужен снимок, щелкните его правой кнопкой мыши в списке и выберите «Удалить снимок», чтобы освободить место.