Будет ли заполнение нулями увеличивать размер образа виртуального ящика динамического диска

10

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

Одна операция, которую я часто выполняю, заключается в том, чтобы заполнить образ диска фиксированного размера нулем, прежде чем выполнять его резервное копирование с помощью программы zip (чтобы уменьшить размер архива zip). Мой вопрос: когда я заполню нулями динамический диск, увеличится ли размер диска до его максимального заявленного значения? (В моем конкретном случае я использую sdelete -zразделы Windows.)

Еще один вопрос: есть ли способ обнуления разделов без увеличения размера диска?

Спасибо.

-- РЕДАКТИРОВАТЬ --

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

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

tinlyx
источник
1
да, полностью выделенный динамически распределяемый диск будет полностью выделенным размером. Я не совсем уверен, в чем здесь путаница, и я не могу придумать причину, чтобы сделать то, что вы описываете, но нет, вы не можете вставить кучу данных (хотя и все 0) в файл и не ожидать его размера изменить.
Фрэнк Томас
@FrankThomas Пожалуйста, смотрите мое обновление для причины для заполнения нуля.
tinlyx
1
@tinlyx Я только что ответил, и, кажется, я ответил на ваши изменения в моем ответе, вы можете фактически сжать образы динамического диска с помощью инструментов virtualbox. Таким образом, нулевое заполнение, за которым следует компакт, сделало бы идеальное изображение для архивных целей.
Мокубай

Ответы:

12

Я только что протестировал его (используя sdelete -zв ВМ), и заполнение диска нулем не приведет к значительному увеличению размера образа динамического диска. Virtualbox достаточно умен, чтобы признать, что когда вы записываете нули в уже пустой блок, на диске не требуется повторная запись блока.

Но даже если это произойдет, это не так уж и плохо, потому что заполнение диска нулем также позволит вам снова сжать его с помощью инструментов Virtualbox на вашем хосте: Как уменьшить размер файла VDI VirtualBox?

Когда я заполнил свою виртуальную машину нулем, размер изображения увеличился с ~ 14,5 ГБ до ~ 15,5 ГБ, но не полностью выделил все дисковое пространство, которое было бы приблизительно 48 ГБ.

Фактически нулевое заполнение диска (через sdelete -z) позволит вам должным образом освободить любое пространство, которое было записано, но с тех пор было освобождено операционной системой вашей виртуальной машины, затем вы можете запустить команду VBoxManage.exe modifyhd c:\path\to\thedisk.vdi --compactна хост-машине, чтобы правильно сжать образ динамического диска. вернуться к своему минимальному размеру.

Мокубай
источник
Спасибо. Действительно, sdelete -zразмер динамического диска сильно не увеличивается.
tinlyx