[윈도우 8] Windows To Go(WTG, 윈도우 투 고) - 자동 설치 배치 파일
Windows To Go 란?
예전에 윈도우 PE 에 대해서 이야기를 한 적이 있었죠? 윈도우 PE 가 무엇이었나요? 윈도우 PE 란 윈도우 사전 설치 환경으로 윈도우 설치에 활용하기 위한 어느 컴퓨터에서나 부팅할 수 있는 작은 윈도우라고 하였습니다. 원래 태생은 그렇고 이제 간단한 프로그램 정도는 실행할 수 있기에 써드 파티 프로그램의 복원이나 간단한 시스템 관리 툴을 탑재하는 용도로 많이 사용되고 있습니다. 아무튼 윈도우 PE 는 이러한 목적으로 개발된 것이다 보니 기능이 매우 제한적입니다.
하지만 이러한 제한 속에서 윈도우 PE 를 좀 더 쉽고 강력하게 활용하기 위해 많은 분들이 다양한 방식으로 커스터마이징하였고, 그를 통해 거의 윈도우와 비슷하게 환경을 구축한 버전들도 종종 보이곤 하죠. 그러한 버전들은 굉장히 편리했지만 그래도 어쩔 수 없는 PE 기반인지라 어느 정도 한계는 있었습니다.
그런데 윈도우 8 에는 Windows To Go 라는 기능이 새롭게 추가되었습니다. 이게 사실 그동안 많은 분들이 염원하던 기능인데요. 이게 안 되서 윈도우 PE 를 이리 쑤시고 저리 쑤셔서 커스터마이징을 했던 거라고 할 수 있습니다.
자~ 그렇다면 Windows To Go 란 무엇이냐? 한 마디로 윈도우를 그냥 USB 이동식 저장 장치에 설치해서 들고 다니는 겁니다. 이렇게 USB 이동식 저장 장치에 설치된 윈도우는 일반적인 로컬 디스크에 설치한 윈도우와 똑같습니다. 프로그램은 물론 드라이버도 설치할 수 있죠. 완전히 똑같습니다. 그냥 윈도우에요. 단지 USB 메모리나 USB 외장 하드에 설치했을 뿐입니다.
이게 끝이냐? 이렇게 USB 이동식 저장 장치에 설치된 윈도우는 윈도우 PE 처럼 어느 컴퓨터에나 연결하여 바로 사용할 수 있습니다. 그러니까 그냥 윈도우를 통채로 들고 다니면서 마음대로 사용하는 거죠. 굉장히 매력적이지 않나요?
Windows To Go 구축 이해하기
Windows To Go 의 구축은 별거 아닙니다. 아래의 내용만 기억하세요.
1. USB 외장 하드(USB 메모리)에 윈도우를 설치할 수 있도록 NTFS 로 포맷하고 부팅 가능하게 만든다. 2. USB 외장 하드에 윈도우를 설치한다. 3. USB 외장 하드로 부팅한다.
끝입니다. 정말로요. 이거 말곤 없어요. 그럼 시작하죠. ^^
Windows To Go - USB 외장 하드에 윈도우 8 설치하기
1. 사전 준비물
윈도우 8 의 설치 이미지를 곧바로 풀어줄 수 있는 ImageX.exe 만 준비하시면 됩니다. 아래 파일을 다운로드 받으셔서 어디에서든 실행할 수 있도록 C:\Windows\System32 폴더에 넣어두세요.
그 외에 BCDBoot 나 DiskPart, 좀 더 뒤에서 BCDEdit 작업도 진행해야 하니 윈도우 7 이나 윈도우 8 이 설치된 컴퓨터에서 작업하시는 걸 추천합니다. 그래서 일단 관련된 작업들이 힘든 윈도우 XP 사용자는 배제하도록 하겠습니다.
그리고 최종적으로 USB 외장 하드로 부팅하였을 때 설치를 마무리 짓기 위해 제품 키가 필요하니 아래의 제품 키를 미리 다른 곳에 적어 두시면 됩니다.
TK8TP-9JN6P-7X7WW-RFFTV-B7QPF
2. USB 외장 하드(USB 메모리)의 준비
일단 윈도우를 설치할 충분한 용량의 USB 외장 하드나 USB 메모리를 준비해야 합니다.
참고로 USB 메모리보다는 USB 외장 하드가 좋습니다.
이게 왜 그러냐면요.
말 그대로 USB 저장 장치 그 자체에서 윈도우가 돌아가는 거라 그렇습니다.
Read 는 문제가 안 되는데요. 아시다시피 윈도우는 구동되는 순간부터 끊임없이 Write 작업을 수행합니다.
그래서 저가형의 TLC 셀을 사용한 플래시 방식의 USB 메모리는 이 Write 작업을 감당하기가 힘듭니다.
그러니까 이건 성능의 문제가 아니라 USB 메모리가 사느냐 죽느냐의 문제가 됩니다.
그래서 USB 메모리를 사용하실 거라면 윈도우의 잦은 Write 를 견딜 수 있는 최소 MLC 나 SLC 급의 USB 메모리를 준비하시는 게 좋습니다.
근데 보통의 USB 메모리에서도 SSD 와 같이 각 셀이 사용된 횟수를 기록, 최대한 분산 저장하여 셀의 수명을 늘려주는 웨어 레벨링 기능을 지원하는지 살짝 헷갈리는데요.
안 그런다면 MLC 나 SLC 더라도 수명을 장담하긴 좀 그렇겠네요.
아무튼 그래서 Widnwos To Go 에는 HDD 방식의 USB 외장 하드가 좋습니다.
대충 2.5인치 급이 효율적이지 않을까 생각하네요.
참고로 3TB 급의 외장 하드는 GPT 로 사용되는지 MBR 로 사용되는지 정확하게 모르겠는데요.
아무튼 이번 글에서 3TB 급의 외장 하드는 제외하도록 하겠습니다.
아래의 내용들은 2TB 이하 급에서만 해당하는 설명입니다.
자 이제 잡설은 그만하고 그럼 준비한 USB 외장 하드(USB 메모리)를 시스템에 장착합니다.
그리고 드라이브 문자를 파악합니다.
저 같은 경우에는 G: 드라이브네요.
자 이제 중요한데요. 이 USB 외장 하드를 부팅 가능하게 그리고 윈도우 8 을 설치할 수 있게 만드려면 USB 외장 하드의 파티션이 주 파티션이어야 하고 NTFS 로 포맷되어 있어야 합니다. 거기에 더해 보통 MBR 기본 디스크겠죠?[EFI 부팅을 할 게 아니라면] 이 세 가지 조건이 맞으면 그냥 파티션을 활성화만 해주고, 부트 섹터만 NT60 형식으로 수정해주면 됩니다. 그럼 부팅할 수 있습니다.
근데 귀찮잖아요? 그러니까 여기에서는 그냥 외장 하드를 깨끗하게 정리하고 처음부터 새로이 구성하는 것을 기준으로 잡겠습니다. 그게 확실하니까요. 먼저 USB 외장 하드의 중요한 데이터는 백업하세요. 아래의 작업을 진행하면 USB 외장 하드의 데이터가 모두 사라집니다.
USB 외장 하드 - G:
01. 명령 프롬프트를 관리자 권한으로 실행한 후 아래의 DiskPart 작업을 진행합니다.
diskpart
select volume=G clean create partition primary format fs=ntfs quick label=WTG-Disk active assign letter=G exit
이 때 G: 드라이브는 여러분의 외장 하드 드라이브입니다. 반드시 여러분에게 맞게 입력하세요. 레이블도 여러분이 해당 USB 외장 하드를 식별할 수 있게만 적절히 적어주시면 됩니다. 물론 레이블은 생략하시고 format fs=ntfs quick 으로 작업하셔도 아무런 상관은 없습니다.
그러면 아래와 같이 부팅 가능한 USB 외장 하드가 준비됩니다.
USB 외장 하드의 준비는 이게 끝입니다. 간단하죠?
각 작업들에 대해서 좀 설명을 드릴께요. 일단 Clean 작업에서 디스크가 깨끗하게 정리됩니다. 아무 것도 없는 상태가 되죠. 그런 후 Create Partition Primary 작업을 진행하면 파티션을 만들기 위해 자동으로 해당 디스크가 MBR 디스크로 초기화되면서(2TB 이하 기준) 깨끗한 초기 상태의 MBR 이 생성되고, 부팅에 필요한 주 파티션이 통으로 생성됩니다. 이후 Format fs=NTFS Quick 작업을 하면 현재 포맷을 진행하는 시스템이 윈도우 7(또는 비스타나 8) 이기 때문에 해당 주 파티션의 부트 섹터가 자동으로 BOOTMGR 을 찾는 NT60 형식으로 초기화 됩니다. 그리고 최종적으로 해당 파티션에 Active 를 걸어주어 활성화하는 거죠.
활성화된 주 파티션, 기본 MBR Boot Code, NT60 형식으로 설정된 부트 섹터, DiskPart 작업으로 이 세 가지가 모두 갖추어진 거죠. 그럼 이제 BOOTMGR 부트 매니저만 설치해서 구성하면 해당 USB 외장 하드로 부팅할 수 있습니다. 이걸 위해 DiskPart 작업을 한 것이고, 이 세 가지를 위한 가장 간단하고 확실한 방법이 바로 지금 알아 본 것과 같이 DiskPart 를 통해 디스크를 통채로 정리하고 그냥 처음부터 구성하는 겁니다. 다른 방법을 사용하시더라도 이 세 가지만 맞춰주시면 됩니다.
3. 윈도우 8 설치 - Install.wim 이미지 풀어주기
자 이제 부팅할 수 있도록 준비된 USB 외장 하드에 윈도우 8 설치 이미지를 직접 풀어주는 방식으로 윈도우를 설치할 겁니다. 이처럼 Install.wim 이미지 파일을 직접 풀어서 설치하는 작업에는 ImageX 가 필요하고, 그래서 제일 처음에 해당 파일을 제공해 드린 겁니다. 제가 말한대로 C:\Windwos\System32 폴더에 해당 파일을 넣어두시면 어디에서든 사용 가능하니 그렇게 두시고요.
이제 윈도우 8 설치 DVD 를 준비합니다. 보통 ISO 파일 형태로 가지고 계실텐데 가상 CD-ROM 에 장착하거나, 압축을 풀거나 뭐 편한대로 준비하세요. 저는 H: 드라이브에 윈도우 8 설치 DVD 를 준비했습니다.
이제 우리에게 필요한 건 \Sources\Install.wim 파일입니다. 저 같은 경우에는 H:\Sources\Install.wim 이 되겠죠? 만약에 ISO 파일의 압축을 풀어서 준비했다면 아래의 작업에서 Install.wim 파일의 전체 경로를 적절히 자신에게 맞춰야 합니다. [Install.wim 파일만 특정 드라이브의 루트로 복사해두고 해당 파일로 작업하셔도 됩니다.]
다음으로 Install.wim 파일에는 이미지가 하나만 들어있는 게 아닙니다. 원래 각 에디션의 개수만큼 이미지가 들어있죠. 그리고 그러한 각 에디션의 이미지들은 1 번 이미지, 2 번 이미지, 3 번 이미지... 같이 인덱스 번호라는 것으로 지정되어 있고 이를 통해 에디션을 구별합니다.
그런데 지금 글을 쓰는 시점의 윈도우 8 은 RP 버전이고, 32비트 버전이나 64비트 버전 모두 이 RP 에디션 하나 밖에 들어있지 않습니다. 그래서 32비트 버전이나 64비트 버전이나 모두 이미지 인덱스는 1 이 됩니다. [나중에 정식 버전이 나오고 WTG 를 지원하는 에디션이 정확하게 어떻게 될 지 현재는 모릅니다. 아무튼 정식 버전이 나오면 이 인덱스 번호는 분명 달라질 겁니다.]
그럼 작업에 필요한 내용들을 정리할께요.
USB 외장 하드 - G: 윈도우 8 DVD - H: [H:\Sources\Install.wim] 이미지 인덱스 - 1
필요한 준비를 모두 마쳤으면(ImageX 준비까지) 아래의 작업을 진행하여 윈도우 8 을 USB 외장 하드에 설치합니다.
01. 명령 프롬프트를 관리자 권한으로 실행한 후 다음의 ImageX 작업을 진행합니다.
imagex /apply H:\Sources\Install.wim 1 G:\
그러면 아래와 같이 USB 외장 하드에 윈도우 8 이 설치됩니다.
이제 마지막으로 이렇게 설치된 윈도우 8 에 대한 부팅을 구성하면 됩니다.
4. USB 외장 하드에 부팅 구성하기
현재는 윈도우가 설치만 되었을 뿐 아직 부팅은 구성되지 않은 상태입니다. 이제 BCDBoot 를 통해 이렇게 USB 외장 하드에 설치된 윈도우에 대한 부팅을 USB 외장 하드에 구성할 겁니다. 중요합니다. USB 외장 하드 자체에 부팅을 구성하는 겁니다. 그래야 어느 컴퓨터에서든 부팅할 수 있을테니까요. 그러니 이 과정을 마쳐야 USB 외장 하드에 설치된 윈도우 8 으로 부팅할 수 있습니다.
일단 제가 제일 처음에 참고했던 외국의 자료에선 BCDBoot 작업에서 /f ALL 매개 변수를 주어서 BIOS 부팅 구성에 EFI 부팅 구성까지 함께 구성을 하던데요. [/f BIOS, /f EFI, /f ALL] 현재 글에선 EFI 부팅은 사용하지 않고 논외로 칠 것이기에 이에 대한 구성은 안 할 겁니다. 참고하세요.
아무튼 이제 다음의 작업을 진행하여 USB 외장 하드에 BOOTMGR 부트 매니저를 설치하고 설치된 윈도우 8 에 대한 부팅 항목을 구성합니다.
USB 외장 하드 - G:
01. 명령 프롬프트를 관리자 권한으로 실행한 후 다음의 BCDBoot 작업을 진행합니다.
bcdboot G:\Windows /l ko-KR /s G:
로케일은 한국어 기준입니다.
그러면 USB 외장 하드에 기본 바이오스 부팅 구성인 [BOOT] 폴더 및 기타 필요한 부팅 파일이나 설정 등이 모두 자동으로 구성됩니다. [해당 파일들의 확인은 시스템 파일 및 숨김 파일을 볼 수 있도록 설정해야 합니다.]
모든 작업이 끝났습니다. 이제 USB 외장 하드로 부팅하여 나머지 윈도우에 필요한 제품 키를 입력하고 사용자 계정에 대한 설정만 마치시면 됩니다.
5. USB 외장 하드로의 부팅 및 윈도우 설치 과정 완료
이제 시스템을 종료하고 지금까지 준비한 USB 외장 하드로 부팅을 진행합니다.
피처폰이라 화질 죄송...
참고로 현재 이미지를 직접 풀어주는 방식으로 설치를 진행하였고 윈도우 8 RP 버전이기 때문에 아래와 같은 제품 키를 입력해야 합니다. 제품 키는 미리 말씀드렸죠?
과정 중간 시스템의 재부팅 과정이 포함됩니다. 재부팅되면 다시 USB 외장 하드로 부팅을 하시면 됩니다. 아무튼 그 외 나머지 설치 과정은 윈도우 8 릴리즈 프리퓨의 설치 과정 살펴보기 글을 참고하시고요. 이번 글에서는 생략하도록 하겠습니다.
6. Windows To Go 설치 완료
설치를 완료하시면 로컬 디스크에 설치한 윈도우와 모든 게 동일합니다. 그러니 똑같이 사용하시면 됩니다. 만약에 사용자 계정으로 Microsoft 계정을 사용하시면 기존 윈도우와 설정이 동기화되니 더욱 편리하겠죠.
참고로 로컬 디스크에 설치된 윈도우와 모두 동일하다고 했죠? 그래서 윈도우가 설치된 USB 외장 하드가 C: 드라이브가 됩니다. 이점 기억하시고요.
그리고 32 비트 버전의 경우엔 로그인시 표시해주지 않던데 64 비트 버전의 경우엔 로그인시 아래와 같이 표시해주더군요.
즉, USB 외장 하드에 설치된 윈도우를 사용 중이기 때문에 사용 중간 USB 외장 하드를 임의로 분리하지 말라는 의미입니다. 실수로 USB 외장 하드를 분리하였다 할 지라도 1 분 이내에 다시 연결하면 그대로 사용이 가능하며 만약에 1 분이 지나면 자동으로 시스템이 종료됩니다.
이제 이렇게 준비된 윈도우에 프로그램이나 기타 필요한 드라이버 등을 설치하여 사용하시면 됩니다. 즉, 평상시 윈도우 사용하던 그대로 사용하시면 되는 겁니다. 그리고 이렇게 프로그램 등의 설치를 모두 완료하고 본인에 맞게 셋팅이 완료되었으면 USB 외장 하드를 가지고 다니면서 아무 컴퓨터에나 연결하여 부팅하면 그대로 사용을 할 수 있습니다. 굉장히 매력적이죠?
참고로 이렇게 Windows To Go 에 설치한 하드웨어 드라이버는 해당 컴퓨터에서만 작동 합니다. 즉, 서로 다른 컴퓨터에 연결할 때마다 서로 다른 드라이버를 가져온다는 것이죠. 그래서 사용할 컴퓨터마다 연결한 후 모두 드라이버를 설치해 두시면 연결된 컴퓨터에 맞게 드라이버가 자동으로 구성됩니다.
다음으로 윈도우의 셋팅에 관한 것은 제가 크게 이야기할 부분은 아닌 것 같고요. 다만 가지고 다니면서 한 번씩 사용하는 용도의 특성상 최대 절전 모드와 시스템 복원 기능은 기본적으로 꺼져 있습니다. [Http://technet.microsoft.com/library/hh831833.aspx] 뭐 딱히 켤 필요도 없을거라 생각되고요. 그 외의 설정은 개인의 판단에 맡기겠습니다. 적절히 최적화 해보세요.
그리고 이것이 참고가 될 지 모르겠지만 제 시스템의 경우 키보드 및 마우스가 모두 USB 입니다. 그런데 이게 USB 외장 하드로 부팅하는 과정에서 충돌을 일으켰는지 키보드나 마우스가 안 먹히는 증상이 한 번 생기더군요. 다시 시스템을 완전히 끄고 재부팅하니 정상적으로 연결되었습니다. 그것 외에는 별다른 문제를 발견하지는 못햇습니다.
좀 길게 설명을 했지만 Windows To Go 별거 아니죠? 그냥 윈도우 8 설치할 때랑 똑같고 단지 그걸 USB 외장 하드(USB 메모리)에 설치했을 뿐입니다. 개념은 매우 단순하지만 그동안 많은 분들이 바래왔던 기능이고 잘만 활용하면 매우 유용한 기능이 되리라 믿어 의심치 않습니다.
VHD 가상 디스크에 Windows To Go 설치하기
Windows To Go 를 VHD 에 설치할 수 있을까요? 일단 저는 가능했습니다. 즉, USB 외장 하드 안에 VHD 가상 디스크를 생성하고 그곳에 윈도우 8 을 설치하는 게 가능하더군요. 그래서 아마 기본적으로 Windows To Go 가 VHD 까지 지원하도록 설계된 것이 아닌가 생각합니다. [테크넷에는 그런 설명이 없어서...] 뭐 Bitlocker 도 지원을 하는데 이정도는 지원을 해줘야 겠죠? 아니라면 아예 부팅조차 안 되었을테니까요. 그냥 그렇게 생각하자고요.
1. VHD 에 Windows To Go 설치하기
지금까지 설명했던 것과 동일하게 USB 외장 하드를 G: 드라이브라고 놓고 작업을 풀어나가도록 하겠습니다. 그리고 윈도우 8 설치 DVD 는 H: 드라이브에 장착하겠습니다.
작업은 아직 USB 외장 하드가 부팅 가능하게 준비되지 않았다는 가정하에 앞에서와 마찬가지로 DiskPart 의 Clean 작업을 시작으로 깨끗하게 정리하여 구성하는 것으로 시작하도록 하겠습니다. 참고로 VHD 의 준비는 좀 더 빠른 로컬 디스크에서 모두 구성한 후 마지막에 USB 외장 하드로 옮겨도 되고, 그냥 USB 외장 하드에서 바로 작업을 해도 됩니다. 저는 후자로 가겠습니다.
VHD 파일은 USB 외장 하드 루트에 위치해도 되고 영문으로만 구성된 폴더를 만들어 그 아래에 위치시켜도 됩니다. 관리나 구성의 깔끔함은 후자가 낫겠죠? 그래서 저는 루트에 VHD 라는 폴더를 만들고 그 안에 VHD 파일을 넣는 것으로 하겠습니다. 이 때 VHD 파일의 이름은 WTG.VHD 로 하고 (안의 파티션은) V: 드라이브로 연결하죠.
정리하면 아래와 같습니다.
USB 외장 하드 |
G: |
윈도우 8 이미지 |
H:\Sources\Install.wim |
이미지 인데스 |
1 |
VHD 파일 |
G:\VHD\WTG.vhd |
가상 디스크 |
V: |
ImageX 같은 건 미리 준비하시고 작업은 한 호흡에 가도록 하겠습니다. 숙지하셨고 모든 준비를 마치셨으면 관리자 권한으로 명령 프롬프트를 실행하고 다음의 작업을 진행합니다. [가상 디스크의 용량이나 타입, 레이블은 원하는대로.]
diskpart
select volume=G clean create partition primary format fs=ntfs quick label=WTG-Disk active assign letter=G exit
md G:\VHD
diskpart
create vdisk file="G:\VHD\WTG.vhd" type=expandable maximum=30720 attach vdisk create partition primary format fs=ntfs quick label=WTG-VHD assign letter=V exit
imagex /apply H:\Sources\Install.wim 1 V:\ bcdboot V:\Windows /l ko-KR /s G:
USB 외장 하드에[G:] VHD 가상 디스크를[G:\VHD\WTG.vhd] 만들고 설정한 후 연결하여[V:] 윈도우를 풀어주고[H:\Sources\Install.wim -> V:\] 그렇게 풀어준 윈도우의[V:\Windows] 부팅 항목을 USB 외장 하드에 구성해주면[G:] 되는 겁니다. 드라이브 문자가 자칫 헷갈릴 수 있기에 색을 칠해 놓았으니 헷갈리지 마세요.
그러면 아래와 같이 USB 외장 하드가 구성됩니다.
끝났습니다. 부팅해서 설치 마무리하고 사용하세요.
2. 자식 VHD 및 초기화 구성하기
자 앞서의 작업으로 VHD 에 Windows To Go 를 설치 완료하였죠? 그대로 사용해도 좋지만 VHD 의 매력은 자식 VHD 이죠! 그래서 자식 VHD 를 구성하고 더불어 깨끗한 자식 VHD 도 구성한 후 간단하게 초기화할 수 있도록 배치 작업까지 해보도록 하겠습니다.
일단 WTG 윈도우에 필요한 프로그램의 설치와 셋팅을 모두 마치고 종료한 후 로컬 윈도우로 부팅합니다. 관리자 권한으로 명령 프롬프트를 실행한 후 다음의 작업을 진행하여 자식 VHD 를 생성하고 깨끗한 자식 VHD 도 준비합니다.
USB 외장 하드 |
G: |
VHD 파일 |
G:\VHD\WTG.vhd |
자식 VHD |
G:\VHD\WTG-Child.vhd |
깨끗한 자식 VHD |
G:\VHD\WTG-Clean.vhd |
diskpart
create vdisk file="G:\VHD\WTG-Child.vhd" parent="G:\VHD\WTG.vhd" exit
copy /y G:\VHD\WTG-Child.vhd G:\VHD\WTG-Clean.vhd
자식 VHD 를 준비하였으면 현재 설정되어 있는 부팅 항목을 자식 VHD 로 교체하도록 하겠습니다. 마찬가지로 관리자 권한으로 명령 프롬프트를 실행한 후 다음의 작업을 진행합니다. 이 때 BCD 는 USB 외장 하드의 것을 수정해야 하니 /store G:\Boot\bcd 가 되고 현재 VHD 의 부팅 항목은 기본 부팅 항목이기 때문에 {default} 가 됩니다.
bcdedit /store G:\Boot\bcd /set {default} device vhd="[G:]\VHD\WTG-Child.vhd" bcdedit /store G:\Boot\bcd /set {default} osdevice vhd="[G:]\VHD\WTG-Child.vhd"
/store 로 수정할 BCD 만 지정해주면 나머지 작업은 시스템 BCD 를 수정할 때랑 똑같습니다. 그러니 뭐 크게 어려운 것은 없을 겁니다. 아무튼 이렇게 작업을 완료하고 나면 최종적으로 아래와 같이 됩니다.
이제 USB 외장 하드로 부팅하여 정상적으로 자식 VHD 로 부팅하는지 확인합니다. USB 외장 하드로 부팅한 후 자식 VHD 의 용량을 확인하면 되겠죠? VHD 로 부팅을 진행하면 자동적으로 확장되니까요.
그럼 이제 VHD 자동 초기화 배치 파일을 만들어 보죠. 수작업으로 윈도우 탐색기에서 교체하는 건 귀찮잖아요.
@echo off pushd %~d0
copy /y .\VHD\WTG-Clean.vhd .\VHD\WTG-Child.vhd
exit
이와 같이 배치 파일을 만들고 이름은 적당하게 WTG 초기화.cmd 뭐 대충 이 정도로 저장하면 되겠네요. 이름은 알아서 하시고요. 해당 배치 파일은 USB 외장 하드 루트에 위치시키셔도 되고 VHD 폴더에 넣으셔도 됩니다. 어쨌든 USB 외장 하드에만 위치시키면 됩니다. 그렇게 짰으니까요. 저는 깔끔하게 USB 외장 하드 루트에 넣었습니다.
이제 자식 VHD 의 초기화가 필요하면 로컬 윈도우로 부팅한 상태에서[자식 VHD 로 부팅한 상태에서는 교체가 안 되니] 해당 배치 파일을 한 번 실행하시면 됩니다.
간단하죠?
이건 여담인데요. 이렇게 안 하고 자식 VHD 를 두 개를 준비한 다음에 부팅으로 로테이션을 돌리면 굳이 로컬 윈도우로 부팅하지 않고 WTG 자체 내에서 초기화하는 게 가능한데요. 굳이 그럴 필요까지 있을까 싶습니다. 그래도 간단하게 설명을 해보자면 자식 VHD 1 - G:\VHD\WTG-Child.vhd 자식 VHD 2 - G:\VHD\WTG-Chlid2.vhd 깨끗한 자식 VHD - G:\VHD\WTG-Clean.vhd이렇게 구성하고 배치 파일을 짜본다면 [현재 깨끗한 자식 VHD 를 복사해서 자식 VHD 2 만 만들면 되겠죠?]
@echo off pushd %~dp0
set WTG=%~d0
copy /y .\VHD\WTG-Clean.vhd .\VHD\WTG-Child.vhd if %errorlevel% == "0" ( bcdedit /store %WTG%\Boot\bcd /set {default} device vhd="[%WTG%]\VHD\WTG-Child.vhd" bcdedit /store %WTG%\Boot\bcd /set {default} osdevice vhd="[%WTG%]\VHD\WTG-Child.vhd" ) else ( copy /y .\VHD\WTG-Clean.vhd .\VHD\WTG-Child2.vhd bcdedit /store %WTG%\Boot\bcd /set {default} device vhd="[%WTG%]\VHD\WTG-Child2.vhd" bcdedit /store %WTG%\Boot\bcd /set {default} osdevice vhd="[%WTG%]\VHD\WTG-Child2.vhd" )
exit
대충 이런 식으로 작업하면 되겠네요. 그리고 저장하여 초기화가 필요할 때 관리자 권한으로 실행하면 되는 거구요. 이러면 굳이 로컬 윈도우로 부팅할 필요없이 곧바로 WTG 상태에서 초기화된 깨끗한 자식 VHD 상태로 교체되고 다음 번 부팅에 적용되는 거죠. 한 가지 단점이라면 이전에 사용하던 자식 VHD 가 초기화되지 않고 그대로 남아 있는다는 점일텐데요. 그건 아래와 같은 배치 파일을 하나 더 추가적으로 짜서 재부팅 후 해당 배치 파일을 한 번 더 실행해주는 것으로 해결할 수 있을 듯 합니다.
@echo off pushd %~d0
copy /y .\VHD\WTG-Clean.vhd .\VHD\WTG-Child.vhd if "%errorlevel%" == "1" copy /y .\VHD\WTG-Clean.vhd .\VHD\WTG-Child.vhd
exit
작업 스케줄러에 넣어서 자동으로 진행하게 만들어도 되는데 그러면 배치 작업이 좀 복잡해지고요. 그런데 굳이 WTG 에 이런 식으로 구성할 필요까지 있을까란 생각이 드네요. WTG 에 VARS 와 같은 구성을 만드는 것도 좀 넌센스가 아닐까 생각되고요. ㅎㅎㅎ 아무튼 WTG 의 목적을 생각해보았을 때 처음의 로컬 윈도우로 부팅하여 단순하게 교체하는 방식이 가장 나을 것 같네요.
Windows To Go - 멀티 부팅 구성하기
사실 이게 필요할까? 란 생각도 들지만 어떤 시스템에선 32비트로 부팅하고 어떤 시스템에선 64비트로 부팅하고 뭐 그런 걸 원할 수도 있으니까요. 일단 VHD 를 기준으로 놓고 설명을 드릴께요.
추가적으로 하나의 윈도우를 더 VHD 로 구성하여 아래와 같이 준비했습니다.
USB 외장 하드 - G: 두 번째 VHD -> G:\VHD\WTG64.vhd -> W: 드라이브로 연결
물론 첫 번째 VHD 는 이미 준비했고 부팅 구성까지 마친 상태라는 가정입니다. 이제 두 번째 VHD 윈도우를 부팅에 추가할 건데요. 첫 번째 윈도우의 부팅 이름을 바꿔주는 작업도 함께 진행할께요. 그래야 안 헷갈릴테니까요. 관리자 권한으로 명령 프롬프트를 실행한 후 아래와 같이 BCDEdit 와 BCDBoot 작업을 진행하면 됩니다.
bcdedit /store G:\Boot\bcd /set {default} description "Windows 8 WTG - 32비트"
bcdboot W:\Windows /l ko-KR /s G:
bcdedit /store G:\Boot\bcd /set {default} description "Windows 8 WTG - 64비트" bcdedit /timeout 10
이 때 {default} 는 첫 번째 윈도우를 의미하고 {default} 는 BCDBoot 작업으로 인해 기본 부팅 항목이 두 번째 윈도우로 변경되었기 때문에 두 번째 윈도우를 의미합니다. 즉, 같은 {default} 지만 BCDBoot 작업 이전과 이후 해당 식별자가 가르키는 대상은 달라진 겁니다. 부팅 이름이나 타임아웃 시간은 원하는대로 적절히 지정하세요.
그런데 이렇게 되면 두 번째 VHD 가 기본 부팅 항목이 되죠. 그걸 원하시는거면 그렇게 사용하시면 되고요. 만약 첫 번째 윈도우를 기본 부팅 항목으로 사용하고 싶다면 다음의 작업을 추가적으로 진행하시면 됩니다.
bcdedit /store G:\Boot\bcd /enum └ 이를 통해 첫 번째 VHD 윈도우의 식별자를 파악, 이후부터의 {GUID} 는 첫 번째 윈도우의 식별자.
bcdedit /store G:\Boot\bcd /default {GUID} bcdedit /store G:\Boot\bcd /displayorder {GUID} /addfirst
이제 USB 외장 하드로 부팅하시면 아래와 같이 멀티 부팅 화면이 출력되고 원하는 WTG 윈도우를 선택하여 부팅할 수 있습니다.
참고로 {Default} 즉, 기본 부팅 항목의 설정이 중요한데요. 왜냐하면요. 이렇게 USB 외장 하드에 부팅을 꾸민 경우 기본 부팅 항목은 이 멀티 부팅 화면에서 바로 부팅이 돼요. 하지만 기본 부팅 항목 외의 다른 부팅 항목은 선택하면 시스템이 한 번 재부팅된 후 최종적으로 부팅이 되죠. 이게 모든 경우에 그런 것인지 정확하게 모르겠지만 제 경우엔 그렇더라고요.
아무튼, 이런게 원래 그런 거라고 치면 기본 부팅 항목 외의 다른 부팅 항목을 선택했을 때는 시스템이 재부팅된 후 다시 한 번 USB 외장 하드로 부팅을 선택해줘야 합니다. [메인보드 펑션키를 통한 부트 메뉴를 활용하는 경우] 만약 시스템이 재부팅된 후에 멍 때리고 있으면 로컬 윈도우로 부팅이 진행되어 버리겠죠. 잊지 마세요.
멀티 부팅에 윈도우 8 설치 추가하기
이런 식으로 멀티 부팅이 가능하기 때문에 PE 부팅 항목을 멀티 부팅에 등록하는 것도 가능합니다. 이는 윈도우 설치 DVD 도 부팅 항목으로 추가하는 게 가능하다는 거죠. 일단 윈도우 8 설치 DVD 를 기준으로 놓고 설명할께요.
윈도우 8 설치 DVD 에서 [Sources] 폴더를 통채로 WTG 가 설치된 USB 외장 하드의 루트로 복사합니다. [일단 다른 폴더나 파일들은 필요없습니다.]
이제 다음으로 윈도우 8 설치 DVD 의 [Boot] 폴더에서 boot.sdi, bootsect.exe 두 파일을 USB 외장 하드의 [Boot] 폴더로 복사합니다. 반드시 두 파일만 복사하세요. [Boot] 폴더를 통채로 복사하시면 안 됩니다. [Bootsect.exe 는 사실 없어도 되지만 아쉬우니 넣었습니다.]
자~ 윈도우 8 설치의 부팅 항목 구성은 기본적으로 아래와 같습니다.
이걸 그대로 넣어주면 됩니다. 다만 ramdisk 장치 항목이 {7619dcc8-fafe-11d9-b411-000476eba25f} 인데 어차피 이걸 동일하게 전용으로 구성할 필요는 없죠. 그러니 해당 항목은 {ramdiskoptions} 로 구성하도록 하고, device 와 osdevice 에서 사용된 Boot 경로도 그대로 사용해도 되지만 그냥 USB 외장 하드 드라이브 경로로 설정하도록 하겠습니다. 다른 부팅 항목들도 그렇게 설정되어 있으니 그렇게 하도록 하죠. 우리의 소원은 통일이니까요.
관리자 권한으로 명령 프롬프트를 실행한 후 다음의 작업을 진행하시면 됩니다.
USB 외장 하드 - G:
bcdedit /store G:\Boot\bcd /create {ramdiskoptions} bcdedit /store G:\Boot\bcd /set {ramdiskoptions} ramdisksdidevice partition=G: bcdedit /store G:\Boot\bcd /set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi
bcdedit /store G:\Boot\bcd /create /d "Windows 8 Setup" /application osloader └ 이후 명령에서의 {GUID} 는 해당 단계에서 출력된 식별자를 의미
bcdedit /store G:\Boot\bcd /set {GUID} device ramdisk="[G:]\sources\boot.wim,{ramdiskoptions}" bcdedit /store G:\Boot\bcd /set {GUID} osdevice ramdisk="[G:]\sources\boot.wim,{ramdiskoptions}" bcdedit /store G:\Boot\bcd /set {GUID} path \windows\system32\winload.exe bcdedit /store G:\Boot\bcd /set {GUID} systemroot \Windows bcdedit /store G:\Boot\bcd /set {GUID} locale en-US bcdedit /store G:\Boot\bcd /set {GUID} inherit {bootloadersettings} bcdedit /store G:\Boot\bcd /set {GUID} bootmenupolicy standard bcdedit /store G:\Boot\bcd /set {GUID} detecthal Yes bcdedit /store G:\Boot\bcd /set {GUID} winpe Yes bcdedit /store G:\Boot\bcd /set {GUID} ems No
bcdedit /store G:\Boot\bcd /displayorder {GUID} /addlast
{ramdiskoptions} 항목을 생성할 때 /d 를 통해 description 을 설정하는 것을 생략하였는데 이는 윈도우 7 이상의 BCDEdit 에서만 지원합니다. 윈도우 비스타에서는 반드시 /d "설명" 하신 후 /deletevalue 로 description 항목을 지워야 합니다. 참고하세요.
명령을 일일히 입력하는 게 귀찮은 것 빼고는 그냥 윈도우 8 설치 기본과 동일하게 입력하면 되기에 그리 어려운 내용은 없으실 겁니다. 아무튼 이 내용은 윈도우 7 의 부팅 - 하드 디스크에서 윈도우 PE 사용하기(윈도우 PE 부팅 항목 구성하기) [BCDEdit.exe] 글에서 설명했던 작업과 동일한 겁니다. 단지 대상을 시스템 BCD 가 아닌 USB 외장 하드로 지정해주는 것과 윈도우 8 설치 부팅 항목에 맞춰서 bootmenupolicy 항목만 추가된거죠. 그 외에는 모두 똑같습니다.
근데 위와 같이 일일히 작업하지 마시고 그냥 아래와 같은 배치 파일을 하나 만드신 후 USB 외장 하드 루트에 넣고 관리자 권한으로 실행하세요. 이거 원 제가 적으면서도 너무 길어서 열 받으니 작업하실 때는 더 열 받으실 것 같네요;;; 그냥 아래 배치 파일로 편하게 작업하세요. 우리의 혈압은 소중하니까요.
@echo off setlocal enabledelayedexpansion pushd %~dp0 set WTG=%~d0
bcdedit /store %WTG%\Boot\bcd /create {ramdiskoptions} bcdedit /store %WTG%\Boot\bcd /set {ramdiskoptions} ramdisksdidevice partition=%WTG% bcdedit /store %WTG%\Boot\bcd /set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi
bcdedit /store %WTG%\Boot\bcd /create /d "Windows 8 Setup" /application osloader > guid.txt for /f "tokens=1-5 delims=-" %%a in (guid.txt) do ( set fst=%%a set lst=%%e set GUID=!fst:~-9!-%%b-%%c-%%d-!lst:~0,13! )
bcdedit /store %WTG%\Boot\bcd /set %GUID% device ramdisk="[%WTG%]\sources\boot.wim,{ramdiskoptions}" bcdedit /store %WTG%\Boot\bcd /set %GUID% osdevice ramdisk="[%WTG%]\sources\boot.wim,{ramdiskoptions}" bcdedit /store %WTG%\Boot\bcd /set %GUID% path \windows\system32\winload.exe bcdedit /store %WTG%\Boot\bcd /set %GUID% systemroot \Windows bcdedit /store %WTG%\Boot\bcd /set %GUID% locale en-US bcdedit /store %WTG%\Boot\bcd /set %GUID% inherit {bootloadersettings} bcdedit /store %WTG%\Boot\bcd /set %GUID% bootmenupolicy standard bcdedit /store %WTG%\Boot\bcd /set %GUID% detecthal Yes bcdedit /store %WTG%\Boot\bcd /set %GUID% winpe Yes bcdedit /store %WTG%\Boot\bcd /set %GUID% ems No bcdedit /store %WTG%\Boot\bcd /displayorder %GUID% /addlast
del guid.txt /q cls
bcdedit /store %WTG%\Boot\bcd /enum %GUID% echo. pause
exit
그럼 아래와 같이 윈도우 8 설치가 부팅에 등록됩니다. 역시나 기본 부팅 항목이 아니기 때문에 선택하면 한 번 재부팅되고 다시 USB 외장 하드로 부팅을 지정해주면 이후 곧바로 윈도우 설치로 진입합니다. [화질 구린건 피쳐폰 폰카 중에서도 핀트 안 맞기로 유명한 주름폰이라 이해를...]
|