VirtualBox позволяет запускать Linux на виртуальной машине, и вы часто обнаружите, что ваши виртуальные диски постоянно увеличиваются в размерах, даже если вы очищали их от файлов. Я покажу вам, как сжать эти тома до первоначального размера, сжимая их и экономя дисковое пространство.
Если вы использовали VirtualBox с гостями Windows (в терминологии виртуальных машин «гость» — это операционная система, работающая на виртуальной машине) , вы, вероятно, привыкли к тому, что дисковые тома VirtualBox уменьшаются при удалении из них файлов, поэтому они занимают на вашем физическом диске ровно столько места, сколько необходимо для содержания в них файлов.
Это предполагаемая цель функции динамического размещения VirtualBox, но она не работает с гостевыми системами Linux. При использовании гостей Linux многие пользователи обнаруживают, что диски вырастают до своего полного размера, а затем никогда не уменьшаются обратно, поскольку с них удаляются файлы.
Это связано с тем, как Linux управляет своими файловыми системами и как он взаимодействует с хостом VirtualBox. Linux не «обнуляет» (перезаписывает пустыми данными) файлы при их удалении по соображениям производительности, поэтому VirtualBox не имеет возможности определить, какие данные на виртуальном диске являются активными данными, а какие удалены.
Вы можете решить эту проблему, обнулив эти данные самостоятельно и указав VirtualBox сжать том, вернув его к фактическому размеру. Вот как это делается.
Первое, что вам нужно сделать, чтобы освободить дисковое пространство виртуальных дисков ваших гостей Linux, — это убедиться, что динамическое распределение включено. Если это не так, вам придется преобразовать ваш диск в динамически выделяемый диск.
Затем создайте резервную копию виртуального диска. Если что-то пойдет не так (например, неправильно набрана команда или в процессе процесса отключится питание), вы рискуете потерять все данные в гостевой системе Linux.
Затем на гостевой системе Linux выполните в терминале следующую команду:
sudo dd if=/dev/zero of=/var/deleteme
Эта команда будет записывать обнуленные (пустые) данные в файл /var/deleteme до тех пор, пока диск не будет полностью заполнен. При этом будут перезаписаны все ранее удаленные файлы, что решит проблему, связанную с тем, что Linux не перезаписывает удаленные данные автоматически.
Будьте осторожны при использовании команды dd, поскольку она перезапишет данные без предупреждения! Внимательно проверьте свои команды и пути перед их запуском.
Этот процесс может занять некоторое время в зависимости от размера тома, поэтому наберитесь терпения и не прерывайте его. После завершения процесс завершится (возможно, с ошибкой о том, что ему не хватает места). Как только это произойдет, вы можете удалить обнуленный файл и выключить гостевую систему Linux:
sudo rm -rf /var/deletemesudo shutdown now -h
Теперь неиспользуемое пространство на вашем виртуальном диске обнуляется, и VirtualBox сможет освободить место на вашем хосте, сжимая его. Последний шаг — использовать команду vboxmanage для сжатия образа виртуального диска. Сделайте это, выполнив:
vboxmanage modifymedium disk /path/to/image.vdi -compact
Вы должны изменить /path/to/image.vdi на путь виртуального диска, который вы хотите сжать. Если вы используете Windows, вам нужно будет использовать VBoxManage.exe следующим образом: Если VBoxManage.exe недоступен из командной строки в вашей системе Windows, прочтите инструкции о том, как его включить.
Что сделала команда dd Linux?
VBoxManage.exe modifymedium disk /path/to/image.vdi -compactЭтот метод сжатия гостевой системы VirtualBox Linux использует команду dd для записи пустого файла на диск, чтобы VirtualBox мог идентифицировать пустое пространство.
Команда dd (дупликатор данных) преобразует и копирует файлы, а также может использоваться для записи данных. Переданная ему опция «if» предоставляет входной файл (в этом случае /dev/zero предоставляет постоянный поток данных с нулевым значением или нулевых данных). Опция «of» указывает выходной файл, и в него записывается этот поток нулевых данных. Это будет продолжаться до тех пор, пока диск не заполнится, поскольку /dev/zero никогда не перестанет предоставлять нулевые данные.
По умолчанию VBoxManage.exe недоступен в командной строке Windows. Вы можете добавить его, обновив системный путь Windows, включив в него каталог установки VirtualBox, или указав полный путь к исполняемому файлу при его использовании:
& "C:/Path/To/VBoxManage.exe "modifymedium disk /path/to/image.vdi -compact
Символ «&», называемый оператором вызова, который выполняет указанную в кавычках команду. Это позволяет использовать пробелы в пути к исполняемому файлу.
Подробнее об управлении гостями VirtualBox
VBoxManage.exe modifymedium disk /path/to/image.vdi -compactПо мере роста ваших гостей вы можете как увеличивать, так и уменьшать размер их виртуальных дисков. Снимки позволяют вам получить состояние вашей виртуальной машины в определенный момент времени и сохранить его; если позже вы захотите вернуться к тому, как все было в тот момент (например, после тестирования изменения конфигурации), вы можете просто откатиться назад, и все будет как было.
VirtualBox — это мощный инструмент виртуализации, который используется как профессиональными разработчиками для создания и тестирования программного обеспечения, так и домашними пользователями для запуска старых программ и игр на современных компьютерах или запуска других операционных систем без необходимости покупать второй компьютер. . Вы можете запускать Windows, Linux, ChromeOS, Android и другие операционные системы на хостах MacOS, Windows и Linux.
Электронное письмо отправлено
Электронное письмо уже отправлено
Подтвердите свой адрес электронной почты.
Отправьте электронное письмо с подтверждением.Вы достигли максимального количества отслеживаемых тем в вашем аккаунте.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3