Windows PE

 

Windows Preinstallation Environment
1. 개요
2. 용도
3. 제작 방법
3.1. 부트로더
3.2. 부팅용 패키지 파일
3.3. 개조판
4. 제한 사항
5. 편법
6. 참고


1. 개요


윈도우 설치 및 복구를 위한 경량판 윈도우로, 윈도우 설치 이전에 설치 동작을 위한 간이형 운영체제이다. Windows XP의 기업용 스타터 버전[1]이라고 할 수 있는 Windows Fundamentals for Legacy PCs에서 먼저 도입되었다. FLP는 설치 과정이 비스타랑 거의 동일한데, 이후 나온 임베디드 포스레디 2009를 제외한 모든 XP 계열에서는 블루스크린같은 배경에서 디스크 파티션을 정해야 하고 또 재부팅해서 본격적인 설치 과정이 되어서야 GUI가 나온다. Vista부터 본격적으로 설치 동작에서 사용되기 시작했다. 리눅스의 Live CD에 비유되며, 이를 위해 운영체제의 핵심 중의 핵심 기능만이 동작한다. 설치 이전 환경을 상정하기 때문에 보조 기억 장치가 아닌 RAM을 사용한 램 디스크를 적극적으로 사용하며, Windows Vista 이후 버전은 램 디스크로만 동작한다. 일부러 이것을 담은 저장 매체로 부팅하지 않는 한, 일반적인 사용자가 Windows PE를 보는 건 복구 모드인 Windows RE밖에 없다.
[image]
윈도우를 설치할 때 부트로더를 이용하여 Boot.wim을 로드해 PE를 실행한다. '''이 때부터 EXE 파일 실행이 가능하며''' 기본적으로 부팅 후 SETUP.EXE를 실행한다. 본래는 이렇게만 쓰는 건데, 마개조로 PE 만으로 데스크톱 환경을 구성하는 사용자들이 있다. 다만 MS 측에서도 이런 식으로 정품 인증을 우회해서 사용하는 사용자가 있다는 것을 알기에 Windows 7을 베이스로 하는 Windows PE부터는 부팅 후 72시간 마다 자동으로 재부팅이 되도록 제한을 두었다.# Windows PE의 본래 목적(Windows 설치 또는 복구용)으로 쓰든 것이든 불법 복제본으로 쓰는 것이든, 바이러스 백신 제조사에서 부팅용 백신을 위한 베이스로 쓰든 이 '''72시간 제한'''은 우회할 수 없다. 그래도 재부팅하면 다시 72시간을 측정하므로 사실상 무한정 쓸 수 있다.
Windows 8부터는 Windows To Go라는 신기능이 생긴 관계로 리눅스의 LiveCD처럼 사용하려는 사람들에겐 굳이 필요가 없게 되었다. 복잡한 제작 과정도, 인터넷에서 iso 파일을 구해서 USB 등에 이식할 필요도 없이 클릭 한 번이면 되기 때문. 다만 Windows To Go는 사실상 USB에 풀 Windows를 설치하는 개념으로 봐야 하기 때문에 Windows To Go의 최소 설치사양인 '32GB 이상의 USB'[2] 를 충족시키지 못하는 환경이거나(즉 32GB미만의 USB에 설치해야 하거나) 풀 Windows가 필요 없거나 특정 목적(예 - 나만의 응급복구용 디스크, 휴대용 미니 웹서핑 머신 등)을 위한 Windows가 필요한 경우에는 아직도 Windows PE 쪽이 유용하다.

2. 용도


개요에 나온 대로, 원래는 윈도우의 설치를 위한 환경이며 복구 모드도 PE 위에서 동작한다. Windows Defender Offline도 PE 위에서 실행된다. 몇몇 백신의 복구 디스크도 PE 기반으로 실행된다.
평소에 Win PE USB를 만들어 두면 유용하다. 비밀번호를 잊어버렸거나, 컴이 바이러스에 걸렸는데 파일을 옮겨야 한다거나, 엑스키퍼맘아이같은 프로그램을 삭제하거나 등등 여러 군데에 쓸 수 있으니 집에 굴러다니는 USB가 있는 위키러는 만들어두면 후회할 일을 없을 것이다.

3. 제작 방법


전반을 직접 뜯어내어 제작한다면 방대한 작업을 해야 한다.
필요 구성
  • 부트로더
    • Bootice 사용한 부팅 파티션 생성. 대용량 USB가 출시됨에 따라 부팅에 쓸 파티션은 이 프로그램의 파티션 관리 프로그램에서 파티션을 나눌 수 있다.
  • 운영체제
    • 기초 하드웨어 지원
    • 추가 제작법은 수도 없이 많다. 대표적인 방법으로는 Winbuilder를 이용한 구축과 Windows ADK(MS 공식 홈의 다운로드 센터에서 구할 수 있다.)를 설치할 때 구성 요소 선택 창에서 사전 설치 환경(Windows Preinstallation Environment)을 포함하는 것이다.

3.1. 부트로더


윈도우 설치본 CD, Windows ADK, 현재 설치한 C드라이브의 코어 파일 등 널리고 널렸다. 바이오스에서 EFI, MBR 등 레거시 부팅을 지원하는 경우 멀쩡하게 부팅이 되며 부팅이 안되거나 문제가 있으면 이 부분을 대부분 제대로 만들지 않은 것이다. 참고로 인지도 없는 제품이나, 메이커를 불문하고 노트북 제품군에서 흔하게 발생한다.
  • Boot/ - MBR 부팅 방식에 쓰이며 멀티 부팅 리스트 등 각종 중요 파일을 담고 있다.
  • efi/ - EFI 부팅에 쓰이며 멀티 부팅 리스트 등 각종 중요 파일을 담고 있다.
  • bootmgr - MBR 부트로더.
  • bootmgr.efi - EFI 부트로더.
  • 별도 부팅 패키지 wim, esd, vhd
    • 흔한 iso 가 없는 이유는 iso들도 부트로더를 자체적으로 가지기 때문이다. 즉 용량 낭비 발생.
