Как уменьшить виртуальную машину VirtualBox и освободить дисковое пространство

По умолчанию VirtualBox создает динамические диски, которые со временем растут по мере добавления данных. Однако если вы позже удалите данные с виртуальной машины, вы заметите, что диск не сжимается автоматически. Но вы можете вручную сжать динамический диск, используя скрытую команду.

Помните, что это приведет к уменьшению размера диска только в том случае, если он увеличился в размере и с тех пор вы удалили данные. Так что, если вы только что создали динамический диск, это не уменьшит его. Но если вы создали динамический диск, загрузили в него 10 ГБ данных, а затем удалили эти 10 ГБ данных, вы сможете сжать диск примерно на 10 ГБ.

Шаг первый: убедитесь, что вы используете динамический диск

Этот процесс работает только для динамических дисков, которые могут увеличиваться и уменьшаться в размере. Динамические диски могут иметь определенный максимальный размер (например, 50 ГБ), но на самом деле они увеличиваются до этого максимального размера только тогда, когда содержат столько данных. Диски фиксированного размера всегда будут иметь максимальный размер.

Если у вас есть диск фиксированного размера, который вы хотите сжать, вы можете сначала преобразовать его в динамический диск, а затем следуйте приведенным ниже инструкциям. Например, если у вас есть фиксированный диск размером 50 ГБ и на нем всего 20 ГБ данных, и вы преобразуете его в динамический диск, вы сможете сжать его, чтобы он занимал всего 20 ГБ.

Чтобы проверить, является ли диск динамического или фиксированного размера в VirtualBox, щелкните правой кнопкой мыши виртуальную машину, которая использует диск, и выберите «Настройки». Нажмите вкладку «Хранилище» и выберите диск. Вы увидите, какой тип диска отображается рядом с «Подробности». Например, на снимке экрана ниже «Динамически выделенное хранилище» указывает, что это динамический диск.

Шаг второй: запись нулей на диск в виртуальной машине

Обязательно удалите все данные, которые вам больше не нужны, на диске внутри виртуальной машины, чтобы освободить место, прежде чем продолжить. Удалите ненужные файлы, удалите ненужные программы и очистите корзину. Затем вам нужно перезаписать это пустое пространство нулями.

Для гостевых операционных систем Windows

Если у вас установлена ​​Windows внутри виртуальной машины, вы должны загрузить виртуальную машину и дефрагментировать ее диски. Внутри виртуальной машины найдите в меню «Пуск» пункт «Дефрагментация» и запустите инструмент «Дефрагментация диска» или «Дефрагментация и оптимизация дисков». Выберите диск, который хотите сжать, и нажмите «Дефрагментировать диск».

После завершения процесса дефрагментации вам нужно будет записать нули в пустое пространство внутри виртуальной машины. Когда вы удаляете файлы, удаленные данные все еще сохраняются на диске, поэтому VirtualBox не может автоматически сжать диск. Но когда вы пишете нули поверх удаленных файлов, VirtualBox увидит большое количество нулей – другими словами, пустое пространство – и сможет сжать диск.

Для этого загрузите утилиту SDelete от Microsoft. Извлеките файл sdelete.exe в папку на своем компьютере.

Откройте окно командной строки. Для этого откройте меню «Пуск», найдите «Командная строка» и запустите ярлык.

Перейдите в каталог, содержащий файл sdelete.exe , введя cd , нажав пробел, введя путь к каталогу и нажав Enter. Обязательно заключайте путь в кавычки, если он содержит пробел. Это должно выглядеть так:

 cd "C: \ path \ to \ folder" 

Например, если вы извлекли файл sdelete.exe в папку загрузки своей учетной записи, а ваше имя пользователя Windows – Боб, вы запустили следующую команду:

 cd "C: \ Users \ bob \ Downloads" 

Чтобы быстро заполнить путь к каталогу, просто введите 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» и нажмите Enter.

Выберите опцию «(режим восстановления)», связанную с самым последним ядром Linux, то есть опцией с наивысшим номером версии в верхней части списка, и нажмите Enter.

Выберите «root» в меню восстановления, чтобы загрузить приглашение для командной оболочки root.

После этого нажмите «Enter», когда на экране появится «Нажмите Enter для технического обслуживания». Вам будет дано приглашение терминала.

В командной строке определите, какой виртуальный диск вы хотите обнулить, выполнив следующую команду:

 DF 

В приведенном ниже выводе мы видим, что /dev/sda1 является нашим единственным актуальным дисковым устройством здесь. Мы знаем это, потому что это единственный диск с /dev/ в крайнем левом столбце.

Предполагая, что ваша виртуальная машина была создана с настройками по умолчанию, она будет иметь только /dev/sda1 , который является первым разделом на первом жестком диске. Если вы по-разному настроили несколько дисков или несколько разделов, вам может потребоваться обнулить другой раздел или обнулить несколько разделов.

Теперь вы готовы обнулить диск. Запустите следующую команду, заменив /dev/sda1 именем устройства раздела, в который вы хотите записать нули. У большинства людей устройство /dev/sda1 просто обнуляется.

 zerofree -v/dev/sda1 

Когда нулевой процесс завершится, выполните следующую команду, чтобы завершить работу виртуальной машины:

 привал 

Когда вы видите на экране сообщение «Система остановлена», система останавливается, и вы можете завершить работу своей виртуальной машины. Закройте окно виртуальной машины и выберите «Выключить виртуальную машину».

Шаг третий: найдите команду 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 VM \ Windows 7 \ Windows 7.vdi , мы запустили следующую команду:

 VBoxManage.exe изменить диск среды "C: \ Users \ chris \ VirtualBox VMs \ Windows 7 \ Windows 7.vdi" --compact 

VirtualBox сожмет диск, и вы сможете сразу же загрузить виртуальную машину, если хотите. Сколько места вы экономите в конечном итоге, зависит от того, сколько пустого места осталось для восстановления.

Также рассмотрите возможность удаления снимков

VirtualBox позволяет создавать снимки для каждой виртуальной машины. Они содержат полный образ виртуальной машины при создании моментального снимка, что позволяет восстановить его в предыдущее состояние. Это может занять много места.

Чтобы освободить больше места, удалите снимки, которые вы не используете. Чтобы просмотреть снимки, которые вы сохранили для виртуальной машины, выберите ее в главном окне VirtualBox и нажмите кнопку «Снимки» справа от сведений на панели инструментов. Если вам больше не нужен снимок, щелкните его правой кнопкой мыши в списке и выберите «Удалить снимок», чтобы освободить место.

Оцените статью
TutoryBird.Ru
Добавить комментарий