지금 바로 할 일
- 게스트가 디스크에 더 쓰지 않도록 가상 머신을 종료합니다.
- 작은 설명 파일(descriptor)과 모든 익스텐트 파일을 포함해 가상 머신 폴더 전체를 다른 드라이브에 복사합니다.
- 삭제 파일 복구에서 .vmdk 설명 파일이나 .qcow2 파일을 열고 게스트 파티션을 검사합니다.
- 복구한 파일은 가상 머신 안이 아니라 호스트의 폴더에 저장합니다.
단계별 방법
가상 머신 멈추기
게스트를 정상 종료하거나 전원을 끕니다. 일시 중단한 채 계속 쓰지 마세요. 실행 중인 게스트는 로그, 업데이트, 스왑 데이터를 계속 가상 디스크에 쓰고, 그 쓰기가 삭제된 파일이 있던 자리에 들어갈 수 있습니다.
가상 머신 폴더 복사하기
가상 디스크가 들어 있는 폴더를 다른 물리 드라이브에 복사합니다. VMware는 작은 설명용 .vmdk와 이름-flat.vmdk, 이름-s001.vmdk 같은 익스텐트 파일로 이루어지고, QEMU나 KVM은 대개 .qcow2 파일 하나입니다. 원본은 그대로 두고 복사본으로 작업합니다.
익스텐트를 설명 파일 옆에 두기
VMDK 설명 파일은 익스텐트 파일 이름을 적어 둔 짧은 텍스트 파일입니다. 그 파일들이 원래 이름 그대로 같은 폴더에 있어야 디스크를 조립할 수 있습니다. 데이터스토어에서 내려받았다면 설명 파일과 큰 데이터 파일이 모두 받아졌는지 확인하세요.
가상 디스크 열기
FileFix Ultimate에서 삭제 파일 복구를 열고 디스크 이미지 파일을 고른 뒤 이미지 파일 열기를 누릅니다. 설명용 .vmdk나 .qcow2 파일을 선택하면 디스크가 읽기 전용으로 열리고, 물리 디스크처럼 파티션 목록이 표시됩니다.
게스트 파티션 검사하기
파일이 있던 파티션을 고릅니다. Windows 게스트라면 대개 큰 NTFS 볼륨, 리눅스라면 ext4 루트나 홈 볼륨입니다. 균형 검사를 시작하고, 파일 시스템을 인식하지 못하면 정밀 시그니처 검사로 알려진 파일 형식을 찾습니다.
호스트에 저장하기
결과를 미리 보고 필요한 파일을 골라 호스트의 폴더나 다른 디스크에 저장합니다. 상태 표시를 확인하세요. 검증됨으로 표시된 파일은 독립적인 형식 검사를 통과한 것입니다.
열 수 있는 가상 디스크 형식과 차이점
VMware 디스크는 몇 가지 구조가 있습니다. 모놀리식 sparse VMDK는 게스트가 데이터를 쓸수록 커집니다. streamOptimized VMDK는 압축된 형식으로 OVA·OVF 내보내기 안에서 자주 보입니다. flat VMDK는 미리 할당된 원시 파일이고 별도의 작은 설명 파일이 이를 설명합니다. FileFix Ultimate는 세 가지를 모두 읽고, QEMU·KVM·Proxmox의 QCOW2 버전 2와 3, Hyper-V의 VHD·VHDX, 원시 .img 파일도 엽니다.
sparse 디스크와 QCOW2에서는 게스트가 한 번도 쓰지 않은 영역이 파일에 저장되지 않습니다. 파일이 작아지는 장점이 있지만, 게스트가 반환하고 호스트가 회수한 블록은 파일 안에 더 이상 존재하지 않을 수 있다는 뜻이기도 합니다.
스냅숏, 씬 디스크, 게스트 안의 TRIM
가상 머신에 스냅숏이 있으면 이후 변경 사항은 기본 디스크 옆의 델타 파일에 들어갑니다. 기본 파일만 열면 스냅숏을 찍은 시점의 게스트가 보이는데, 파일을 그 뒤에 지웠다면 오히려 도움이 될 수 있습니다. 최신 상태가 필요하다면 하이퍼바이저에서 가상 머신 복사본을 먼저 통합한 뒤 그 결과를 여는 것이 대개 가장 간단합니다.
최신 게스트는 삭제된 공간에 TRIM이나 unmap 명령을 보낼 수 있고, 일부 하이퍼바이저는 그에 따라 씬·sparse 디스크를 줄입니다. 그랬다면 SSD와 마찬가지로 삭제된 블록이 파일에서 사라졌을 수 있습니다. 복구는 thick·flat 디스크나 공간 회수가 꺼진 게스트에서 잘 되는 편입니다.
흔한 실수
복구 프로그램을 설치하려고 가상 머신을 부팅하면 복구하려는 바로 그 디스크에 쓰게 됩니다. 원본 디스크에 하이퍼바이저의 복구나 압축(compact) 명령을 실행하면 빈 공간이 버려질 수 있습니다. 익스텐트 파일 이름을 바꾼 뒤 설명 파일을 열면 둘 사이의 연결이 끊어지니, 이름을 바꾸지 말고 폴더 구조를 그대로 유지하세요.
복구가 안 되는 경우
- 암호화된 가상 머신은 하이퍼바이저의 복호화 없이는 읽을 수 없습니다. 게스트 안의 BitLocker는 복구 키가 필요합니다.
- ReFS, Btrfs, ZFS처럼 지원하지 않는 파일 시스템을 쓰는 게스트는 파일 이름과 폴더 없이 시그니처 검색만 가능합니다.
- 익스텐트 파일이 없거나 이름이 바뀌어 디스크 일부가 빠지면, 그 부분에 있던 파일은 복구할 수 없습니다.
- 게스트가 TRIM하고 호스트가 씬·sparse 디스크에서 회수한 공간에는 대개 이전 데이터가 남아 있지 않습니다.
- 부모 디스크가 필요한 스냅숏(자식) VMDK, seSparse·vmfsSparse 디스크, 원시 장치 매핑은 열 수 없습니다. 기본 디스크를 쓰거나 가상화 프로그램에서 스냅숏을 먼저 통합하세요.
FileFix Ultimate가 돕는 방법
- VMDK(sparse, streamOptimized, flat), QCOW2 v2·v3, VHD, VHDX, E01, 원시 이미지를 읽기 전용으로 엽니다.
- 가상 디스크 안의 파티션을 보여 주고 NTFS, FAT32, exFAT, ext2·ext3·ext4 게스트를 읽어 이름과 폴더를 되살립니다.
- 게스트 파일 시스템을 인식하지 못하면 68가지 파일 형식의 시그니처 검색으로 넘어갑니다.
- VMDK를 포함한 여러 디스크 이미지를 가상 RAID 0, 1, 5, JBOD로 합칠 수 있습니다.
FileFix Ultimate는 개인 사용이 무료이고 오프라인으로 동작하며, 복구 대상 드라이브에는 아무것도 쓰지 않습니다. 업무용은 PC 1대당 1년 라이선스가 필요합니다. 실행 전에 디지털 서명을 확인하세요.
자주 묻는 질문
호스트에서 지워진 VMDK 파일 자체도 복구할 수 있나요?
그것은 다른 작업입니다. .vmdk가 호스트 드라이브에서 지워졌으니 호스트 드라이브를 검사해 설명 파일과 큰 데이터 파일을 찾아야 합니다. 큰 flat·sparse 익스텐트는 조각나 있는 경우가 많아 일부만 돌아올 수 있습니다.
디스크를 열려면 VMware나 QEMU를 설치해야 하나요?
아니요. 가상 디스크 파일을 직접 읽으므로 Windows 10·11 PC에 파일만 있으면 됩니다. 하이퍼바이저는 스냅숏을 먼저 통합하고 싶을 때만 필요합니다.
작은 파일과 큰 파일 중 무엇을 선택하나요?
VMware라면 작은 설명용 .vmdk를 선택하세요. 데이터 익스텐트가 어디 있는지 앱에 알려 줍니다. 설명 파일을 잃어버렸다면 flat 익스텐트를 원시 이미지로 열 수도 있습니다.
디스크를 열면 가상 머신이 바뀌거나 망가지나요?
아니요. 파일을 읽기 전용으로 열고 아무것도 쓰지 않으므로 가상 머신은 전과 같이 부팅됩니다. 그래도 복사본으로 작업하는 습관이 가장 안전합니다.