virtualbox 스냅샷을 다른 상위 항목으로 리베이스

virtualbox 스냅샷을 다른 상위 항목으로 리베이스

저는 VirtualBox 스냅샷(CI 빌더에서 사용하기 위해)을 과도하게 사용하고 있으므로 일반적으로 단일 VM에 여러 개의 스냅샷이 있습니다. 종종 시스템 업데이트 등을 위해 기존 스냅샷에서 새 스냅샷을 "포크"하는 경우가 있습니다.

base
└── A
    └── A1

업데이트가 완료되면 간단히 제거하여 상위 스냅샷을 하위 스냅샷으로 대체하고 VirtualBox는 변경 세트 와 A다음을 병합합니다 .base->AA->A1

base
└── A1

시원한.

그러나 때로는 새로운 스냅샷 하위 트리를 만들고 싶을 때가 있습니다.원래일부 스냅샷을 포크하고 고유한 생명력을 얻습니다.

예:

base
└── A
    ├── A1
    └── B
        └── B1

이제: 이것은 곧 보기 흉해지며(하위 트리를 계속 업데이트함에 따라) 결국 스냅샷 트리를 정리하고 싶으므로 다음과 같이 됩니다.

base
├── A1
└── B1

A안타깝게도 VirtualBox에서는 다음 오류로 인해 스냅샷을 삭제할 수 없습니다 .

Snapshot 'A' of the machine 'vagrantbox' cannot be deleted, because it has 2 child snapshots, which is more than the one snapshot allowed for deletion.

이론적으로는 스냅샷 삭제에 아무런 문제가 없습니다 A. VirtualBox는 스냅샷 병합을 두 번( base->A->A1base->A->B) 수행하면 됩니다. 이렇게 하면 스냅샷 크기가 커질 수 있지만 만족스럽게 사용할 수 있습니다. (그리고 FS 레이어를 줄임으로써 더 나은 성능을 얻을 수 있기를 바랍니다.)

그렇다면 형제 스냅샷은 그대로 유지하면서 스냅샷을 상위 스냅샷으로 리베이스하려면 어떻게 해야 할까요?

답변1

스냅샷을 기반으로 전체 VM 클론을 만들 수 있습니다. 새 VM에는 스냅샷이 없습니다. 유일한 다른 방법은 VM 등록을 취소한 다음 vboxmanage디스크 이미지를 사용하고 VM의 XML 파일을 편집하여 모든 작업을 직접 수행하는 것입니다.

관련 정보