Не хватает места на диске? Освободите его с помощью виртуальной машины Linux VirtualBox
Ключевые выводы
- VirtualBox не сжимает гостевые диски Linux автоматически, но вы можете вручную освободить дисковое пространство, обновив данные и сжав том.
- Перед тем как приступить к процессу уплотнения диска, следует включить динамическое распределение в VirtualBox и создать резервную копию данных.
- Используйте команду «dd», чтобы обнулить пустое пространство в гостевой системе Linux, а затем используйте VBoxManage для сжатия образа виртуального диска.
VirtualBox позволяет вам запускать Linux на виртуальной машине, и вы часто будете замечать, что ваши виртуальные диски постоянно увеличиваются в размере, даже если вы очищаете их от файлов. Я покажу вам, как уменьшить эти тома до прежнего размера, сжимая их и экономя дисковое пространство.
Почему ваш гостевой VirtualBox Linux не уменьшается автоматически
Если вы использовали VirtualBox с гостевыми ОС Windows (в терминологии виртуальных машин «гость» — это операционная система, работающая в виртуальной машине), вы, вероятно, привыкли к тому, что тома дисков VirtualBox уменьшаются по мере удаления с них файлов, так что они занимают на физическом диске ровно столько места, сколько им необходимо для размещения файлов.
Это предполагаемая цель функции динамического распределения VirtualBox, но она не работает с гостевыми Linux. При использовании гостевых Linux-систем многие пользователи обнаруживают, что диски увеличиваются до своего полного размера, а затем никогда не уменьшаются обратно, поскольку файлы с них удаляются.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Это связано с тем, как Linux управляет своими файловыми системами и как он взаимодействует с хостом VirtualBox. Linux не «обнуляет» (не перезаписывает пустыми данными) файлы при их удалении из соображений производительности, поэтому VirtualBox не может определить, какие данные на виртуальном диске являются активными, а какие удалены.
Эту проблему можно решить, обнулив эти данные самостоятельно и заставив VirtualBox сжать том, вернув его к реальному размеру. Вот как это делается.
Как освободить место на диске виртуальной машины Linux в VirtualBox
Первое, что вам нужно сделать, чтобы освободить дисковое пространство из виртуальных дисков ваших гостевых Linux-систем, — убедиться, что включено динамическое распределение. Если это не так, вам нужно будет преобразовать ваш диск в динамически выделяемый диск.
Далее сделайте резервную копию вашего виртуального диска. Если что-то пойдет не так (например, неправильно набранная команда или отключение питания в процессе), вы рискуете потерять все данные в гостевой системе Linux.
Затем на гостевой машине Linux выполните в терминале следующую команду:
sudo dd if=/dev/zero of=/var/deleteme
Эта команда будет записывать обнуленные (пустые) данные в файл /var/deleteme до тех пор, пока диск не будет полностью заполнен. Это перезапишет все ваши ранее удаленные файлы, решая проблему, связанную с тем, что Linux не перезаписывает удаленные данные автоматически.
Будьте осторожны, используя команду dd, так как она перезапишет данные без предупреждения! Внимательно проверяйте команды и пути перед их запуском.
Этот процесс может занять некоторое время в зависимости от размера тома, поэтому будьте терпеливы и не прерывайте его. После завершения процесс завершится (возможно, с ошибкой о том, что не хватает места). После этого вы можете удалить обнуленный файл и выключить гостевую систему Linux:
sudo rm -rf /var/deleteme
sudo выключение сейчас -h
Теперь неиспользуемое пространство на вашем виртуальном диске обнулено, и VirtualBox сможет вернуть пространство на вашем хосте, сжав его. Последний шаг — использовать команду vboxmanage для сжатия образа виртуального диска. Сделайте это, выполнив:
vboxmanage modifymedium disk /path/to/image.vdi -compact
Вы должны изменить /path/to/image.vdi на путь виртуального диска, который вы хотите сжать. Если вы работаете в Windows, вам нужно будет использовать VBoxManage.exe следующим образом:
VBoxManage.exe изменить средний диск /path/to/image.vdi -compact
Если VBoxManage.exe недоступен из командной строки в вашей системе Windows, прочтите инструкции по его включению.
Что сделала команда dd Linux?
Этот метод сжатия гостевой ОС VirtualBox Linux использует команду dd для записи пустого файла на диск, чтобы VirtualBox мог определить пустое пространство.
Команда dd (дубликатор данных) преобразует и копирует файлы, а также может использоваться для записи данных. Переданная ей опция “if” предоставляет входной файл (в этом случае /dev/zero предоставляет постоянный поток данных с нулевым значением или пустых данных). Опция “of” указывает выходной файл, и этот поток нулевых данных записывается в него. Это будет продолжаться до тех пор, пока диск не заполнится, поскольку /dev/zero никогда не перестает предоставлять пустые данные.
Использование VboxManage.exe в Windows
По умолчанию VBoxManage.exe недоступен в командной строке Windows. Вы можете добавить его, обновив системный путь Windows, включив в него каталог установки VirtualBox, или указав полный путь к исполняемому файлу при его использовании:
& “C:/Path/To/VBoxManage.exe” изменить средний диск /path/to/image.vdi -compact
Символ “&”, называемый оператором вызова, который выполняет указанную в кавычках команду. Это позволяет использовать пробелы в пути к исполняемому файлу.
Подробнее об управлении гостями VirtualBox
По мере роста числа гостей вы можете увеличивать размер их виртуальных дисков, а также уменьшать их. Снимки позволяют вам брать состояние вашей виртуальной машины в определенный момент времени и сохранять его; если вы позже захотите вернуться к тому, как все было в тот самый момент (например, после тестирования изменения конфигурации), вы можете просто выполнить откат, и все будет как было.
VirtualBox — это мощный инструмент виртуализации, который используется как профессиональными разработчиками для создания и тестирования программного обеспечения, так и домашними пользователями для запуска старых программ и игр на современных компьютерах или запуска других операционных систем без необходимости покупки второй машины. Вы можете запускать Windows, Linux, ChromeOS, Android и другие операционные системы на хостах MacOS, Windows и Linux.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)