VARS VShot 2nd - 지원 운영체제
VARS VShot 은 윈도우의 새로운 Native VHD Boot 기능을 활용합니다. 현재 출시된 윈도우 중에 이를 활용할 수 있는 운영체제는 윈도우 7(+ 윈도우 서버 2008 R2) 과 최종 시험판 단계에 들어선 윈도우 8 뿐 입니다. 그 중에서도 윈도우 7 은 Ultimate 와 Enterprise 에디션이, 윈도우 8 은 Professional 과 Enterprise 에디션이(계획상) 이를 지원을 합니다.
Windows 7 Ultimate Edition x86, x64
Windows 7 Enterprise Edition x86, x64
Windows 8 Professional Edition x86, x64 - 출시 예정
Windows 8 Enterprise Edition x86, x64 - 출시 예정
Windows 7 Enterprise Edition x86, x64
Windows 8 Professional Edition x86, x64 - 출시 예정
Windows 8 Enterprise Edition x86, x64 - 출시 예정
VARS VShot 2nd - 첫 번째 버전에서 달라진 점
1. 윈도우 8 을 정상적으로 지원합니다. (사용자 계정 컨트롤을 단순히 제어판에서만 꺼도 작동하도록 수정)
윈도우 8 에서는 사용자 계정 컨트롤 정책의 변화로 인해 배치 파일을 시작 프로그램에 등록해도 정상적으로 실행되지 않는 문제가 있습니다. 그리하여 윈도우 8 에서는 시작 프로그램 대신 이와 동일한 역할을 수행할 수 있는 작업 스케줄러를 사용하는 방식을 통해 변화된 사용자 계정 컨트롤 정책에 대응하는 방식을 사용하였습니다.
이를 통해 윈도우 8 에서도 윈도우 7 때와 마찬가지로 단순히 제어판에서 사용자 계정 컨트롤을 끄는 것 만으로도 VARS VShot 의 모든 기능을 정상적으로 이용하실 수 있습니다. 즉, 이제 더이상 레지스트리를 통해 사용자 계정 컨트롤을 완전히 끄거나 Administrator 계정을 사용하지 않아도 됩니다.
현재 최종 시험판인 Release Preview 버전이지만 지금까지의 개발 전례로 보았을 때 보통 정식 버전과 RP 버전 사이의 변화는 크지 않았고, 이를 통해 생각해본다면 윈도우 8 정식 버전이 출시되더라도 현재 소개해드리는 VARS VShot 을 수정없이 그대로 사용할 수 있을 듯 합니다.
이를 통해 윈도우 8 에서도 윈도우 7 때와 마찬가지로 단순히 제어판에서 사용자 계정 컨트롤을 끄는 것 만으로도 VARS VShot 의 모든 기능을 정상적으로 이용하실 수 있습니다. 즉, 이제 더이상 레지스트리를 통해 사용자 계정 컨트롤을 완전히 끄거나 Administrator 계정을 사용하지 않아도 됩니다.
현재 최종 시험판인 Release Preview 버전이지만 지금까지의 개발 전례로 보았을 때 보통 정식 버전과 RP 버전 사이의 변화는 크지 않았고, 이를 통해 생각해본다면 윈도우 8 정식 버전이 출시되더라도 현재 소개해드리는 VARS VShot 을 수정없이 그대로 사용할 수 있을 듯 합니다.
2. 제거되었던 원본 VHD 의 제로필 최적화 기능이 다시 추가되었습니다.
VHD 제로필 최적화 기능을 다시 추가하였습니다. 괜히 없앴습니다. 죄송합니다. ㅡㅡ^
단, ImageX 를 통한 VHD 최대 크기 축소 기능은 여러 가지 여건상 최종적으로 추가하지 않기로 하였습니다. 필요하시면 직접 하셔야 합니다. 그 방법은 언젠가 설명을 해 드리죠.
단, ImageX 를 통한 VHD 최대 크기 축소 기능은 여러 가지 여건상 최종적으로 추가하지 않기로 하였습니다. 필요하시면 직접 하셔야 합니다. 그 방법은 언젠가 설명을 해 드리죠.
3. 백업과 복원이 기존의 단순 Copy 방식을 벗어나 DiskPart 의 기본 기능인 Create Vdisk Source 를 사용하는 방식으로 바뀌었습니다.
원본 VHD 의 백업과 복원 작업에 기존의 Copy 방식을 버리고 새롭게 Create Vdisk Source 방식을 도입했습니다. 이를 통해 Fixed Type 을 사용하시는 분들도 Expandable Type 을 사용하시는 분들과 동일하게 좀 더 작은 용량으로 백업을 하실 수 있게 되었습니다. 자세한 내용은 뒤에서 밝히도록 하겠습니다.
4. 원본 VHD 의 Type 을 설정할 수 있습니다.
설치시 원본 VHD 의 Type 을 설정하는 단계가 추가되고 원클릭 프로그램에도 이를 수정할 수 있는 기능을 추가하였습니다. 이는 백업과 복원에 새롭게 Create Vdisk Source 방식을 도입하면서 추가한 기능으로 이를 통해 사용자는 현재 사용 중인 원본 VHD 의 Type 을 Fixed 와 Expandable 원하는대로 자유롭게 변화시킬 수 있습니다. 좀 더 자세한 내용은 뒤에서 다루도록 하겠습니다.
5. 원클릭 프로그램에서 코어 부팅 메뉴가 제거되었습니다.
어차피 부팅 메뉴에서 접근이 가능하기 때문에 크게 필요성이 없다고 판단하여 제거하였습니다.
VARS VShot 2nd 를 위한 VHD 에 윈도우 설치하기 간략 정리
VHD 가상 디스크는 윈도우 7 의 경우 특정 드라이브의 루트에서 \VHD\Win7.vhd 로 생성하는 것이 기본 셋팅이며, 윈도우 8 의 경우 \VHD\Win8.vhd 로 생성하는 것이 기본 셋팅입니다.
즉, 윈도우 PE 단계나 윈도우 설치 단계에서 DiskPart 를 통해 C: 드라이브에 VHD 파일을 생성한다고 가정하면, C: 드라이브에 VHD 폴더를 미리 생성한 후, 아래와 같이 VHD 파일을 생성하고, 연결하여 그곳에 윈도우를 설치하시면 되는 겁니다. (이 때 Type 은 Expandable, 용량은 30GB 로 한다고 가정)
VHD 폴더 생성
md C:\VHD
VHD 파일 생성 (DiskPart)
윈도우 7 : Create Vdisk File="C:\VHD\Win7.vhd" Type=Expandable Maximum=30720
윈도우 8 : Create Vdisk File="C:\VHD\Win8.vhd" Type=Expandable Maximum=30720
md C:\VHD
VHD 파일 생성 (DiskPart)
윈도우 7 : Create Vdisk File="C:\VHD\Win7.vhd" Type=Expandable Maximum=30720
윈도우 8 : Create Vdisk File="C:\VHD\Win8.vhd" Type=Expandable Maximum=30720
참고로 이것은 어디까지나 VARS VShot 설치 파일의 기본 셋팅값으로 절대적인 것은 아닙니다. 이미 다른 경로에 다른 이름으로 VHD 파일을 준비하고 설치하신 분들이라면 VARS VShot 의 설치 파일에 포함된 몇 가지 변수를 자신의 VHD 파일 경로와 이름에 맞춰 수정해주는 것으로 VARS VShot 을 아무런 문제없이 설치하실 수 있습니다. 이에 대한 것은 설치 단계에서 이야기를 드리도록 하겠습니다.
다음으로 클리닝, 자동 클리닝 스타일을 사용하는 경우 내부적으로 자식 VHD 를 활용하기 때문에 VHD 최대 크기의(생성 당시 Maximum 셋팅 값) 약 두 배의 여유 공간이 필요하게 됩니다. 소용량의 SSD 와 같은 곳에 VHD 파일을 위치시키는 경우 용량 부족 문제를 겪을 수 있기 때문에 이점을 필히 주의하시길 바랍니다.
VARS VShot 을 오직 기본 스타일로만 사용하실 분들은 이 내용은 상관하지 않으셔도 됩니다.
마지막으로 윈도우의 VHD 설치에 대해 정확하게 모르시는 분들을 위한 설치 예제입니다. 설치 예제는 윈도우 7 기준이며 윈도우 8 도 이와 동일하게 다만 VHD 의 파일 이름만 Win8.vhd 로 하시면 됩니다.
윈도우 설치 DVD 로 부팅하여 설치를 시작합니다. 윈도우를 설치할 파티션을 설정하는 단계까지 왔다면 VHD 파일을 생성할 파티션을 적절히 준비합니다. 기존의 윈도우를 제거하기 위해 포맷을 하거나 그런 것은 개인의 판단에 맡깁니다.
파티션의 준비를 모두 마쳤으면 VHD 를 생성하기 위해 Shift + F10 을 눌러 명령 프롬프트를 실행합니다.
명령 프롬프트가 실행되었으면 DiskPart 를 통해 VHD 를 위치시킬 파티션의 드라이브 문자를 정확하게 파악합니다. (디스크와 파티션 구성에 따라 드라이브 문자가 어떻게 배열되어 있을 지 모르기 때문입니다.) 이 때 파티션(볼륨)은 용량 등의 정보를 통해 구별하십시요. 다음의 명령을 차례로 내려줍니다.
VHD 를 생성할 드라이브 문자를 파악했으면 이제 해당 파티션에 VHD 파일이 위치할 [VHD] 폴더를 생성하고 그 안에 Win7.vhd VHD 가상 디스크 파일을 생성하여 시스템에 연결해야 합니다. 계속하여 다음의 명령을 치례로 내려줍니다. (이 때 명령에 포함된 C: 는 자신이 파악한 VHD 를 위치시킬 파티션의 드라이브 문자입니다.)
이제 윈도우 7 을 설치할 VHD 가상 디스크의 준비를 모두 마쳤습니다. 명령 프롬프트를 종료하고 새로 고침을 클릭하면 방금 생성하고 파티션까지 준비한 VHD 가상 디스크가 모습을 드러냅니다. 그곳에 윈도우 7 의 설치를 시작합니다.
나머지 윈도우의 설치 과정은 알아서 마치세요.
파티션의 준비를 모두 마쳤으면 VHD 를 생성하기 위해 Shift + F10 을 눌러 명령 프롬프트를 실행합니다.
명령 프롬프트가 실행되었으면 DiskPart 를 통해 VHD 를 위치시킬 파티션의 드라이브 문자를 정확하게 파악합니다. (디스크와 파티션 구성에 따라 드라이브 문자가 어떻게 배열되어 있을 지 모르기 때문입니다.) 이 때 파티션(볼륨)은 용량 등의 정보를 통해 구별하십시요. 다음의 명령을 차례로 내려줍니다.
diskpart
list volume
exit
exit
VHD 를 생성할 드라이브 문자를 파악했으면 이제 해당 파티션에 VHD 파일이 위치할 [VHD] 폴더를 생성하고 그 안에 Win7.vhd VHD 가상 디스크 파일을 생성하여 시스템에 연결해야 합니다. 계속하여 다음의 명령을 치례로 내려줍니다. (이 때 명령에 포함된 C: 는 자신이 파악한 VHD 를 위치시킬 파티션의 드라이브 문자입니다.)
md c:\vhd
└ C: 드라이브 루트에 [VHD] 폴더 생성. 이 때 C: 드라이브는 위에서 찾은대로 여러분에게 맞게 입력.
diskpart
└ C: 드라이브 루트에 [VHD] 폴더 생성. 이 때 C: 드라이브는 위에서 찾은대로 여러분에게 맞게 입력.
diskpart
create vdisk file="c:\vhd\win7.vhd" maximum=30720 type=expandable
attach vdisk
create partition primary
format fs=ntfs quick
exit
└ 30GB(30720MB) 짜리 VHD 가상 디스크를 C:\VHD\Win7.vhd 로 생성. 이 때 C: 드라이브는 여러분에게 맞게 입력하며 VHD 가상 디스크의 크기는 Maximum 에 MB 단위로 원하는대로 적절히 입력.attach vdisk
create partition primary
format fs=ntfs quick
exit
이제 윈도우 7 을 설치할 VHD 가상 디스크의 준비를 모두 마쳤습니다. 명령 프롬프트를 종료하고 새로 고침을 클릭하면 방금 생성하고 파티션까지 준비한 VHD 가상 디스크가 모습을 드러냅니다. 그곳에 윈도우 7 의 설치를 시작합니다.
나머지 윈도우의 설치 과정은 알아서 마치세요.
VARS VShot 2nd 에 필요한 윈도우 설정 정리
아래는 VARS VShot 을 원활하게 사용하기 위해 설정해야 하는 작업들입니다. 특히 1 번 사용자 계정 컨트롤을 끄는 것은 VARS VShot 의 모든 기능을 정상적으로 사용하기 위해 반드시 필요한 작업이니 꼭 꺼주셔야 합니다. [윈도우 8 도 제어판을 통한 기본 끄기만 하시면 됩니다. 레지스트리를 통한 완전히 끄기를 적용할 필요는 없습니다.]
1. 사용자 계정 컨트롤을 끕니다. [관련 포스팅]
2. 시스템 보호를 끕니다. [관련 포스팅]
3. C: 드라이브의 휴지통 기능을 끕니다. [관련 포스팅]
4. 사용자 폴더들을 VHD(C:) 가 아닌 일반 로컬 드라이브로 옮겨 줍니다. [관련 포스팅]
2. 시스템 보호를 끕니다. [관련 포스팅]
3. C: 드라이브의 휴지통 기능을 끕니다. [관련 포스팅]
4. 사용자 폴더들을 VHD(C:) 가 아닌 일반 로컬 드라이브로 옮겨 줍니다. [관련 포스팅]
VARS VShot 2nd - 설치 전
1. VARS VShot 은 VHD 에 설치한 윈도우로 부팅한 상태에서 설치해야 합니다. 멀티 부팅 유저라면 다른 윈도우에서 설치하시면 안 됩니다.
2. VARS VShot 은 원본이 되는 부모 VHD 만 준비하시면 됩니다. 나머지 자식 VHD 와 부팅 설정 등 필요한 모든 것을 자동으로 구성합니다.
3. [VARS] 폴더는 고정 디스크에 위치해야 합니다. USB 드라이브와 같은 이동식 디스크는 지원하지 않습니다.
4. [VARS] 폴더는 드라이브의 루트에 위치해야 합니다. 하위 폴더로 넣을 수 없습니다.
5. [VARS] 폴더는 기본 볼륨 드라이브에 위치해야 합니다. 동적 볼륨 드라이브에는 위치시킬 수 없습니다.
6. [VARS] 폴더는 드라이브 문자를 할당받은 곳에 위치해야 합니다. 드라이브 문자를 할당 받을 수 없는 OEM 파티션과 같은 곳에는 설치할 수 없습니다. 또한 이후 드라이브 문자를 변경하거나 제거하여도 안 됩니다.
7. [VARS] 폴더는 NTFS 로 포맷된 드라이브에 위치해야 합니다. FAT32 에서는 백업을 진행할 수 없습니다.
2. VARS VShot 은 원본이 되는 부모 VHD 만 준비하시면 됩니다. 나머지 자식 VHD 와 부팅 설정 등 필요한 모든 것을 자동으로 구성합니다.
3. [VARS] 폴더는 고정 디스크에 위치해야 합니다. USB 드라이브와 같은 이동식 디스크는 지원하지 않습니다.
4. [VARS] 폴더는 드라이브의 루트에 위치해야 합니다. 하위 폴더로 넣을 수 없습니다.
5. [VARS] 폴더는 기본 볼륨 드라이브에 위치해야 합니다. 동적 볼륨 드라이브에는 위치시킬 수 없습니다.
6. [VARS] 폴더는 드라이브 문자를 할당받은 곳에 위치해야 합니다. 드라이브 문자를 할당 받을 수 없는 OEM 파티션과 같은 곳에는 설치할 수 없습니다. 또한 이후 드라이브 문자를 변경하거나 제거하여도 안 됩니다.
7. [VARS] 폴더는 NTFS 로 포맷된 드라이브에 위치해야 합니다. FAT32 에서는 백업을 진행할 수 없습니다.
VARS VShot 2nd - 설치하기
가장 먼저 VHD 에 설치한 윈도우로 부팅합니다. 그리고 글에서 언급한 필요한 윈도우 설정을 모두 마칩니다.
이후 글의 시작 부분에서 다운로드 받은 VARS VShot Install - xxxxxx.zip 파일을 VARS 를 설치할 드라이브의 루트에 압축을 풀고, 윈도우 7 사용자는 VARS Install - Win7.cmd 파일을 윈도우 8 사용자는 VARS Install - Win8.cmd 파일을 실행하여 설치를 시작하시면 됩니다.
설치 과정은 현재 VHD 의 Type 과 원하는 VHD 운영 스타일만 선택해주시면 나머지 과정은 모두 자동으로 처리됩니다. 자세한 설치 과정은 아래와 같으며 간단하기 때문에 설명은 생략하도록 하겠습니다.
이후 바탕 화면에 생성된 VARS VShot 프로그램을 실행하시면 됩니다. 프로그램의 실행 모습은 설치시 선택한 운영 스타일에 따라 프로그램의 실행 모습이 조금씩 다르니 이를 통해 자신이 선택한 스타일로 정상 설치되었는지 확인하실 수 있습니다.
* 이미 다른 VHD 에 윈도우를 설치한 경우
만약 윈도우를 설치한 VHD 가 기본 셋팅값인 \VHD\Win7.vhd 또는 \VHD\Win8.vhd 가 아니라면 자신의 VHD 파일 상황에 맞게 설치 파일을 수정하신 후 설치를 진행하시면 됩니다. 만약 현재 윈도우가 설치된 VHD 파일이 D:\Test\Windows.vhd 라면 아래와 같이 수정하시면 되는 것이죠.
즉, 드라이브 문자는 자동으로 찾기 때문에 버리고 [D:\Test\Windows.vhd] 이렇게 경로와 파일 이름만 잘 넣어주시면 되는 겁니다. 이 부분은 윈도우 7 용과 윈도우 8 용 설치 파일 둘 모두 동일합니다.
만약 윈도우를 설치한 VHD 가 기본 셋팅값인 \VHD\Win7.vhd 또는 \VHD\Win8.vhd 가 아니라면 자신의 VHD 파일 상황에 맞게 설치 파일을 수정하신 후 설치를 진행하시면 됩니다. 만약 현재 윈도우가 설치된 VHD 파일이 D:\Test\Windows.vhd 라면 아래와 같이 수정하시면 되는 것이죠.
set VFP=\Test\
set VFN=Windows.vhd
set VFN=Windows.vhd
즉, 드라이브 문자는 자동으로 찾기 때문에 버리고 [D:\Test\Windows.vhd] 이렇게 경로와 파일 이름만 잘 넣어주시면 되는 겁니다. 이 부분은 윈도우 7 용과 윈도우 8 용 설치 파일 둘 모두 동일합니다.
* 예전 버전을 사용하고 있던 경우
예전 버전의 VARS VShot 을 사용하고 계시는 분들은 기존 버전을 제거하신 후 새로 설치하시면 됩니다.
01. 기존 버전 제거 작업 진행 -> 재부팅 후 제거 완료 메시지 출력 -> VARS 폴더 삭제
02. 새로운 버전의 VARS VShot 으로 다시 설치
만약에 원본 백업을 통해 VHD 파일을 백업 해둔 경우 예전 VARS 버전에 따라 기존의 백업 VHD 파일을 다시 사용할 수 있을 수도 있고, 다시 사용하지 못할 수도 있습니다. 그러니 깔끔하게 모두 지우시고 원본 백업도 다시 진행하시길 권장합니다.
예전 버전의 VARS VShot 을 사용하고 계시는 분들은 기존 버전을 제거하신 후 새로 설치하시면 됩니다.
01. 기존 버전 제거 작업 진행 -> 재부팅 후 제거 완료 메시지 출력 -> VARS 폴더 삭제
02. 새로운 버전의 VARS VShot 으로 다시 설치
만약에 원본 백업을 통해 VHD 파일을 백업 해둔 경우 예전 VARS 버전에 따라 기존의 백업 VHD 파일을 다시 사용할 수 있을 수도 있고, 다시 사용하지 못할 수도 있습니다. 그러니 깔끔하게 모두 지우시고 원본 백업도 다시 진행하시길 권장합니다.
* 닷넷 프레임웍을 필요로 하는 경우
윈도우 8 사용자는 설치 후 원클릭 프로그램의 실행에 .Net Framework 의 설치를 요구할 수 있습니다. 설치해주시면 됩니다.
윈도우 8 사용자는 설치 후 원클릭 프로그램의 실행에 .Net Framework 의 설치를 요구할 수 있습니다. 설치해주시면 됩니다.
* 보안 경고 - 파일 열기가 뜨는 경우
보안 정책에 따라 VARS VShot 의 주 파일들에서 보안 경고가 뜰 수 있습니다.(다운로드 받은 파일들에 대한) 이럴 때는 해당 메시지가 출력되면 이 파일을 열기 전에 항상 확인의 체크를 해제해주시면 됩니다.
또는 \VARS\System 폴더에 위치해있는 Change.exe(Change.cmd, Change.vbs), Check.cmd, PaBoot.cmd, ReBoot.cmd, Message1.vbs 파일들의 속성으로 들어가 차단 해제를 해주시길 바랍니다.
보안 정책에 따라 VARS VShot 의 주 파일들에서 보안 경고가 뜰 수 있습니다.(다운로드 받은 파일들에 대한) 이럴 때는 해당 메시지가 출력되면 이 파일을 열기 전에 항상 확인의 체크를 해제해주시면 됩니다.
또는 \VARS\System 폴더에 위치해있는 Change.exe(Change.cmd, Change.vbs), Check.cmd, PaBoot.cmd, ReBoot.cmd, Message1.vbs 파일들의 속성으로 들어가 차단 해제를 해주시길 바랍니다.
VARS VShot 2nd - 설치 후 관리시 주의 사항
1. 윈도우 7 용으로 설치 - 시작 프로그램
윈도우 7 용인 VARS Install - Win7.cmd 설치 파일로 설치를 진행한 경우 VARS_Start 라는 시작 프로그램이 등록됩니다. 해당 시작 프로그램을 사용 안 하거나 제거하는 경우 VARS VShot 이 정상적으로 작동하지 않으니 주의하시길 바랍니다. [* 최적화 프로그램 사용시 이를 정리하지 않도록 주의]
2. 윈도우 8 용으로 설치 - 작업 스케줄러
윈도우 8 용인 VARS Install - Win8.cmd 설치 파일로 설치를 진행한 경우 VARS_Start 라는 작업 스케줄러가 등록됩니다. 마찬가지로 해당 작업 스케줄러를 제거하면 VARS VShot 이 정상적으로 작동하지 않으니 주의하실 바랍니다.
특히나 윈도우 최적화 팁이라고 하여 윈도우 서비스에서 작업 스케줄러에 해당하는 Task Scheduler 서비스 자체를 꺼버리는 경우도 많은데 VARS VShot 이 이를 사용하기 때문에 절대 그러시면 안 됩니다.
3. 공통 - 시스템 변수
VARS 가 설치된 위치가 VARSDir 이라는 시스템 변수로 등록되어 있습니다. 원클릭 프로그램에서 사용하는 변수이니 삭제하시면 안 되며, 이 때문에 VARS 를 설치한 드라이브의 문자도 변경하시면 안 됩니다. [만약 드라이브 문자를 변경하시려면 이 환경 변수도 그에 맞춰 수정해주셔야 합니다.]
4. 공통 - 부팅 항목
VARS VShot 을 설치하고 나면 VARS VShot Core 라는 부팅 항목이 등록됩니다.
해당 부팅 항목이 실질적인 VARS VShot 의 본체이며, VARS 의 모든 기능들은 해당 부팅 항목을 통해 준비된 윈도우 PE 로 부팅하여 이루어지게 됩니다. 그렇기에 BCDEdit /Delete 나 MSCONFIG 를 통해서 해당 부팅 항목을 삭제하시면 절대 안 됩니다.
단! 삭제가 아닌 BCDEdit /Displayorder /Remove 명령을 사용하여 단순히 숨기는 것은 가능합니다.
bcdedit /displayorder {VShot GUID} /remove
하지만 이럴 경우 만일의 부팅 불능 상황이 발생하였을 때 윈도우를 복원할 방법이 없기 때문에 추천하지 않습니다.
VARS VShot 2nd - 전체 기능 일람
1. 기본 메뉴
2. 기능 메뉴
3. 코어 메뉴
새로운 기능 - VHD 최적화
주 목적은 동적 확장 형식을 사용하는 사용자를 위한 것으로 SDelete.exe 를 통해 VHD 의 공간을 제로필 한 후 Compact 작업을 진행하여 VHD 파일의 용량을 최적화하는 기능입니다. VARS 0.3 버전까지 기본 포함되어 있던 기능으로 원하시는 분들이 종종 계셔서 이번에 다시 추가하였습니다.
이러한 최적화 기능은 그 특성상 거의 동적 확장 형식을 사용하시는 분들에게만 필요하다고 볼 수 있는 기능이지만, 고정 크기 형식의 사용자가 사용하지 못하도록 제한하지는 않았습니다. 여러 가지 이유로 제로필 작업이 필요할 수도 있기 때문이죠. 다만 최적화 작업에 포함된 Compact 명령은 동적 확장 형식에서만 지원되기 때문에 고정 크기 형식인 경우 공간 제로필까지만 작업이 진행됩니다.
참고로 어떠한 원리로 작업이 이루어지는지에 대한 자세한 설명은 디스크와 파티션 관리하기 강좌에서 다룰 예정입니다. 해당 글의 작성이 완료되면 이곳에 링크로 연결해드리도록 하겠습니다.
새로운 기능 - VHD Type 설정
이번에 새롭게 추가된 기능입니다. 설치 당시 설정한 VHD 의 Type 설정을 변경합니다. 이렇게 Type 설정을 바꾼 후 원본(윈도우) 복원 작업을 진행하게 되면 해당 Type 으로 원본 VHD 를 재설정할 수 있습니다. 즉, [원본 백업 -> VHD Type 설정 -> 원본 복원] 의 세 단계를 거치면 현재 사용 중인 VHD 를 Expandable 에서 Fixed 로, 또는 Fixed 에서 Expandable 로 자유 자재로 바꿀 수 있는 것입니다. 간단하죠?
간단하게 예제를 보도록 하죠. 먼저 40GB 의 고정 크기 형식으로 원본 VHD 를 생성하여 윈도우를 설치하였고, 여기에 클리닝 스타일을 사용하고 있습니다. 당연히 원본 VHD 파일의 크기는 40GB 이겠죠? 자식 VHD 까지 확장되다 보니 생각보다 용량을 너무 많이 소모하네요. 원본 VHD 를 동적 확장 형식으로 변경하여 용량을 줄여보도록 하죠.
즉, Fixed -> Expandable 형식으로 원본 VHD 의 Type 을 바꿔보도록 하죠. 아래와 같이 작업하시면 됩니다.
01. 먼저 원클릭(메인 메뉴) -> 원본 백업(보관) 을 통해 원본 VHD 의 백업을 진행합니다. 만약 미리 백업해둔 게 있다면 굳이 다시 백업할 필요는 없습니다.
02. 백업을 완료하고 윈도우로 되돌아오면 기능 메뉴 -> VHD Type 설정 -> 동적 확장 형식 - 설정 선택을 통해 VHD 의 Type 설정을 변경해 줍니다.
03. VHD 의 Type 설정을 마쳤으면 그대로 메인 메뉴 -> 원본 복원(교체) 를 통해 원본 VHD 의 복원 작업을 진행합니다.
02. 백업을 완료하고 윈도우로 되돌아오면 기능 메뉴 -> VHD Type 설정 -> 동적 확장 형식 - 설정 선택을 통해 VHD 의 Type 설정을 변경해 줍니다.
03. VHD 의 Type 설정을 마쳤으면 그대로 메인 메뉴 -> 원본 복원(교체) 를 통해 원본 VHD 의 복원 작업을 진행합니다.
이렇게 작업을 마치고 나면 원본 VHD 의 용량이 아래와 같이 줄어든 것을 확인하실 수 있습니다.
어떤가요? 간단하죠? 마찬가지의 방식으로 Expandable -> Fixed 로 바꾸실 수 있습니다. 즉, 백업만 한 번 해두면 언제든지 Type 설정 변경 -> 복원을 통해 원본 VHD 의 형식을 원하는대로 바꿀 수 있는 것이죠.
참고로 동적 확장 방식의 VHD 일지라도 그 안에 담긴 윈도우로 부팅하면(즉, VHD 를 통해 부팅하면) 해당 VHD 는 무조건 고정 크기 형식과 동일하게 파일의 크기가 늘어납니다. 이후 부팅이 종료되면(윈도우를 종료하면) 다시 원래의 파일 크기로 되돌아가는 구조를 가지고 있습니다. 만약 자식 VHD 를 사용하는 경우 부모 VHD 에는 변화가 없고 해당 자식 VHD 만 확장 됩니다.
그렇기에 클리닝 스타일이 아닌 기본 스타일을 사용하시는 분들은 원본 VHD 자체로 부팅하기 때문에 이와 같은 VHD 부팅의 특성상 동적 확장 형식일지라도 부팅되면 고정 크기 형식과 같이 최대 크기로 파일의 크기가 확장된 상태이고, 그렇기에 단순히 윈도우에서만 확인하는 경우 VHD 파일의 형식이 Fixed <-> Expandable 로 변환된 것을 바로 확인할 순 없습니다. 하지만 형식이 변환된 것은 맞습니다.
그렇기에 클리닝 스타일이 아닌 기본 스타일을 사용하시는 분들은 원본 VHD 자체로 부팅하기 때문에 이와 같은 VHD 부팅의 특성상 동적 확장 형식일지라도 부팅되면 고정 크기 형식과 같이 최대 크기로 파일의 크기가 확장된 상태이고, 그렇기에 단순히 윈도우에서만 확인하는 경우 VHD 파일의 형식이 Fixed <-> Expandable 로 변환된 것을 바로 확인할 순 없습니다. 하지만 형식이 변환된 것은 맞습니다.
새로운 기능 - 코어 시스템의 응급 복원
기능을 이야기하기 전에 먼저 하나만 생각을 해보도록 하죠. 앞서 설명한 VHD Type 설정을 통해 원본 VHD 의 Type 을 변경하다 보면 예상치 못한 용량 부족 문제를 겪을 수도 있습니다. 이게 무슨 말이냐 하면요. VHD 가 위치한 파티션의 용량을 VHD 의 크기와 거의 비슷하게 맞춰서 굉장히 타이트하게 사용하시는 분들이 많습니다. 근데 동적 확장 + 클리닝 스타일을 사용하게 되면 자식 VHD 만 확장되기 때문에 고정 크기 + 클리닝 스타일을 사용하는 경우보다 공간에 좀 더 여유가 있죠. 그래서 그 약간의 여유 공간에 다른 것을 저장해두거나 아니면 VHD 의 최대 크기를 조금 늘려서 사용하는 경우가 종종 있습니다.
그런데 이러한 사실을 깜빡하고 원본 VHD 의 Type 을 고정 크기 형식으로 바꿔버리는 작업을(설정 변경 후 원본 복원) 진행하게 되면 어떻게 될까요? 만약 원본 VHD 가 고정 크기 형식으로 변경되면 VHD 가 위치한 곳의 여유 공간이 부족해지는 사실을 깜빡했다면?
작업 당시에는 자식 VHD 가 확장된 상태가 아니기 때문에 용량에 여유가 있어서 복원까지는 정상적으로 잘 이루어집니다. 하지만 윈도우로 부팅하려고 자식 VHD 가 확장하는 순간 공간 부족이 발생하고 그대로 블루 스크린을 보게 되는 것이죠.
그래서 이러한 경우에는 다시 복원 작업을 해도 소용이 없습니다. (또 고정 크기 형식으로 복원하기 때문에 동일 문제 발생) 근데 VARS VShot 의 백업은 앞서 말한 것과 같이 백업 공간의 용량을 절약하기 위해 항상 동적 확장 방식으로 저장을 합니다. 그래서 그렇게 백업되어 있는 VHD 백업본을 그대로 Copy 작업으로 가져오면 다행히 오류가 발생하기(공간이 부족한) 이전의 상태로 무사히 되돌아 갈 수 있는 거죠. 간단하죠?
더불어 사용자가 잊어버리고 또 복원을 진행했을 경우를 대비하여 변경했을 VHD Type 설정도 다시 동적 확장 방식으로 리셋시켜주면 좋겠죠? 그게 바로 코어 시스템에 새롭게 추가된 R 메뉴인 원본 VHD 응급 복원입니다. 간단하죠?
VARS VShot 2nd 의 소개를 마치며
여기까지입니다. 여러분들이 사용하시면서 대충 알아야 할 것들은 말이죠. 이 이상은 알 필요도 없고 몰라도 사용할 수 있게 쉽게 만들었다고 자부합니다. 솔직히 지금까지 설명한 내용들 전부 몰라도 VHD 에 윈도우만 설치할 줄 알면 설치해서 사용하는데에는 아무런 어려움이 없으실 겁니다. 다만 그냥 제작자로써 읽어 두시면 도움이 될만한 내용들을 좀 설명해 드렸을 뿐입니다. 그러니 보통의 사용자들은 여기까지만 읽으시면 됩니다.
잘 사용하세요. 제 바램은 그거 하나 뿐입니다. 이 아래부터는 몇 가지 안내 내용과 제작 노트입니다.
제작 노트 - VARS VShot EXE 컴파일 버전의 바이러스 오진 문제
VARS VShot 컴파일 버전의 \VARS\System 폴더에 포함된 Change.exe 파일은 CMD 배치 파일을 Bat to Exe Convert 1.6 이라는 공개 소프트웨어를 통해 컴파일한 것입니다.
하지만 이러한 배치 파일을 컴파일하는 경우 일부 백신 프로그램에서 바이러스로 오진하는 경우가 종종 있습니다. 파일 자체에 문제가 있는 것이 아니니 만약 백신에서 해당 파일을 바이러스로 검역한다면 바이러스가 아니라고 허용해주시면 됩니다.
참고로 아래는 바이러스 검사에 많이 애용되는 VirSCAN.org 사이트를 통해 미리 파일을 검사한 내역입니다.
해당 배치 파일을 EXE 로 컴파일한 이유는 단순합니다. 윈도우 8 에서는 배치 파일을 자동으로 관리자 권한으로 실행하기가 많이 어려워졌습니다. 정식 버전에선 어떻게 더 어려워질 지 장담할 수도 없습니다. 해당 배치 파일에 포함된 작업들은 관리자 권한이 필요하므로 반드시 관리자 권한으로 실행되어야 합니다.
그런데 그냥 배치 파일을 EXE 로 컴파일하면 EXE 파일 자체에 관리자 권한으로 실행되도록 설정해주는 것이 가능합니다. 간단하죠. 그래서 그냥 쉽게 가기로 했습니다. [그래놓고 CMD 버전까지 따로 제작... 쉽게 가자고 해놓고... 아놔 이놈의 성격...]
아무튼 EXE 로 컴파일된 배치 파일의 원본은 아래의 파일입니다. CMD 버전에 포함된 녀석과 동일한 녀석이니 그 속을 뜯어 보시고 살펴 보시고 씹어 보셔도 좋습니다.
그리고 배치 파일을 EXE 로 컴파일하면서 좀 더 있어 보이게 만들기 위해 추가한 아이콘 파일입니다.
최종적으로 해당 배치 파일을 EXE 로 컴파일한 프로그램은 무료 공개 프로그램인 Bat to Exe Convert 1.6 버전입니다.
작업은 32비트 버전을 통해 하였으며, 옵션 셋팅은 아래와 같이, 아이콘 파일만 추가하여 컴파일 했습니다. [실행시 보이지 않게(Invisible), 관리자 권한으로 실행(Administrator Manifest)]
EXE 버전을 사용하시면서 제가 만든 파일이 찝찝하거나 바이러스로 오진하여 의심이 가신다면 이렇게 직접 만들어 보시면 될 듯 합니다.
제작 노트 - VARS VShot Core
VARS VShot 의 핵심이자 본체라고 할 수 있는 \Boot\VARS.wim 은 윈도우 7 AIK 를 통해 제작한 기본 x86 버전의 PE 파일에(PE 3.1) 제 배치 파일에서 자주 사용되는 find.exe(find.exe.mui), findstr.exe(findstr.exe.mui), fc.exe(fc.exe.mui) 파일과 추가적으로 hide.exe 를 수동으로 추가한 녀석입니다.
구조는 매우 단순해서 winpeshl.ini 에서 VARS.wim 이미지의 \Windows\System32 폴더에 포함된 Core.cmd 파일을 실행하는 구조입니다. 해당 코어 배치 파일은 아래의 파일입니다.
해당 코어 파일은 굉장히 오랜 시간 버전업 하면서 기능들을 넣고 빼고 하다보니까 좀 많이 너저분한데요. 기본 구조는 다음과 같습니다.
1. 시스템의 C: ~ Z: 까지 모든 곳을 뒤져서 VARS 폴더를 찾습니다.
2. 찾은 VARS 폴더에서 ConVAR.cmd, ConVHD.cmd, ConVOC.cmd, GUID.cmd 환경 설정 파일을 call 로 읽어들입니다. 해당 파일들에는 작업에 필요한 여러 가지 정보들이 set 을 통해 변수로 선언되어 있습니다.
3. 이렇게 읽어들인 변수들을 토대로 제가 미리 짜둔 작업들을 자동으로 실행합니다.
2. 찾은 VARS 폴더에서 ConVAR.cmd, ConVHD.cmd, ConVOC.cmd, GUID.cmd 환경 설정 파일을 call 로 읽어들입니다. 해당 파일들에는 작업에 필요한 여러 가지 정보들이 set 을 통해 변수로 선언되어 있습니다.
3. 이렇게 읽어들인 변수들을 토대로 제가 미리 짜둔 작업들을 자동으로 실행합니다.
파일의 내용을 잘 뜯어보시면 아시겠지만 매우 기초적인 IF 구문과 GOTO, 그리고 약간의 FOR 구문으로만 제작된 매우 단순한 녀석입니다. 이거 있어? 그럼 절루가~ 이 변수가 이거야? 그럼 이거해! 딱 그 수준입니다. 뭔가 화려한 기교같은 건 전혀 찾아볼 수 없고, 단지 오랜 시간 축적된 IF 뺑뺑이 돌리기로 모든 걸 커버하고 있을 뿐입니다. 그래서 코드가 난잡하고 더럽게 길 뿐이죠. -_-; [심지어 비베닷넷으로 제작된 원클릭 프로그램도 딱 이 수준입니다. 그냥 대충 무료로 제공되는 Express 버전 설치해놓고 구글신과 함께 작업에 필요한 부분만 대충 찾아서 적용해보는 방식으로 배워서 -_-;]
그래서 사실 이 녀석을 뜯어보아도 뭔가 크게 배울 부분이 있거나 참고할 만한 부분은 솔직히 없을 겁니다. 그래도 뭔가 건져낼 것이 있을지도 모르니 심심하시면 마찬가지로 뜯고 씹고 살피고 버리시면 될 듯 합니다.
제작 노트 - 설치 배치 파일
코어 배치 파일과 마찬가지로 설치 배치 파일도 굉장히 난잡합니다. [제가 코드고 뭐고 정리를 잘 안 하는 편이라...] 그나마 나름 주석도 달아놨으니 이건 좀 살펴보기 편하실 겁니다. 주 작업은 부팅 등록과 필요한 설정들을 담을 ConVAR.cmd 와 같은 환결 설정 파일들을 생성하는 것입니다. 설치 파일에서 바로 보실 수 있으니 Core 배치 파일과 함께 뜯고 씹고 맛보고 즐기시면 될 듯 합니다.
참고로 생성한 부팅 항목의 GUID 를 추출하는 아래와 같은 구문이 있습니다.
for /f "tokens=1-5 delims=-" %%a in (guid.tmp) do (
set fst=%%a
set lst=%%e
set guidR=!fst:~-9!-%%b-%%c-%%d-!lst:~0,13!
)set lst=%%e
set guidR=!fst:~-9!-%%b-%%c-%%d-!lst:~0,13!
해당 코드는 제가 짠 것이 아니라 스누피박스(http://snoopybox.co.kr)의 스누피님께서 공개하신 배치 파일에 포함되어 있던 것으로, 윈도우의 언어에 상관없이 GUID 를 추출할 수 있습니다. 굉장히 매력적이죠.
다만 죄송스러운 점은 예전에 문득 지나가다가 해당 구문을 보고 너무나 유용하다고 판단하여 따로 노트에 적어뒀던 것이라 정확하게 어떤 포스팅의 어떤 배치 파일을 참고 했었던 것인지 까지는 기억이 나질 않네요. 이러한 연유로 정확한 링크를 걸어드리지 못한 점은 이해를 부탁드립니다.
제작 노트 - 변화된 백업과 복원 작업에 대한 설명
이전 버전까지는 백업을 Copy(XCopy) 를 통해서만 작업을 했습니다. 즉, 아주 단순하게 아래와 같은 식이죠.
원본 설정 : C:\VHD\Win8.vhd
백업 설정 : D:\VARS\Win8.vhd
백업 설정 : D:\VARS\Win8.vhd
백업
copy /y "C:\VHD\Win8.vhd" "D:\VARS\Win8.vhd"
복원
copy /y "D:\VARS\Win8.vhd" "C:\VHD\Win8.vhd"
* 깨끗한 자식 VHD 파일도 함께 백업하고 이를 통해 깨끗한 자식, 자식 1, 자식 2 를 모두 복원하는 과정도 마찬가지로 Copy 로 이루어지기에 이는 생략하였습니다.
뭐 약간의 기교를 부린다고 XCopy 를 사용한 부분도 있지만 어디까지나 기본 내용은 Copy 와 동일합니다. 그런데 제 예상 외로 VHD 를 고정 크기 형식을 사용하시는 분들이 많았습니다. 이런 경우 단순 Copy 로 작업을 하게 되면 VHD 파일의 용량이 굉장히 크기 때문에 백업에 굉장히 많은 공간이 필요하고 시간도 오래 걸리게 됩니다.
그래서 약간 생각을 달리하여 DiskPart 에 포함된 복제 기능인 Create Vdisk Source 작업으로 백업과 복원 작업들을 바꿔 주었습니다. [참고 - [DiskPart] VHD 가상 디스크 복제하기 - Create Vdisk Source] 이를 위해 Type 변수를 새로이 받은 것이고요.
원본 설정 : C:\VHD\Win8.vhd
백업 설정 : D:\VARS\Win8.vhd
형식 설정 : Fixed
백업 설정 : D:\VARS\Win8.vhd
형식 설정 : Fixed
백업
del "D:\VARS\Win8.vhd" /q
diskpart
diskpart
create vdisk file="D:\VARS\Win8.vhd" source="C:\VHD\Win8.vhd" type=Expandable
exit
exit
복원
del "C:\VHD\Win8.vhd" /q
diskpart
diskpart
create vdisk file="C:\VHD\Win8.vhd" source="D:\VARS\Win8.vhd" type=Fixed
exit
exit
* 파일이 있으면 삭제하는 형식으로 작업을 하였지만 어쨌든 기본 구조는 위와 같습니다. 더불어 이와 같이 Source 매개 변수를 통해 복제한 경우 이전의 자식 VHD 가 정상적으로 인식되지 않습니다. 그렇기에 이 경우엔 자식 VHD 들을 단순 Copy 하는 것이 아닌 DiskPart 를 통해 새로 생성하는 방법을 사용해야 합니다.
즉, 백업은 항상 Expandable 형식으로 고정하여 작업을 진행함으로써 원본 VHD 를 Expandable 형식으로 사용하나 Fixed 형식으로 사용하나 백업에 필요한 시간과 백업 용량은 동일한 효과를 얻을 수 있고, 복원은 미리 입력 받아서 저장해놓은 Type 설정값을 통해서 그 때 그 때 사용자가 사용하는 방식에 맞춰 Type 매개 변수를 지정해 줌으로써 사용자의 VHD 설정을 유지해주는 것이지요.
물론 기존의 자식 VHD 가 사용 불가해지기 때문에 이와 같이 복제한 후 다시 자식 VHD 들을 재생성해주어야 하는 불편은 있지만 그것은 코드에 몇 줄 더 넣는 제작자인 저의 불편이지 사용하시는 여러분들은 느끼지 못하는 부분이니 크게 문제될 것은 없습니다.
아무튼 이와 같이 백업과 복원을 Copy 작업에서 DiskPart 작업으로 변화를 줌으로써 저~ 앞에서 설명한 것과 같이 원본 VHD 의 Type 을 원할 때마다 손쉽게 바꿀 수 있는 기능도 좀 더 간편하게 가능해졌습니다. 원래는 해당 기능을 따로 독립적인 기능으로 넣어볼까 하고 예전부터 생각은 하고 있었는데요. 백업 공간도 타이트하게 사용하시는 분들이 많아 임시 공간 설정 등의 문제로 넣지 않고 있었는데 이번에 뭐 백업과 복원 구조를 바꾸면서 손쉽게 잘 되었네요.
그리고 앞서 말한 것과 같이 응급 복원이라고 하여 혹시나 만약에 발생할 지 모르는 복원 실패를 대비하여 예전의 Copy 방식으로 복원 작업을 진행하는 것도 따로 Core 메뉴에 추가하였고요. 이정도면 충분히 대비한 것 같은데 어떨련지 모르겠네요.
제작 노트 - 원클릭 프로그램
원클릭 프로그램의 구조에 대해서 뭔가 도움이 될만한 이야기를 해드리고 싶지만, 앞서 이야기 한 것과 같이 제가 비주얼 베이직 닷넷을 무작정 설치만 해놓고 구글신과 함께 정보들을 검색하는 방법으로 배웠고, 프로그램을 어떻게 어떤 구조로 짜야하는지도 잘 모르고... 혼자 그냥 이것저것 생각하면서 여러 가지 시도(?) 비슷하게 만든거라... 굉장히 허접하고 좀 많이 변태스럽습니다. 딱! VARS 와 GARS 의 작업들을 마우스 클릭으로 할 수 있게만 만들자가 목표였기도 하고요.
얼마나 허접하고 경악스럽냐면요. 아래는 어떤 버튼에 작업을 처리하는 부분인데요.
제가 비베닷넷에서 파일 처리 같은 걸 어떻게 해야 하는지 그런 걸 전혀 알지 못해서 말이죠. 찾아낸 건 Shell 을 통하면 일반 명령들을 실행할 수 있다기에 이를 응용해서 CMD 명령을 실행하는 방식으로 작업을 했습니다. 즉, 비베닷넷으로 CMD 배치 파일을 짜고 앉아 있었습니다. 솔직히 말해서 제가 작업하다 생각해도 이게 지금 뭐하는 짓인가? 라는 생각이 들 때도 많습니다.
그러니까 몽둥이로 사냥감을 때려 잡고 있는게 안타까워서 공짜로 쓸만한 사냥용 라이플을 쥐어 줬더니 오~ 굿! 하면서 여전히 라이플로 때려 잡고 있더란 말이죠. [그걸로 쏘란 말이야... 때려 잡지 말고...] 딱 이게 현재의 제 실력이고 원클릭 프로그램의 수준입니다. 말씀드렸다시피 아무런 도움도 안 되고 황당한 구조이죠. ㅎㅎㅎ
그래서 단순한 코더 수준에도 못 미치는 허접한 실력인지라 여기에 대해 저에게 물어보시면 전 아무 것도 대답을 해 드릴 수 없습니다. ^^;; 슬프지만 이 부분에서는 제가 어떻게 여러분들께 큰 도움을 드리지는 못하겠네요.
제작 노트를 마치며
어떻게 도움이 되셨는지 모르겠네요. 이 외에도 기존 버전에서 몇 가지 작업들을 좀 더 최적화하고 약간씩 다듬었습니다. 그런 자잘한 부분들까지 모두 설명드리기엔 좀 그렇죠. ^^;
참고로 현재는 EXE 컴파일 버전을 기본이라고 제공을 해드리고 있는데요. 일단 이건 한시적으로 기본으로 제공하고 만약 윈도우 8 정식 버전이 출시되고 그 때에도 단순 CMD 가 아무런 문제가 없다면 EXE 컴파일 버전은 사라질 겁니다. 괜한 바이러스 오진으로 오해를 받긴 싫기 때문이죠. 다만 아직 RP 버전이고 최종적으로 어떻게 될 지 모르기에 일종의 보험의 성격으로 놔두도록 하죠. 뭐... 제 성격이니 그냥 그러려니 해 주세요. ^^;
너무 길어진 듯 하네요. 이만 줄이도록 하겠습니다. 잘 사용하세요. ^^
p.s ITcraft 님께서 요청하신 PE 의 배경 화면입니다. (오리온 성운)
_M#]