본문 바로가기

PE, ImageX, DISM

[윈도우 PE] - 이미지 유형을 지원하는 데 필요한 하위 시스템이 없습니다. - 오류 메세지의 이해



64비트 윈도우와 WoW(WoW64)

익히 알다시피 윈도우에는 32비트 버전과 64비트 버전이 있습니다. 32비트 버전은 x86 아키텍쳐 기반이고, 64비트 버전은 x64 아키텍쳐 기반이죠. 32비트와 64비트는 이렇듯 사용되는 CPU 아키텍쳐 자체가 다릅니다. 설계 구조 자체가 다르다는 것이죠. 이를 아주 단순하게 생각하면 한국어와 영어처럼 컴퓨터와 소프트웨어가 대화하는 언어 구조 자체가 다르다고 생각하시면 됩니다. 그래서 두 버전의 윈도우는 겉모습만 같을 뿐 실상은 완전히 다른 별개의 운영체제라고도 할 수 있습니다.

이는 윈도우와 리눅스, 맥OS 라는 운영체제가 서로 다른 것처럼, 32비트 윈도우와 64비트 윈도우도 그만큼 완전히 다르다고 할 수 있습니다. 아니 좀 더 정확히 비교하자면 인텔 CPU 기반의 윈도우와 과거 IBM CPU 기반 시절의 맥OS 만큼 다릅니다. 단지 우리가 잘 느끼지 못할 뿐이죠.

우리가 흔히 자신의 PC 에 32비트 버전의 윈도우와 64비트 버전의 윈도우를 입맛에 따라 골라서 설치할 수 있는 것은, 우리가 사용하는 인텔과 AMD 의 64비트 지원 CPU 가 하나의 CPU 안에 x86 아키텍쳐(32비트)와 x64 아키텍쳐(64비트)를 동시에 가지고 있어서 그런 겁니다. 즉, 하나의 CPU 안에 64비트 CPU 와 32비트 CPU 가 함께 들어있는 겁니다. 아참 이게 듀얼 코어를 의미하는 것은 아닙니다. 오해하지 마세요. 코어 하나에 32비트 64비트가 같이 들어있는 겁니다.

말했듯이 32비트와 64비트는 완전히 다릅니다. 그래서 32비트 윈도우는 64비트 버전의 프로그램을 실행할 수 없죠. 이는 한국어만 쓸 줄 아는 녀석에게 영어로 된 프로그램을 던져주면 그걸 해석할 수 없는 것과 마찬가지라고 생각하시면 됩니다. 반대로 64비트 윈도우도 32비트 프로그램을 실행할 수 없습니다. 원래 그게 맞죠. 그런데 현재 우리가 사용하는 64비트 윈도우에서는 실제론 아무런 문제없이 32비트 버전의 프로그램들을 실행할 수 있습니다. 왜 그런걸까요?


여기에서 여러분들이 알아두셔야 할 것은 64비트 버전의 윈도우에는 WoW(WoW64) 라는 기술이 내장되어 있다는 겁니다. WoWWindows on Windows 의 약자로 말 그대로 윈도우 안에 윈도우가 하나 더 들어있다는 겁니다. 64비트 윈도우에 포함된 WoW 는 WoW64(Windows on Windows 64-Bit) 로 64비트 윈도우 안에 32비트 윈도우가 추가로 들어 있는 것이죠. 이는 우리가 현재 사용하는 64비트 윈도우는 네이티브 64비트 윈도우 하나만 단독으로 구성되어 있는 것이 아니라는 의미입니다.

우리가 현재 사용 중인 64비트 윈도우는 간단하게 생각하면 [64비트 윈도우 + 32비트 윈도우] 로 구성되어 있고, 이를 통해 윈도우에서 실행하려는 프로그램의 비트 버전에 맞춰 그에 맞는 버전의 윈도우로 해당 프로그램을 실행함으로써 32비트 프로그램과 64비트 프로그램을 가리지 않고 실행할 수 있는 것입니다. 간단하죠?

64비트 윈도우의 윈도우 폴더를 살펴 보시면 SysWOW64 라는 폴더를 발견할 수 있습니다. 이게 WoW(WoW64) 의 실체로, 해당 폴더가 32비트 윈도우 시스템이라고 생각하시면 됩니다. 레지스트리에도 Wow6432Node 라는 키를 따로 두어 32비트 프로그램들이 사용하도록 두고 있죠.





이미지 유형을 지원하는 데 필요한 하위 시스템이 없습니다.

윈도우의 사전 설치 환경으로 설계된 윈도우 PE 에는 지금까지 이야기한 WoW 가 내장되어 있지 않습니다. 즉, 64비트 버전의 PE 에는 네이티브 64비트 윈도우만 존재할 뿐입니다. 그리하여 64비트 버전의 PE 에서는 32비트 프로그램은 실행할 수 없고, 오직 64비트 프로그램만 실행할 수 있습니다.

그래서 만약 64비트 PE 에서 32 비트 프로그램을 실행하려고 하면 - 이미지 유형을 지원하는 데 필요한 하위 시스템이 없습니다. - 라는 오류 메세지가 출력되면서 프로그램이 실행되지 않는 것이죠. 즉, WoW64 가 없으니 실행할 수 없다는 뜻입니다.

64비트 윈도우 PE(컴퓨터 복구, 윈도우 설치 DVD 등)에서 64비트 프로그램의 실행이 거부되는 모습.


반대로 32비트 PE 에서는 32비트 프로그램만 실행할 수 있죠. 64비트 프로그램을 실행하면? 당연하게도 버전이 호환되지 않는다며 실행이 되질 않습니다. [32비트 윈도우는 64비트 윈도우를 품을 수 없고 WoW 가 없죠. 그래서 호환 메시지가 나옵니다.]

32비트 윈도우 PE(컴퓨터 복구, 윈도우 설치 DVD 등)에서 32비트 프로그램의 실행이 거부되는 모습.


즉, 최종적으로 정리하면 32비트 버전의 윈도우 PE 에서는 32비트 프로그램만 실행이 가능하고, 64비트 비전의 윈도우 PE 에서는 64비트 프로그램만 실행이 가능한 것입니다.

32비트 버전 PE -> 32비트 프로그램만 실행 가능.
64비트 버전 PE -> 64비트 프로그램만 실행 가능.



참고로 예제로 ImageX 를 보여드렸죠? ImageX 도 32비트 버전과 64비트 버전이 있습니다. 그리하여 윈도우 PE(컴퓨터 복구, 윈도우 설치 DVD) 로 부팅하여 ImageX 를 정상적으로 사용하려면 해당 윈도우 PE 의 비트 버전에 맞는 ImageX.exe 파일을 준비하셔야 합니다.

32비트 ImageX 와 64비트 ImageX


이는 비단 ImageX 뿐만 아니라 PE 에 자주 포함되는 고스트와 같은 프로그램들도 마찬가지입니다. 이러한 프로그램들을 PE 에서 사용하기 위해 포함하는 경우 꼭 PE 의 비트 버전과 동일한 버전인지 잘 확인하시길 바랍니다. 이상입니다. ^^