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

    Как уменьшить виртуальную машину 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 установить нулевой

    Вы не можете на самом деле использовать zerofree на вашем / разделе, пока вы загружаетесь в стандартную среду Linux. Вместо этого вы захотите загрузиться в специальном режиме восстановления, где ваш обычный корневой раздел не смонтирован. В Ubuntu перезагрузите виртуальную машину и несколько раз нажмите клавишу «Esc» во время загрузки, чтобы получить доступ к меню Grub. Когда появится меню Grub, выберите «* Дополнительные параметры для Ubuntu» и нажмите Enter.

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

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

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

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

    Д.Ф.

    В выводе ниже мы можем видеть, что / 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 список жестких дисков

    Шаг пятый: сжатие диска

    Чтобы сжать диск, вам нужно использовать 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 и нажмите кнопку «Снимки» справа от сведений на панели инструментов. Если вам больше не нужен снимок, щелкните его правой кнопкой мыши в списке и выберите «Удалить снимок», чтобы освободить место.