BCD 설정을 MBR(/Boot/bcd), EFI(/efi/microsoft/bcd) 두 개 있으므로 파티션, 램 디스크, VHD를 설정하여 부팅하도록 한다.

3.2. 부팅용 패키지 파일


BCD를 수정하여 지정할 수 있다.
  • wim, esp - 주로 램 부팅에 복사되므로 원본에서 쓰기가 발생하지 않는 용도.
  • vhd - 별도의 파일 패키지 드라이브를 써야 하는데 기록이 유지되어야 하는 경우처럼 특수 용도.

3.3. 개조판


공식 버전에는 제한이 많으므로 잘 쓰지 않는다. 하지만 설치된 운영체제에서 필요한 파일들을 추출하여 제작한다면 정품과 다른 건 부족한 기능과 오류 정도이면서 무료 사용이 가능하다. 기능이 부족하더라도 보통 홈 버전 정도면 꽤 유용하기 때문. 엔터프라이즈급은 오히려 홈에서 쓰지 않는 불필요한 자원을 소비해 버린다.
가장 쉽게 접근하는 방법은 링크를 참조하자.

4. 제한 사항


ADK를 사용해서 제작하면 제한 사항이 따른다. x86, IA64 중에 선택하여야 하며 공식 스펙 상 최장 72시간 작동하면 꺼진다. 이유야 당연히 PE의 상업적 사용을 막기 위함으로 들어 있다. 웬만한 전문가가 아니면 제작 프로그램을 쓰는 편이 낫다. 부팅용으로는 x86을 쓰지만 다른 용도라면 AMD64, x86-64가 필수적이다. (x86 시스템의 램 디스크 내용의 관련된 제약 사항 참고 바람)
일반적인 설치형 Windows와는 여러가지로 차이점이 있다. 이것은 CD/DVD/USB 등의 매체에 저장이 되는 특성이기도 하지만, Windows PE의 특성을 악용하여 서버 OS 등으로 부정 사용하려는 것을 방지하기 위한 부분도 있다. #
  • 최소 부팅이므로 API 레퍼런스 상당량 부존재.
  • 명령 프롬프트는 72시간이 지나면 종료되고 자동 재부팅.
  • RPC, 원격 터미널, 원격 데스크톱 미지원.
  • DFS(분산 파일 시스템) 이름 확인은 독립 실행형 루트에서만 지원되고 도메인 루트는 미지원.
  • TCP/IP, NetBIOS over TCP/IP를 통해서만 파일 서버에 연결할 수 있으며 IPX/SPX 프로토콜과 같은 다른 방법들은 지원되지 않는다.
  • Windows PE를 실행하는 동안 Windows PE 레지스트리에서 변경한 내용은 컴퓨터를 다시 시작하면 모두 손실된다. 왜냐하면 외부 미디어에 들어 있는 이미지 파일로부터 램 부팅을 하기 때문이다. 로컬 부팅본으로 바꾸면 되겠지만 변조 방지를 위하여 주석 참고.[3] 그러나 Windows 10에서 HKEY_LOCAL_MACHINE 내용을 삭제하면 부팅이 안 된다.
  • 드라이브 문자는 Windows PE에서 파티션을 만들 때 연속적으로 할당 되지만, Windows PE를 다시 시작하면 기본 순서로 다시 설정된다. 예를 들어 16G짜리 USB를 연결해서 Y라는 드라이브 문자를 할당해도, 재부팅하면 Y드라이브가 아닌 연속적으로 할당된 다른 드라이브로 초기화 된다. 그러나 어떤 이유인지 윈도우가 설치된 C드라이브와 D드라이브가 확률적으로 바뀌기도 한다.
    • Windows PE에서는 Microsoft .NET Framework 또는 CLR(공용 언어 런타임)을 공식적으로는 지원하지 않으나, 윈도우 10의 ADK를 이용하여 강제로 지원하게 할 수는 있다.
    • Windows PE에는 WOW32(Windows on Windows 32), WOW64(Windows on Windows 64), VDM(가상 DOS 시스템), OS/2 또는 POSIX 하위 시스템을 지원하지 않는다.
  • Windows 설치 프로그램을 시작하기 전에 Windows PE를 사용하여 컴퓨터의 디스크를 구성하고 분할할 수 있다.
  • Windows PE는 Windows® Installer(.msi) 패키지에 포함되어 있는 응용 프로그램을 지원하지 않는다.
  • Windows PE는 802.1x를 지원하지 않는다.
  • Windows PE는 영어가 아닌 문자를 포함하는 대상 경로에서의 부팅을 지원하지 않는다.

5. 편법


Winbuilder로 PE를 구축하는 경우에는 스크립트로 우회가 가능하기도 하니 참고 바람.
  • 포터블앱 #1
  • 인터넷을 연결하여 필요한 프로그램을 설치하여 사용하는 방법

6. 참고





[1] 정확히 말하면 바탕화면 변경 기능은 있으나, 정작 기본으로 제공되는 바탕화면이 아예 없어서 따로 이미지를 받아 써야 한다.[2] 여담으로 16GB USB에도 설치가 가능하다 [3] 물론 이 부분을 우회하는 툴은 이미 널리고 널렸다.

분류