9

У меня есть виртуальная машина с около 30 снимками в филиалах. Текущий путь разработки - 22 снимка плюс базовый диск. Количество файлов, по-видимому, оказывает влияние на ввод-вывод и используемый мной ноутбук разработчика (не знаю, если это проблемы с производительностью диска хоста с общим размером 140 ГБ для большого количества фрагментов, или просто тот факт, что это поражение секторов, распределенных по множеству файлов).

Я хотел бы объединить текущую ветку моментальных снимков с базовым диском, но я не уверен, что следующая команда даст правильный результат. Я не могу загрузить этот диск после завершения процедуры (5-6 часов).

vboxmanage clonehd "C:\VPC-Storage\.VirtualBox\Machines\CRM\Snapshots\{245b27ac-e658-470a-b978-8e62137c33b1}.vhd" "E:\crm-20100624.vhd" --format VHD --type normal

Может ли кто-нибудь подтвердить, правильный ли это подход или нет?

4 ответа4

7

Что вы хотите сделать, это в диалоговом окне снимков, выбрать родительский снимок, который вы хотите объединить все снимки впоследствии в один VDI.

Из вашего описания это звучит так, как будто это корень дерева.

Щелкните правой кнопкой мыши и выберите «Удалить снимок».

Это будет делать то, что вы хотите - оно объединит все изменения из всех дочерних снимков в один VDI.

Кроме того - клонирование образа диска, который находится в последнем снимке, также объединит разностный диск с его родительским (и его родительским, и так далее, до тех пор, пока вы не получите «нормальный» тип жесткого диска).

Я подозреваю, что «удаление снимка» запускает команду clonehd.

Проверьте настройки виртуальной машины (в частности, IO APIC включен / отключен) и убедитесь, что они совпадают.

3

Если вы хотите сохранить только один снимок, сделайте его текущим состоянием, а затем экспортируйте виртуальную машину и повторно импортируйте ее. Экспортированные устройства не сохраняют свою историю снимков.

Или вы можете использовать этот скрипт vboxmerge.py для управления слиянием для вас. Учитывая количество снимков, которые вы имеете, я ожидаю, что цикл экспорта / импорта будет быстрее.

2

Вот методика (протестированная на VirtualBox 4.3.4), которая использует команду «Клонировать» для объединения и сжатия всех снимков в новую ВМ, содержащую один файл VDI:

  1. Переименуйте ВМ, чтобы вы могли повторно использовать ее текущее имя для клонированной ВМ (вы можете изменить имя ВМ на вкладке «Основные» в настройках «Общие»).

  2. Щелкните правой кнопкой мыши на виртуальной машине и выполните команду «Клонировать ...»:

    • Установите имя к оригинальному имени виртуальной машины.
    • Примите оставшиеся значения по умолчанию, т.е. Тип клона: «Полный клон»; Снимки: «Текущее состояние машины».
  3. Удалить старую виртуальную машину (щелкните правой кнопкой мыши на виртуальной машине и выполните команду «Удалить ...»).командовать).

0

Если ваш хост - Windows или вы можете получить доступ к VHD-файлам из Windows, есть хитрость, чтобы MERGE все изменения в parent, grand-parent и т.д.

Он использует инструмент DiskPart и две команды:

select vdisk file="whatever your file is, with full path"

merge vdisk depth=#

Где # - количество уровней иерархии, которые вы хотите переместить, 1 для прямого родителя, 2 для родителя и т.д.

Он делает это на месте, гораздо меньше времени, чем клонирование и т.д.

Помните, что после объединения все промежуточные виртуальные жесткие диски могут быть удалены (он не удаляет их для вас), и не забудьте присоединить в VirtualBox тот родительский объект, где вы слились.

Пример:

Disk3.vhd является дочерним для Disk2.vhd, Disk2.vhd является дочерним для Disk1.vhd

Если вы хотите на Disk1.vhd все изменения в Disk3.vhd, просто используйте deep depth=2 и выберите Disk3.vhd. Если вы хотите на Disk1.vhd все изменения в Disk2.vhd, просто используйте значение depth=1 выберите Disk3.vhd.

Также помните, что нет необходимости в уродливых снимках VirtualBox, вы можете использовать команду DiskPart create vdisk, чтобы создать разностный диск из существующего (который также может быть разностным диском и т.д.), А также создать огромное дерево.

Для всего остального: постер использует VHD (не VDI), поэтому может использовать встроенные инструменты, такие как DiskPart и Disk Managment, для доступа к этим дискам из гостевой системы (на хосте, если хостом является Windows).

Для вас, плакат: Помните, что до слияния всегда есть полная резервная копия, клон VirtualBox не работает на месте, он создает новый файл (копирование при записи), но слияние DiskPart работает на месте (измените файл, не создавайте новенький).

Надеюсь, что это может привести к другому подходу, поскольку VHD/VHDX используется (недопустимо для VMDK, VDI и т.д., Только для Windows Host).

Примечание: Windows 7 и выше, XP и Vista могут монтировать VHD с помощью внешнего инструмента M $, но DiskPart не поддерживает VHD в XP и Vista ... все это также работает в версиях Windows HOME (7 и выше), нет необходимости СЕРВЕР редакция.

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