У меня есть виртуальная машина с около 30 снимками в ветках. Текущий путь разработки - 22 снимка плюс базовый диск. Количество файлов, по-видимому, влияет на IO и ноутбук, который я использую (не знаю, если это проблемы с производительностью диска хоста с общим размером 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
Кто-нибудь может подтвердить, если это правильный подход или нет?
virtualbox
vhd
merge
snapshot
Хенрик
источник
источник
Ответы:
Что вы хотите сделать, это из диалогового окна снимков, выбрать родительский снимок, который вы хотите объединить все снимки впоследствии в один VDI.
Из вашего описания звучит так, будто это корень дерева.
Щелкните правой кнопкой мыши и выберите «Удалить снимок».
Это будет делать то, что вы хотите - оно объединит все изменения из всех дочерних снимков в один VDI.
Кроме того - клонирование образа диска, который находится в последнем снимке, также объединит разностный диск с его родительским (и его родительским, и так далее, пока вы не получите «нормальный» тип жесткого диска).
Я подозреваю, что «удаление снимка» запускает команду clonehd.
Проверьте настройки виртуальной машины (в частности, IO APIC включен / отключен) и убедитесь, что они совпадают.
источник
Если вы хотите сохранить только один снимок, сделайте его текущим состоянием, а затем экспортируйте виртуальную машину и повторно импортируйте ее. Экспортированные устройства не сохраняют свою историю снимков.
Или вы можете использовать этот скрипт vboxmerge.py для управления слиянием для вас. Учитывая количество снимков у вас, я бы ожидал, что цикл экспорта / импорта будет быстрее.
источник
Вот методика (проверенная на VirtualBox 4.3.4), которая использует команду «Клон» для объединения и сжатия всех снимков в новую виртуальную машину, содержащую один файл VDI:
Переименуйте ВМ, чтобы вы могли повторно использовать ее текущее имя для клонированной ВМ (вы можете изменить имя ВМ на вкладке «Основные» в настройках «Общие»).
Щелкните правой кнопкой мыши на виртуальной машине и выполните команду «Клонировать ...»:
Удалите старую виртуальную машину (щелкните правой кнопкой мыши на виртуальной машине и выполните команду «Удалить ...»).
источник
Если ваш хост - 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, просто используйте
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).
Примечание: Windows 7 и выше, XP и Vista могут монтировать VHD с помощью внешнего инструмента M $, но DiskPart не поддерживает VHD в XP и Vista ... все это также работает в версиях Windows HOME (7 и выше), нет необходимости СЕРВЕР редакция.
источник