모든 스냅샷을 한 번에 삭제하는 가장 좋은 방법

모든 스냅샷을 한 번에 삭제하는 가장 좋은 방법

VirtualBox VM이 있습니다(Windows Server 2012가 호스트와 게스트로 모두 사용됨). 몇 가지 어려운 항목을 구성하는 동안 여러 스냅샷을 만들었습니다.

Before installing OS
 \____ Before installing software A
        \____ Before installing software B
               \____ Before installing software C
                      \____ Testing this
                             \____ Testing that
                                    \____ Current state

이제 모든 것이 작동하고 디스크 공간이 필요하므로 모든 스냅샷을 삭제하고 싶습니다. 내 연구에 따르면 스냅샷을 하나씩 제거하는 것 외에는 고통스러울 정도로 느린 방법 외에는 다른 방법이 없다고 합니다. VM이 이미 호스트 디스크의 75%를 사용하고 있기 때문에 VM을 복제하거나 내보낼 수 없습니다.

위에서 아래로 제거를 시작해야 합니까, 아니면 그 반대로 시작해야 합니까? 병합이 더 빨라지는 결과는 무엇입니까? 아니면 별로 상관없나요?

답변1

이것이 최선의 방법인지는 모르겠지만 가장 빠른 방법이며 모든 스냅샷을 삭제하고 현재 상태를 벗어나려는 경우에만 해당됩니다.

스냅샷으로 이동하여 현재 상태를 마우스 오른쪽 버튼으로 클릭하고 복제를 클릭한 다음 모든 확인란을 선택하고 "모든 네트워크 어댑터 포함..."을 설정합니다.

여기에 이미지 설명을 입력하세요

다음 화면에서 "Full Clone"을 선택하세요.

다음 화면에서 "Current Machine State"를 선택하고 Clone을 누르십시오.

이제 스냅샷 없이 정확히 동일한 머신을 갖게 되었습니다. 오래된 머신을 삭제해야 합니다

단점: - 복제하기 전에 이전 VM의 이름을 바꾸거나 복제한 후에 새 VM의 이름을 바꿔야 합니다. 모든 UUID를 보존하므로 명령줄 자동화를 포함하여 모두 동일하게 작동해야 합니다. - 일시적으로 두 배 크기로 만들려면 추가 공간이 필요합니다.

장점: - 모든 스냅샷을 자동으로 빠르게 병합하므로 하나씩 삭제하는 데 시간을 낭비할 필요가 없습니다.

답변2

경험상 스냅샷을 삭제하는 올바른 방법은 단 하나뿐입니다. 최신 항목에서 뒤로 이동하고 한 번에 하나씩 삭제하는 것입니다.
항상 순서대로 - "중간" 스냅샷을 삭제하지 마십시오. 또는 더 나쁜 것은 가장 오래된/최상위 수준의 스냅샷입니다. 여러분은 VB가 개입하여 이 큰 오류를 방지할 것이라고 생각하겠지만 다행히 이를 허용합니다. 그냥 '하하, 죄송합니다!'라고 적힌 배너를 띄워야 합니다. 그런 후에.
최신 스냅샷 외에 삭제하고 순차적으로 뒤로 이동하는 등의 작업을 한 적이 없다면 가장 오래된/최상위 수준을 포함하여 모두 삭제하면 됩니다.
만약 당신이 그것을 엉망으로 만들고 중간 스냅샷을 삭제했다면, 모든 것을 제거하는 것까지 망쳐버릴 가능성이 높습니다. 일반적으로 삭제하려고 하면 오류가 발생하며 남아 있는 스냅샷은 제거할 수 없습니다. 시작 지점(설치 또는 가져오기)에 관계없이 VM을 다시 로드해야 합니다.
각 삭제 프로세스는 시스템 크기에 따라 각 스냅샷당 10분 정도 또는 그 이상 꽤 오랜 시간이 걸릴 수 있다는 점에 유의하세요.

답변3

VirtualBox 버전 7.0을 사용하면서 중간에 스냅샷을 삭제하는 데 아무런 문제가 없었습니다.

중간에 15개 정도의 스냅샷을 삭제해야 하는데, 이를 위해 다음 스크립트를 사용했습니다.

@echo off
:: Rename the following two lines to the correct VM name and executable path.
set VM_NAME="Win10ProWrk64TorrentTest"
set VBoxManageCMD="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"

for /F "tokens=* delims=" %%a in (SnapshotsList.txt) DO  (
    Echo Deletting snapshot %%a from VM %VM_NAME%
    %VBoxManageCMD% snapshot %VM_NAME% delete %%a
    Echo *********************************************
)

SnapshotsList.txt나는 삭제하고 싶은 스냅샷의 이름을 저장한 파일과 함께 이 스크립트를 사용했습니다 .

예:

"qBitTorrent Installed"
"Increased Resolution"
"Updated VM software"
"After downloading MiniTool Tourent and before MiniTool install"
"Post Minitool Install and other torrent downloads"
"EaseUS Data Recovery Wizard Installed"
"EaseUS Partition Master installed"
"Removed bad DiskGenius installs"
"Removed Failed AOMEI_PartAssist"
"MiniTool Partition Wizard Installed"
"Wondershare Reparit installed"
"qTorrent option changes"
"Before removing Recoverit"

파일 SnapshotsList.txt은 다음 명령을 사용하여 쉽게 만들 수 있습니다.

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" snapshot "MyVmNameHere" list --machinereadable >SnapshotsList.txt

삭제할 SnapshotName만 포함하도록 파일을 편집하십시오.

이를 시도하는 경우 스냅샷 이름과 VM 이름에 큰따옴표를 사용해야 합니다.

관련 정보