VirtualBox - як звільнити невикористане місце на диску VDI?


14

Отже, якщо у мене є динамічне сховище у віртуальних гостях, як я можу зменшити розмір VDI, якщо в гості багато невикористаного місця?

Отже, я маю на увазі, що я знаю, що гость у віртуальній скрипті становить приблизно ~ 3 Гбайт, але файл VDI - 10 ГБ, тому що раз у той час гість був таким великим. Але зараз це лише 3 Гбайт. Як я можу зменшити розмір VDI? Так що це було б лише 3 Гбайт? (та ні, немає жодного знімка про гостя)


Відповіді:


15

Погляньте на vboxmanage modifyhd : це дозволяє зробити зображення більш компактним.

За допомогою параметра --compact можна використовувати для компактного зображення дисків, тобто видаляти блоки, що містять лише нулі. Це знову зменшить динамічно виділене зображення; це зменшить фізичний розмір зображення, не впливаючи на логічний розмір віртуального диска. Ущільнення працює як для базових зображень, так і для різних зображень, створених як частина знімка.

Щоб ця операція була ефективною, потрібно спочатку звільнити вільне місце в гостьовій системі за допомогою відповідного програмного інструменту. Для гостей Windows можна скористатися інструментом sdelete , наданим Microsoft. Виконайте sdelete -c у гості, щоб нульовий вільний простір диска перед стисканням зображення віртуального диска. Для Linux використовуйте утиліту zerofree, яка підтримує файлові системи ext2 / ext3.


1
Використовуйте sdelete -z не -c! Дивіться сторінку superuser.com/questions/747820/… - опція -c просто перезаписується випадковими даними для "безпечного стирання" (злегка зношені SSD).
Люк

6

Будьте обережні - МС змінив значення «-c» (чисто) та «-z» (нуль) в якийсь момент. Щоб бути безпечним, запустіть "sdelete /?" щоб побачити, який варіант слід використовувати:

C:\> sdelete /?

SDelete - Secure Delete v1.6
Copyright (C) 1999-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

usage: sdelete [-p passes] [-s] [-q] <file or directory> ...
       sdelete [-p passes] [-z|-c] [drive letter] ...
   -a         Remove Read-Only attribute
   -c         Clean free space
   -p passes  Specifies number of overwrite passes (default is 1)
   -q         Don't print errors (Quiet)
   -s or -r   Recurse subdirectories
   -z         Zero free space (good for virtual disk optimization)

1
Параметр -c перезаписується випадковими даними (див. Superuser.com/questions/747820/… ), що трохи зношує SSD. Використовуйте -z для обнулення.
Люк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.