고용량의 램을 사용하면서 저용량의 볼륨에 VHD 를 생성하여 윈도우 7 을 설치할 때 겪을 수 있는 문제 - Stop 0x00000136 블루 스크린
기존 자료 백업 2011. 10. 13. 07:00 |이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^
- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.
- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)
- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)
- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.
이 포스팅은 다음의 문서에 포함되어 있습니다. 연관된 포스팅들을 보시려면 해당 문서의 전체 목록를 확인하세요.
이번에 아는 동생이 컴퓨터를 새로 구입하게 되면서 해당 컴퓨터에 윈도우 7 을 설치하면서 겪은 문제입니다. 작업 전 이러한 상황이 충분히 발생할 수도 있겠다는 예상은 하였지만 실제로 예상했던 문제를 접하게 되니 좀 당황스럽더군요. 윈도우가 알아서 적절히 대처하지 않을까? 란 뭐 그런 약간의 기대를 가지고 있었는데 실제로 작업하면서 절대 그렇지 않다는 것을 확인한 모양이 되었네요. 하지만 예상했던 문제라 바로 설치 과정에 약간의 변화를 주는 것으로 해결을 보았습니다.
윈도우 7 설치의 기본만 쭈욱 이야기하는 것도 지겨우니 번외편으로 그 이야기를 해 보도록 하겠습니다. 아직 VHD 를 전체적으로 다시 다루기까지는 많이 남았지만요. 한 가지 이야기만 계속하기 지겹잖아요. ^^
저용량의 SSD 와 고용량의 RAM 그리고 Expandable VHD
일단 이것은 동적 확장 형식의 VHDType : Expandable 에 윈도우를 설치했을 때 발생할 수 있는 문제입니다. 로컬에 바로 윈도우를 설치하는 경우나 고정 크기 형식의 VHDType : Fixed 에서는 발생하지 않는 문제입니다. 이 조건을 기본으로 깔고 포스팅을 읽으세요.
이번에 아는 동생이 컴퓨터를 구매하면서 64GB 의 SSD 와 함께 램을 8GB 로 맞췄습니다. 자료 보관용 1TB HDD 도 하나 달았고요. 요청에 의해 SSD 는 약 40GB 의 윈도우 공간과 나머지 다른 공간은 다른 용도로 사용한다고 하여 그렇게 파티셔닝을 했습니다. 여기에 제가 제작한 VARS 를 굉장히 유용하게 사용하고 있던터라 꼭 VARS 를 구성해주길 원했습니다. 뭐 그래서 VHD 에 윈도우를 설치하기로 최종적으로 결정하고 작업을 진행하였습니다.
당장은 아니지만 나중에 간단하게 윈도우 XP 가 필요할 지도 모른다고 하여 40GB 공간 중 윈도우 XP 를 위한 약 8 GB 의 여유 공간을 남겨두고 32GB 로 동적 확장 방식의 VHD 를 생성하고 그곳에 윈도우 7 을 설치를 시작하였습니다. 결과는?
오랜만에 뵙겠습니다. 블루 스크린이라고 합니다. ^^*
Stop : 0x00000136 블루 스크린 작렬! 오랜만이고 자시고 역시나 언제 보아도 기분이 안 좋아지는 블루 스크린입니다.
Stop : 0x00000136 블루 스크린의 의미와 발생 원인
Stop : 0x00000136 블루 스크린이 발생하는 원인은 매우 간단합니다. Expandable 타입의 VHD 는 평상시에는 그 타입에 맞게 실제 담고 있는 데이터 크기만큼의 용량을 가지고 있다가 부팅에 사용되는 순간 VHD 에 설정된 최대 크기로 파일의 크기가 늘어납니다. 즉, Fixed 타입과 동일하게 용량이 늘어나는 것이죠. 이건 뭐 VHD 부팅의 기본 상식이죠.
그런데 Expandable VHD 가 부팅되기 위하여 최대 크기로 확장하려고 하는데 VHD 파일이 담긴 로컬 볼륨에 여유 공간이 부족하다면? Expandable VHD 는 실제 크기로 확장되지 못하고 윈도우는 Stop : 0x00000136 블루 스크린을 띄워주는 겁니다. 즉, VHD 가 위치한 볼륨에 여유 공간이 부족하여 VHD 가 확장되지 못한다는 의미죠.
그렇다면 왜 VHD 를 담은 로컬 볼륨의 여유 공간이 부족하게 되었을까요? 분명 VHD 를 담은 로컬 볼륨은 40GB 였고 32GB 의 VHD 를 생성했으니 여유 공간이 충분할텐데요?
결론부터 이야기하자면 그것은 pagefile.sys 파일 즉, 윈도우 가상 메모리 파일 때문에 그렇습니다.
VHD 에 윈도우를 설치하게 되면 윈도우 가상 메모리 파일은 VHD 안이 아닌 VHD 파일이 위치한 로컬 볼륨에 생성이 됩니다. 또한 초기 윈도우 가상 메모리 파일의 크기는 시스템에 설치된 RAM 의 용량과 동일하게 설정이 됩니다. 그리고 최초의 pagefile.sys 는 Install.wim 이미지 파일을 디스크에 풀 때 함께 풀리는게 아니라 설치 과정 중 첫 재부팅 이후 윈도우로 진입하기 전 생성됩니다. 대충 윈도우 7 설치 과정 중 가상 메모리 파일이 생성되는 과정은 이와 같습니다.
그리고 이제 pagefile.sys 파일의 생성을 마치면 VHD 에서의 설치를 마저 진행하기 위해 Expandable VHD 는 확장되고 VHD 로의 부팅이 진행되는 것이죠.
이제 문제의 원인에 대한 감이 잡히시나요? 즉, 시스템의 메모리가 8GB 였으니 첫 재부팅 과정에서 40GB 였던 SSD 볼륨에 8GB 크기의 pagefile.sys 파일이 생성되고 여기에 부팅 파일 등도 있으니 전체적으로 남은 공간은 32GB 가 조금 못 되는 상황이 발생한 것입니다. 이 상황에서 32GB 크기를 가지고 있는 Expandable VHD 가 32GB 로 확장하려고 보니까 용량이 부족했던 겁니다. 그래서 어쩔 수 없이 Stop : 0x00000136 블루 스크린이 출력된 것이구요.
이것은 VMware 와 같은 가상 머신에서도 재현이 가능합니다. 한 번 재현해 보도록 하죠. 일단 가상 머신의 램 용량을 3GB 로 잡았습니다. SSD 를 가정한 소용량의 디스크와 HDD 를 가정한 1TB 의 디스크도 준비해주었습니다.
이제 이러한 머신에서 32GB 의 소용량 디스크에 30GB 짜리 VHD 를 생성하겠습니다.
제가 앞에서 이야기한 내용대로라면 현재 머신의 디스크 0 파티션 1 볼륨의 여유 공간이 최종적으로 재부팅 후 현재 RAM 용량에 맞춰 생성되는 pagefile.sys 파일에 의해 1GB 가 부족해지는 상황이 꾸며진 것입니다. 이 상태에서 이제 VHD 에 윈도우의 설치를 시작합니다.[테스트에 사용된 윈도우는 윈도우 7 얼티밋 K 64비트 MSDN 버전입니다.] 그럼 일단 Install.wim 이미지를 VHD 디스크에 풀어주는 과정까지는 잘 진행이 됩니다.
그러나 이후 Install.wim 이미지를 모두 풀어주고 재부팅이 진행되면 pagefile.sys 에 의해 공간이 부족해진 디스크 0 파티션 1 볼륨에서 VHD 는 정상적으로 확장되지 못하고 Stop : 0x00000136 블루 스크린을 뿜어내게 되는 것입니다.
역시나 너무나도 착실하게 블루 스크린을 출력해 주네요. 이걸 좋아해야 하는건지...
이러한 문제를 겪지 않기 위한 해결 방법
일단 이러한 문제가 발생하지 않기 위해 해결하는 방법에는 세 가지가 있습니다.
1. RAM 용량을 먼저 줄이고 나중에 늘리는 방법 - 본체를 뜯으라고? 귀찮은데?
2. VHD 가 담긴 로컬 볼륨의 용량을 더 늘려주는 방법 - 그게 최대 크기라면?
3. VHD 를 일단 작게 생성하고 나중에 확장하는 방법 - 아무리 생각해도 이게 가장 나음
램을 넣다 뺐다하는 작업은 굉장히 귀찮고 디스크의 용량을 늘릴 방법도 없다면 그냥 VHD 를 처음에 작게 잡으면 되는 겁니다. 왜냐하면 VHD 는 언제든지 확장할 수 있으니까요! 그리고 사실 램 용량이 8GB 정도나 되면 또는 램 뱅크 꽉 채워서 16GB 라면 가상 메모리를 그렇게 크게 잡을 필요가 없습니다. 램이 그정도로 충분하다면 가상 메모리는 없어도 사실 지장이 없죠. 하지만 가상 메모리가 아예 없으면 문제를 일으키는 프로그램도 있으니 1GB 정도로 적당히 작게 잡아주면 됩니다.
즉, 작업을 정리하자면 현재 시스템의 램 크기에 맞는 대용량의 pagefile.sys 파일이 생성되도 VHD 부팅에 문제가 없을 만큼 일단 VHD 의 크기를 작게 생성하고 윈도우의 설치를 마친 후 가상 메모리의 크기를 적절하게 줄여주고 다시 VHD 와 VHD 안의 파티션을 원하는 크기대로 확장해주는 것이죠. 간단하죠?
일단 윈도우 설치 작업 중간 DiskPart 로 VHD 를 생성할 때 적절히 작게 생성합니다.
create vdisk file="c:\vhd\win7.vhd" maximum=20480 type=expandable
attach vdisk
create partition primary
format fs=ntfs quick
exit
이제 이 상태에서 VHD 에 윈도우의 설치를 모두 마칩니다. 그리곤 윈도우로 진입이 완료되면 바로 가상 메모리의 크기를 적절히 줄이거나 다른 위치로 이동시킵니다.[SSD 에서 일반 HDD 로 이동시키기엔 SSD 의 성능이 너무 아까우니 SSD 사용자라면 이동보다는 SSD 에 남겨두고 용량을 최대한 줄이는게 좋습니다.]
이런 식으로 설정하시라는 이해를 돕기 위한 스크린 샷입니다.
이제 재부팅을 진행하여 설정을 적용하고 pagefile.sys 의 파일의 크기가 정상적으로 줄어든 것을 확인하였다면 다시 윈도우 7 설치 DVD 로 부팅하여 DiskPart 를 통해 VHD 와 VHD 내 파티션의 크기를 원래 원하던 크기로 확장해 줍니다.[VARS 사용자라면 VARS-ES 를 제외한 VHD 관리 시스템에 VHD 확장 메뉴가 존재하고 있습니다. 그걸 사용하시면 됩니다.]
select vdisk file="c:\vhd\win7.vhd"
expand vdisk maximum=30720
attach vdisk
select partition=1
extend
exit
이렇게 VHD 를 원하는 크기로 확장하셨으면 이제 남은 프로그램들의 설치를 마치면 됩니다.
이상 고용량의 RAM 을 가진 사용자가 저용량의 SSD 또는 HDD 의 저용량 파티션에 VHD 를 생성하여 윈도우 7 을 설치하고자 할 때 pagefile.sys 로 인해 겪을 수 있는 Stop : 0x00000136 블루 스크린에 관한 짧은 이야기였습니다.
마지막으로 현재 포스팅에서 이야기한 Native VHD Boot 상황에서 발생할 수 있는 Stop 0x00000136 Error 에 관한 마이크로소프트의 기술 문서를 끝으로 포스팅을 마치도록 하겠습니다.[기계 번역된 한글 문서가 워낙에 저질이라 원문을 링크합니다.]
p.s SSD 사세요. 신세계가 열립니다. ㅡㅡ; 이건 뭐 차원이 다르니... 저도 얼른 SSD 를 위한 총알을 장전해야 겠습니다. ^^;