제 블로그 방문자 분들 중 Differencing VHD 사용하시는 분들 많이 계시죠? 저는 하루에도 몇번이나 자식 VHD를 교체합니다. 그냥 호기심을 유발하는 프로그램이 있다면 일단 한번 깔아봅니다. 그런 다음 삭제하는 대신 VHD를 교체하죠. 프로그램 뿐 아니라 바로 이전 포스팅에서 질문 때문에 C 드라이브 VHD에도 비트라커를 걸어봤는데요, 일단 이렇게 한번 윈도우에 변화를 주는 작업을 하게 되면, 설정을 취소하는게 아니라 그냥 VHD를 교체해버립니다. 가장 깔끔한 복구방법이니까요.

그런데 PE로 부팅해서 자동교체 하는 시간도 이제는 너무 귀찮게 느껴집니다. 불과 30초 정도밖에 되지 않지만... 그래서 오늘부터 자식을 2개 운용하기로 했습니다. 진작에 이렇게 사용할걸 그랬네요. 1번 자식을 사용하다가 깔끔하게 되돌리고 싶으면 2번 자식을 깨끗한걸로 교체하고 2번으로 부팅하면 됩니다. 이것도 커맨드로 한방에 처리할 수 있습니다.

아마 지금 100kb짜리 깨끗한 자식 파일 가지고 계실텐데 이놈을 복사해서 2개를 새로 만듭니다. 저는 child1.vhd, child2.vhd 파일을 만들었습니다.



위 그림을 보면 자식 2개와 깨끗한 자식 1개 그리고 부모 VHD 파일이 있습니다.

이렇게 만든 VHD 파일 2개를 멀티부팅 메뉴에 등록시킵니다. 등록은 며칠전에 포스팅한 스크립트를 사용하시면 편하게 하실 수 있습니다.

2010/08/23 - [Windows 7] - VHD 파일 부팅메뉴에 간편히 등록하기

이렇게 등록하고 bcdedit을 입력해보면



이제 메모장을 열고 교체 & 부팅 기본값 변경 & 재부팅 스크립트를 작성합니다.

저는 자식 1번으로 부팅.cmd 파일을 이렇게 구성했습니다.

@echo off
pushd %~dp0
copy clean.vhd child1.vhd
bcdedit /default {78f20410-b0eb-11df-aa6f-e3d504a75150}
shutdown /r /t 0
exit

pushd %~dp0
이 명령어는 저한테 필요없지만 여러분께 필요해서 적어둡니다. bcdedit 명령어는 관리자 권한이 필요한데 UAC를 끄고 사용하거나 어드민 계정을 사용하는 경우가 아니라면 스크립트에 우클릭 해서 관리자 권한으로 실행했을 때 C:\Windows\System32 폴더를 기준으로 스크립트가 실행됩니다. 그러면 복사할 파일 경로를 전체로 적어줘야 하기 때문에 차라리 첫줄에 저렇게 넣어두는게 나아서 저렇게 해둡니다.

copy clean.vhd child1.vhd
이 명령어는 자식 1번으로 부팅할 생각이니 부팅하기 전에 먼저 자식 1번을 깨끗한 파일로 교체해주는 것입니다.

bcdedit /default {78f20410-b0eb-11df-aa6f-e3d504a75150}
이 명령어는 위 화면에서 bcdedit을 입력했을 때 나오는 자식 1번의 식별자 {GUID}를 기본 부팅 값으로 지정해주는 것입니다. 각자 자신의 컴퓨터 환경에 맞게 저 {GUID} 부분을 적어주시면 됩니다.

shutdown /r /t 0
이 명령어는 지금 바로 재부팅하겠다는 의미입니다.


저런 식으로 구성해서 메모장에 넣고 VHD 파일 모아놓은 곳에 확장자 CMD나 BAT로 저장해두면 됩니다. 지금 자식 1번으로 부팅했는지 2번으로 부팅했는지 그런건 헛갈릴 이유가 전혀 없다고 봅니다. 현재 부팅한 자식 파일이 부모의 최대 용량으로 되어 있으니까요.



저는 현재 자식 1번으로 부팅해서 글을 쓰고 있습니다. 보시다시피 child1.vhd 파일 용량이 20GB이죠. 따라서 VHD 파일을 교체할 생각이라면 자식 2번으로 부팅.cmd 파일을 실행하면 됩니다. 물론 지금은 아직 자식 2번으로 부팅한 적이 없어서 100kb 깨끗한 상태인데 평소에 2번 쓰다가 1번으로 온 상황이라면 2번 파일 크기가 1~2GB 정도는 되겠죠. 그놈을 100kb로 교체하고 그놈이 멀티부팅의 기본 메뉴가 되도록 지정하고 재부팅 하는게 위 배치파일의 역할입니다. 이것도 1,2 선택하게 메뉴를 구성하면 되지만 그러면 키보드를 한번 눌러야 하기 때문에 귀찮아서 그냥 파일 2개를 사용하기로 했습니다. 이 귀찮음의 끝은 어디일지...

아무튼 저처럼 매일 VHD 파일을 교체하시는 분들은 이렇게 사용해보세요. PE로 부팅해서 교체하던 30초를 줄일 수 있습니다. 그리고 가끔 부모 VHD로 부팅한 다음 윈도우 설정을 업데이트 하는 경우가 있는데, 그럴 때도 부모 VHD 상태에서 위 스크립트중 아무거나 하나 실행하면 그 자식이 깨끗한 놈으로 교체되고 부팅됩니다. 이제 더이상 PE로 부팅할 필요가 없어졌습니다. ^^