Ubuntu 26.04 강좌 / 스냅샷으로 되돌리기와 VM 복제 시 주의점

스냅샷은 VM의 특정 시점 상태로 돌아가기 위한 기능이며 독립 백업을 대신하지 않습니다. 복제는 별도 VM을 만드는 작업이지만 내부 계정·호스트 키·머신 식별자까지 새로 만들어 준다고 가정하면 안 됩니다.

복원 전에 보존할 자료 구분하기

스냅샷 이후 만든 파일과 설정은 복원 과정에서 사라질 수 있습니다. 호스트 공유 폴더·외부 DB·네트워크 저장소의 자료는 게스트 스냅샷과 별도로 취급합니다. 복원 전 남겨야 하는 원고와 로그를 VM 밖에 복사하고 복사본을 실제로 열어 봅니다.

처음에는 VM을 정상 종료한 상태에서 기준 스냅샷을 만듭니다. 메모리 상태를 포함한 실행 중 스냅샷과 종료 상태의 디스크 기준점은 복구 특성이 다릅니다. 이름에는 clean-install처럼 의미를 적고 날짜·확인한 상태·복구할 이유를 별도로 남깁니다.

버려도 되는 파일로 복원 시험하기

  1. VM을 정상 종료하고 VirtualBox의 스냅샷 화면에서 기준점을 만듭니다.
  2. 부팅하여 아래 연습 파일을 생성하고 내용을 확인합니다. 중요한 원본 경로에서는 실행하지 않습니다.
  3. VM을 다시 정상 종료하고 기준 스냅샷을 복원합니다. 현재 상태를 따로 보관할지 묻는 선택도 읽고 결정합니다.
  4. 부팅 후 연습 파일의 유무, 계정 로그인, 주소와 필요한 서비스 상태를 확인합니다.
mkdir -p "$HOME/snapshot-lab"
printf 'after-snapshot\n' > "$HOME/snapshot-lab/marker.txt"
cat "$HOME/snapshot-lab/marker.txt"

기준점에 파일이 없었다면 복원 후 파일이 없는 것이 예상 결과입니다. 파일이 남는다면 공유 폴더인지, 기준점을 파일 생성 뒤에 만든 것은 아닌지 확인합니다. 스냅샷 이후 만든 연습 파일이 사라졌다고 중요한 데이터의 복구까지 검증한 것으로 기록하지 않습니다.

VirtualBox의 VM 관리 문서는 스냅샷·복제·내보내기의 저장 범위를 설명합니다.

복제 VM은 먼저 격리해 부팅하기

원본과 복제를 동시에 연결하기 전에 복제 VM의 네트워크를 끄거나 격리된 실습망으로 둡니다. 정적 IP·같은 호스트 이름·DHCP 식별자·공유 경로가 겹치면 실제 장치로 오인하거나 주소 충돌을 만들 수 있습니다. 가상 NIC의 MAC 주소를 새로 만드는 옵션도 확인합니다.

hostnamectl
ip -br address
cat /etc/machine-id
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

위 정보는 복제 후 대조할 항목입니다. 머신 ID와 SSH 호스트 키가 같아도 당장 부팅이 실패하지 않을 수 있지만 독립 서버의 신원을 구분하지 못합니다. 값과 내부 주소가 포함된 기록은 공개하지 않습니다. 원본의 키를 지우거나 복제에서만 해야 할 초기화를 양쪽에 적용하지 마세요.

일반 복제와 배포용 템플릿 구분하기

일회성 비교 실습이라면 주소·호스트 이름을 구분한 격리 VM으로 사용할 수 있습니다. 독립 서버로 배포하려면 OpenSSH 호스트 키·machine-id·cloud-init 초기 상태·계정 비밀·고정 네트워크 설정의 초기화 계획을 별도로 세웁니다. 파일 하나를 무조건 지우는 만능 명령은 템플릿 환경마다 결과가 달라질 수 있습니다.

복원·복제 후에는 날짜, 로그인, 네트워크, 마운트와 서비스 응답을 확인합니다. 외부에서 보관한 VM 백업을 실제로 다시 가져와 부팅할 수 있는지도 별도 실습으로 확인해야 합니다. 원본 디스크와 스냅샷 파일 일부를 임의로 이동하거나 삭제하지 않습니다.