Micro2 기술 연대기

VHD 부모-자식(Differencing) 완벽 가이드: CMD/BAT 자동화 소스 공유

Micro2 2026. 4. 17. 16:37
반응형
📌 VHD 마스터 가이드: 부모-자식 관계와 자동화 기술
1. VHD 부모-자식(차이점 보관용) 관계 이해
  • 부모 VHD (Master): 운영체제나 프로그램이 설치된 순수 원본 파일입니다. (읽기 전용으로 보호)
  • 자식 VHD (Child/Diff): 부모를 기반으로 생성된 파일입니다. 모든 쓰기 작업은 여기에 저장됩니다.
  • 장점: 시스템이 꼬이면 자식 파일만 지우고 다시 만들면 1초 만에 초기화(복구)됩니다.

2. [실전 소스] CMD를 이용한 자식 VHD 생성 및 연결
메모장에 복사해서 .bat 파일로 만들어 관리자 권한으로 실행하세요.
(1) 자식 VHD 생성 스크립트
부모 파일(parent.vhd)을 기반으로 자식 파일(child.vhd)을 생성하는 핵심 소스입니다.
batch
@echo off
set "diskpart_script=%temp%\vhd_cmd.txt"

:: 경로 설정 (사용자 환경에 맞게 수정)
set "parent_vhd=C:\VHD\parent.vhd"
set "child_vhd=C:\VHD\child.vhd"

echo create vdisk file="%child_vhd%" parent="%parent_vhd%" > "%diskpart_script%"
diskpart /s "%diskpart_script%"

echo 자식 VHD 생성이 완료되었습니다.
pause
코드를 사용할 때는 주의가 필요합니다.
 
(2) VHD 자동 마운트(연결) 스크립트
부팅 후나 필요할 때 특정 드라이브 문자로 즉시 연결합니다.
batch
@echo off
(
echo select vdisk file="C:\VHD\child.vhd"
echo attach vdisk
echo assign letter=V
) > vhd_mount.txt

diskpart /s vhd_mount.txt
del vhd_mount.txt
echo VHD가 V드라이브로 연결되었습니다.
코드를 사용할 때는 주의가 필요합니다.
 

3. 고수들의 유용한 VHD 기술 (BAT 활용)
① 원터치 초기화 (Rollback)
자식 파일을 삭제하고 부모로부터 다시 생성하는 배치 파일입니다. PC방이나 테스트 환경에서 필수입니다.
batch
@echo off
taskkill /f /im explorer.exe
:: VHD 연결 해제 후 파일 교체
(
echo select vdisk file="C:\VHD\child.vhd"
echo detach vdisk
) | diskpart
del "C:\VHD\child.vhd"
copy "C:\VHD\parent.vhd" "C:\VHD\child.vhd" 
:: 다시 연결 등 후속 작업...
start explorer.exe
코드를 사용할 때는 주의가 필요합니다.
 
② VHD 내 용량 최적화 (Compact)
VHD 파일 내부의 빈 공간을 제거하여 파일 용량을 줄입니다.
batch
select vdisk file="C:\VHD\child.vhd"
attach vdisk readonly
compact vdisk
detach vdisk
코드를 사용할 때는 주의가 필요합니다.
 

📌 [VHD+PE] 무결점 가상 시스템 구축 및 자동화 스크립트
1. VHD 생성 및 최적화 파티션 구성 (Diskpart 스크립트)
시스템 예약 파티션 없이 VHD 내부에 부팅 파일까지 한 번에 넣는 단일 파티션 구성 소스입니다.
[MakeVHD.bat]
batch
@echo off
:: 관리자 권한 확인 필수
set "vhd_path=C:\VHD\Win10_Parent.vhd"

(
echo create vdisk file="%vhd_path%" maximum=51200 type=expandable
echo select vdisk file="%vhd_path%"
echo attach vdisk
echo convert gpt
echo create partition primary
echo format fs=ntfs quick label="VHD_System"
echo assign letter=V
echo exit
) | diskpart

echo [완료] VHD 생성 및 드라이브(V:) 연결 완료.
pause
코드를 사용할 때는 주의가 필요합니다.
 
2. OS 이미지 주입 및 부팅 등록 (WimApply)
포맷된 VHD에 Windows 이미지를 넣고 부팅 파일을 심는 과정입니다.
batch
:: V: 드라이브에 OS 이미지 주입 (홍차PE 등에서 실행)
dism /Apply-Image /ImageFile:install.wim /Index:1 /ApplyDir:V:\

:: 시스템 예약 파티션 없이 부팅 파일 주입 (핵심 기술)
bcdboot V:\Windows /s V: /f ALL /l ko-KR
코드를 사용할 때는 주의가 필요합니다.
 
3. PE 제작 시 필수 등록 스크립트 (PE 부팅용)
PE 내에서 VHD를 원클릭으로 마운트/언마운트하는 기술입니다. 블로그 덕후들이 가장 탐낼 소스입니다.
[VHD_Attach.bat]
batch
@echo off
set /p "vdisk=VHD 파일 경로 입력: "
(
echo select vdisk file="%vdisk%"
echo attach vdisk
) | diskpart
echo 해당 VHD가 연결되었습니다.
pause
반응형