3

У меня был главный упс, который привел к тому, что жесткий диск моей гостевой виртуальной машины VirtualBox стал больше, чем жесткий диск хоста. Я бросился читать команды для изменения размера виртуального жесткого диска. В результате я изменил размер своего виртуального жесткого диска с 25 ГБ до 45 ТБ.

Мое исследование о том, как сжать VDI VirtuaBox, говорит о том, чтобы войти в гостевую систему, обнулить все свободное пространство, а затем сжать жесткий диск с помощью команд VBoxManage. Это сработало бы, если бы максимальный размер VDI был меньше, чем у хост-системы. Это неприемлемо для моей ситуации, потому что запись нулей в свободное пространство моего измененного VDI будет пытаться заполнить 45 ТБ нулями. Так как мой Mac имеет жесткий диск емкостью 750 ГБ, 45 ТБ нулей сорвут его.

Некоторые форумы говорят, что виртуальный максимальный размер не имеет большого значения, так как динамический жесткий диск будет занимать только дисковое пространство хоста, которое соответствует данным в гостевой системе. Это правда, но этот верхний предел в 45 ТБ меня пугает. Что, если процесс в моем госте сходит с ума и продолжает регистрироваться, пока не заполнит жесткие диски гостя и хоста? Это сломает обе мои машины, и я не хочу этого допустить.

Итак, мой вопрос: как вы действительно уменьшаете максимальный размер динамического виртуального жесткого диска VirtualBox?

Host: Mac OS X
Guest: Windows 8
I have not started the VM since I resized the VDI

1 ответ1

2

Краткий ответ: вы не можете уменьшить максимальный размер, вы можете только увеличить его. Однако вы можете создать VDI нужного размера и клонировать старый VDI в новый VDI. Есть некоторые ошибки, так что читайте дальше.

Клонирование старого VDI в новый VDI работает, только если вы можете гарантировать следующее:

  1. На физическом жестком диске хоста достаточно места для поддержки клонирования
  2. Если ВМ вновь распределяло его жесткий диск , чтобы использовать любого из пространства , выделенное на его новом максимальном размере, то VDI клонировать на должно быть точно таким же размером или больше , как вся схема разделов гостя. (Я бы использовал больший VDI, чтобы быть в безопасности.)

Если вы можете гарантировать эти вещи, вы можете нажать на ...

Сначала создайте новый VDI нужного вам размера:

VBoxManage createhd --filename Windows\ 8\ Improved.vdi --size 50000

--size в МБ. В этом примере будет создан динамический VDI, максимальный размер которого составляет 50 ГБ.

Затем клонируйте старый VDI на новый VDI (мой старый VDI называется Windows 8.vdi):

VBoxManage clonehd Windows\ 8.vdi Windows\ 8\ Improved.vdi --existing

Затем вы используете VirtualBox GUI (или VBoxManage), чтобы использовать Windows 8 Improved.vdi качестве основного жесткого диска.

Ключ здесь - --existing часть. Пока пространство, занимаемое схемой разделов в старом VDI, меньше, чем размер нового VDI, клон должен преуспеть с возможностью освободить место. Когда вы загружаетесь в виртуальную машину с использованием нового VDI, гостевая ОС по-прежнему будет иметь старую схему разделов, но будет видеть больший жесткий диск. На этом этапе вы можете безопасно использовать подходящий менеджер разделов (например, GParted), чтобы расширить гостевой жесткий диск в новое пространство.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .