«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > Учебник по программному обеспечению > Недостаточно места на диске? Восстановите его из виртуальной машины Linux VirtualBox

Недостаточно места на диске? Восстановите его из виртуальной машины Linux VirtualBox

Опубликовано 29 августа 2024 г.
Просматривать:523

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

Почему ваша гостевая система VirtualBox Linux не уменьшается автоматически

Если вы использовали VirtualBox с гостями Windows (в терминологии виртуальных машин «гость» — это операционная система, работающая на виртуальной машине) , вы, вероятно, привыкли к тому, что дисковые тома VirtualBox уменьшаются при удалении из них файлов, поэтому они занимают на вашем физическом диске ровно столько места, сколько необходимо для содержания в них файлов.

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

Это связано с тем, как Linux управляет своими файловыми системами и как он взаимодействует с хостом VirtualBox. Linux не «обнуляет» (перезаписывает пустыми данными) файлы при их удалении по соображениям производительности, поэтому VirtualBox не имеет возможности определить, какие данные на виртуальном диске являются активными данными, а какие удалены.

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

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

Первое, что вам нужно сделать, чтобы освободить дисковое пространство виртуальных дисков ваших гостей Linux, — это убедиться, что динамическое распределение включено. Если это не так, вам придется преобразовать ваш диск в динамически выделяемый диск.

Running Out of Disk Space? Reclaim It From Your Linux VirtualBox VM

Затем создайте резервную копию виртуального диска. Если что-то пойдет не так (например, неправильно набрана команда или в процессе процесса отключится питание), вы рискуете потерять все данные в гостевой системе Linux.

Затем на гостевой системе Linux выполните в терминале следующую команду:

sudo dd if=/dev/zero of=/var/deleteme

Эта команда будет записывать обнуленные (пустые) данные в файл /var/deleteme до тех пор, пока диск не будет полностью заполнен. При этом будут перезаписаны все ранее удаленные файлы, что решит проблему, связанную с тем, что Linux не перезаписывает удаленные данные автоматически.

Будьте осторожны при использовании команды dd, поскольку она перезапишет данные без предупреждения! Внимательно проверьте свои команды и пути перед их запуском.

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

sudo rm -rf /var/deleteme 

sudo 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

По умолчанию 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.

Ваши изменения сохранены

Электронное письмо отправлено

Электронное письмо уже отправлено

Подтвердите свой адрес электронной почты.

Отправьте электронное письмо с подтверждением.

Вы достигли максимального количества отслеживаемых тем в вашем аккаунте.

Заявление о выпуске Эта статья воспроизведена по адресу: https://www.howtogeek.com/how-to-reclaim-disk-space-from-a-linux-virtual-machine-in-virtualbox/. В случае каких-либо нарушений, пожалуйста, свяжитесь с Study_golang@. 163.com, чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3