Как сжать динамически растущий диск VDI с VirtualBox?

Мои динамически растущие виртуальные диски (VDI) из разных установок Ubuntu в Virtual Box фактически неуклонно «растут».

Удаление файлов на виртуальной машине не освобождает пространство, которое мой VDI-файл взял из пространство хоста на жестком диске.

Как уменьшить эти файлы, чтобы вернуть неиспользуемое пространство на жестком диске на хост?

1
задан 7 April 2014 в 22:45

1 ответ

Ниже приведены некоторые альтернативные способы обнуления свободного места на диске (которое может быть самой трудоемкой частью). После этого вам все равно придется запускать VBoxManage modifyhd <disk> --compact, чтобы сжать фактический файл диска.

Эта команда может обнулить диск при его размонтировании:

apt-get install zerofree
zerofree -v /dev/sdxN

[ ! d2] Вот пример того, как заставить dd периодически печатать выходные данные:

dd if=/dev/zero of=temp-file-on-disk bs=20M

# run this to get the process ID of the dd command
pgrep -l '^dd$'
# then put the process ID on the command line to "kill -USR1"
# this will tell dd to print the current status (in another terminal)
kill -USR1 $(pgrep -l '^dd$' | awk '{print $1}')

Вот программа dd, которая будет автоматически печатать выходные данные периодически:

apt-get install dcfldd
dcfldd if=/dev/zero of=temp-file-on-disk bs=20M
1
ответ дан 24 May 2018 в 09:43
  • 1
    Я видел zerofree, используемый в смонтированной файловой системе, но когда он был установлен только для чтения. Даже для root FS: sudo mount -o remount,ro / - но в сеансе графического интерфейса root будет занят, поэтому он не будет работать. Но это возможно в runlevel 1 (telinit 1), поэтому вам не нужно загружаться с живого компакт-диска, чтобы сделать это. – Tomasz Gandor 8 May 2016 в 02:25

Другие вопросы по тегам:

Похожие вопросы: