VHD 부팅에 대한 이야기… Windows 7

VHD 부팅에 대한 이야기… Windows 7

  • Comments 20
  • Likes

Windows7_h_rgb

운영 체제를 파일 하나로 휴대… Windows 7
실제 컴퓨터? 가상 컴퓨터.. 이제는 그 구분없이.. Windows 7, 그리고 WIM2VHD

VHD에 대한 이야기는 이미 2개의 포스팅으로 한 적이 있습니다. 지금까지 가상 머신 전용으로만 쓰이던 VHD(Virtual Hard Disk)가 Windows 7, Windows Server 2008 R2는 가상화 플랫폼없이 실제 물리적인 머신에서 사용할 수 있는 디스크의 용도로도 사용할 수 있다는 것이죠.

image 

6월 10일에 진행되었던 Nexcom 2009에서도 언급드렸던 내용의 슬라이드를 짤라보았습니다. 마땅히 쓸만한 그림이 없기에, 태블릿으로 직접 그려넣었던 슬라이드입니다.

Microsoft가 VHD를 실제 물리적인 머신에서 사용할 수 있게 함은, 꽤 많은 의미를 가지고 있습니다. 운영 체제의 휴대성을 확보함과 동시에, 어떠한 플랫폼 환경, 다시 말해 물리적이든, 가상화든.. 개인이 사용하는 데스크톱을 그대로 사용할 수 있게 해준다는 의미죠. 또한 기업 환경에서는 Windows Server에 내장된 Windows 배포 서비스(WDS)를 이용하여, 사용자 데스크톱 운영 체제 이미지를 VHD로도 배포할 수 있게 되었습니다. VHD는 WIM과 더불어, 일반적인 이미지 컨테이너로 지속될 예정입니다.

VHD를 이용한 부팅은 몇가지 혜택을 가지고 올 수 있습니다.

  • 하드웨어나 가상 머신에 운영 체제가 이미 설치된 동일한 이미지를 생성, 배포, 유지 보수할 수 있게 됩니다.
  • 하드웨어 성능 및 가용성에 따라 이미지를 배포할 수 있습니다.
  • 별도의 파티셔닝을 하지 않고, Windows 7 그리고 Windows Vista를 사용하는 머신에서 추가의 운영 체제를 이용할 수 있게 해줍니다.
  • 당연히 VHD를 이용한 배포가 실제 머신을 설치하는 것보다 더 빠르게 작업을 완료할 수 있습니다.
  • 서버나 클라이언트의 배포뿐만 아니라, 장애시 이에 대한 빠른 처리를 할 수 있습니다.

Windows 7과 Windows Server 2008 R2만이 VHD를 이용한 부팅을 사용할 수 있습니다. Windows Vista의 경우에는 BCDEDIT 및 부트로더를 Windows 7용으로 교체하여 사용하실 수 있죠.

VHD를 이용하여 부팅을 하는 경우엔 몇가지 기존 부팅 방식과 다르게 생각해야할 측면이 있습니다.

  • VHD는 고정 크기 방식과 동적 확장 방식이 있는데, 어느 경우건 Windows 7에서 사용할 충분한 하드 디스크의 용량이 있어야 합니다.
  • 실제 머신의 경우, 가상 메모리를 위한 페이징 파일이 하드 디스크에 생성됩니다. VHD를 이용한 부팅의 경우에는 페이징 파일만, VHD내에서 생성되지 않고, 실제 하드 디스크에서 생성됩니다.
  • 최대 절전 모드(Hibernate)는 사용할 수 없습니다만, 절전 모드(Sleep)은 사용할 수 있습니다.
  • VHD를 이용하여 부팅했을 경우, 해당 운영 체제에서도 VHD를 또 만들어서 디스크로 사용할 수 없습니다.(RC이후에 변경되어 VHD 파일로 부팅하셔도, 해당 운영 체제에서 VHD를 만들수 있습니다.)
  • BitLocker를 사용할 수 없습니다.
  • VHD내에 탑재될 수 있는 운영 체제는 Windows 7 Enterprise, Ultimate로 제한됩니다.
  • VHD 파일을 USB 플래쉬 메모리와 같은 이동식 저장소에 저장할 수 있으나, 이를 이용하여 부팅은 할 수 없습니다.
  • VHD 파일을 이용하여 부팅하기 전, 설치된 Windows 7 이미지는 Sysprep(공장 출하 상태)된 상태여야 합니다. WIM2VHD를 이용하여, 설치용 WIM 파일을 VHD로 변환했을 경우에는, Sysprep된 상태의 Windows 7을 얻으실 수 있습니다.

Windows PE로 부팅하여, 아직 운영 체제가 설치되지 않은 빈 하드 디스크에 부트 섹터와 부팅 프로그램만 탑재하고, VHD를 복사해서, 별도의 Windows 7 설치 없이 신규 머신을 VHD에서 부팅할 수 있게 만들 수도 있습니다.

  • 신규 머신을 Windows PE를 이용하여 부팅합니다.
  • DiskPart를 이용하여, 하드 디스크 작업을 합니다.
    Diskpart
    Select Disk 0
    Clean
  • 시스템 파티션을 먼저 100MB만 생성합니다.(Windows 7 설치시 생성되는 가장 상위 파티션 100MB라고 생각하시면 됩니다. 왜 100MB가 생기는지는 설치시 자동 생성되는 200MB 빈 파티션의 진실은? Windows 7 BitLocker와 BitLocker To Go를 참고하세요. Beta 버전에선 200MB였지만, 사용자의 의견을 반영하여, RC부터 100MB로 줄어들었습니다.)
    Create Partition Primary Size=100
    Format Quick FS=NTFS
    Assign Letter=S
    Active
  • 나머지 디스크를 파티셔닝합니다.
    Create Partition Primary
    Format Quick FS=NTFS
    Assign Letter=C
    Exit
  • 이제 VHD 파일을 적절한 위치(이 포스팅에선 C:\)에 복사합니다. 그 후, 해당 VHD를 연결해야겠죠.
    Diskpart
    Select vdisk file=c:\windows7.vhd
    Attach vdisk
  • 그 후, List Volume이라는 명령어를 사용하시면 VHD가 연결된 것을 보실 수 있고, Select Disk <번호>와 Assign Letter 명령어를 이용하여 적절히 드라이브 명을 붙여줍니다.(이 포스팅에선 V:)
  • Windows PE나 V 드라이브내 Windows\System32에 위치한 BCDBOOT 명령어를 이용하여 부트 관리자와 로더를 설정해줍니다. (/s 옵션은 시스템 파티션을 지정해주는 것입니다.)
    BCDBOOT V:\Windows\ /s S:\
    리부팅!

그렇다면 왜 VHD안에는 Windows 7만 사용할 수 있을까요? 생각보다 간단한 이유입니다. Windows 7 부트 매니저와 로더가 운영 체제를 시작하기 위해서 VHD 파일내, Windows 이미지를 읽게 됩니다. Windows가 VHD 파일에서 부팅시, 모든 디스크에 대한 입출력(I/O)는 커널 장치 드라이버에서 로딩하게 되고, 시스템 서비스를 시작하고, 응용 프로그램을 실행하게 됩니다만, 이 입출력은 실제 하드 디스크에서 하는 것은 아니죠. 이를 실제 물리적인 디스크와 NTFS 볼륨으로 전환해주는 기술이 Windows 7에만 탑재되어져 있습니다. 종료시에도, 모든 쓰기 작업은 VHD 파일내로 처리되고, 하위 실제 파티션은 디스크 장치를 종료하게 됩니다.

간단히, VHD 파일내 입출력 처리를 실제 하드 디스크로 전환할 수 있느냐? 없느냐? 에 대한 이야기입니다.

꼬알라 개인적으로는, 설치 이미지내 존재하는 Install.wim을 WIM2VHD를 이용하여 VHD로 전환한 다음, 실제 머신에서 이용하고 있습니다. 간혹, 세미나에서 새로운 시스템이 필요하다면… 기존 머신을 포맷하고, 재설치하는 것이 아니라, 1회성의 목적이라면, VHD를 이용하여 데모나 세미나를 진행하죠.

VHD 파일을 이용한 물리적인 머신 부팅 기술은 매우 유연한 데스크톱 관리에 좋은 기술로 보여집니다. 특히 기업내 IT 관리자의 경우에는 사용자의 데스크톱 배포 및 장애 처리에 대한 요소로 사용할 수 있다는 것도… 매력적이고요~ 조금은 어려운 이야기인데.. 도움이 되셨으면 합니다. :)

Comments
  • VHD 부팅에 대해서 아쉬운점은..

    이전버전의 운영체제도 지원을 해줄 수 있다면 더 유용할거 같다는 생각이드네요..

    직장에서 XP 만 을 지원해주는 바람에...

    비스타나 세븐을 사용하면 인터넷을 이용할 수 없는 상황이라서 말이죠..;;

  • 진호님// 안녕하세요~

    Windows Vista부터 부트 로더에 대한 부분이 변경되었고. 이러한 개선에 의해서 Windows 7부터 가능한 부분입니다.

    Windows 7으로 넘어가야할 입장에서 많은 기능을 하위 Windows에 포팅할 수 없음을 이해해주시면 감사하겠습니다.

  • 그날 강의 잘 들었습니다.

    제가 나타나는 날마다 네트워크에 장애가 발생하는 것 같아 괜히 미안했습니다.

    앞으로도 유익한 발표 기대합니다.

    서영진

  • hyper-v에 xp를 띄운 상태에서 sleep을 사용할 수 있나요?

  • 근데 100메가 파티션이 생성되는 거 너무 위험한 거 아닌가요?

    윈도7을 설치했다가 삭제한 후 다른 운영체제를 설치하려고 했더니 부팅이 안된다는 분도 있더군요.

    100메가 파티션이 부팅으로 잡혀서 그런 것 같다면서요.

    물론 100메가 파티션이 생성되지 않게 해서 설치하는 방법도 있지만 대부분은 그냥 설치해버리는 경우가 많잖아요.

  • 항가항가 // 100메가 파티션을 생성하는 것은 위험한 것이 절대 아닙니다. 그리고 다른 운영 체제 부팅 불가와도 전혀 무관합니다.

    관련된 사항은 http://blogs.technet.com/koalra/archive/2009/02/05/200mb-windows-7-bitlocker-bitlocker-to-go.aspx 에서 확인하실 수 있습니다. 베타 시절엔 200MB였지만, RC.. 그리고 RTM으로 넘어오면서 100MB로 줄어들었습니다.

  • 관련 포스팅 잘 읽었습니다^^

    그런데... 한가지 궁금한점이...

    윈도우7을 일반 물리파티션에 설치했을때와..

    vhd안에 설치했을때... 실행속도라던가의 차이가 있을까요..?

    특히 동적확장으로 vhd를 생성했을 경우에는 고정식에 비해서

    성능이나 조각모음등에 영향이 있을수 있다고 하셨는데..

    두 경우 모두..

    물리파티션에 비해서 성능면에서 좀 안좋을까요...?

  • 윈도우7을 vhd에 설치 했더니 성능테스트 를 완료 할 수 없습니다. (디스크 성능 테스트를 못한다고 나옵니다.)

    성능테스트 를 완료 하지 않으면 윈도우의 다른 기능이 제한되나요. 제한되는 기능이 있을까요?

  • 꼬알라님 안녕하세요.

    요즘 한참 VHD에 관심이 생겼습니다.

    그래서 질문이 하나 있는데요..

    제가 VMWARE에서 VDMK파일을 WINIMAGE프로그램으로 VHD파일을 변환하고, 꼬알라님이 말씀해주신대로 BCDBOOT를 이용하여 VHD파일을 추가 시켰습니다.

    그런데 추가시킨 윈도우 7이 부팅 하는 과정에서 에러메시지를 나타내면서 부팅이 되고 있지 않습니다.(에러메시지는 확인할 수가 없었습니다.)

    VMWARE에서 VDMK 이미지를 만들고 SYSPREP까지 완료 한 상태입니다만..

    1. VHD파일의 생성은 꼭 VIRTUAL PC와 같은 MS제품에서만 해야 하는건가요?

    2. 추가된 이미지의 부팅 오류에 대한 메시지 확인은 어떻게 하면 좋은지요.

    바쁘신줄 알지만 알려주시면 감사하겠습니다.^^

  • beretta2님 // 안녕하세요.

    VHD 파일에 대한 생성을 VMWARE하시고 컨버팅을 하신 것 같은데.. 해당 컨버팅 과정에서 조금 문제가 있으셨던 것 같네요.(확실하진 않지만..)

    Microsoft의 제품으로 VHD를 생성하고 사용하면 전 잘되었거든요..(정확하겐 WIM2VHD라는 툴을 이용해서 바로 원본 DVD에서 생성했었습니다.)

    부팅시 에러 코드가 나타나는데.. 안나오던가요?

    감사합니다!

  • 백승주님 지면으로나마 뵙게되어 영광입니다

    disk2vhd로 생성된 파일로 부팅을 할수있나요?

    방법좀 부탁드림니다.그럼수고하십시요.

  • 손봉식님 // 안녕하세요..

    Disk2VHD로 생성된 파일도 위의 방법(BCDEDIT)을 이용하여 부팅이 가능합니다. 시도해보시기 바랍니다.

    방문해주셔서 감사합니다.

  • 안녕하세요 꼬알라님

    덕분에 VHD 부팅을 잘 이용하고 있는데 한 가지 페이징 파일 때문에 질문 드립니다

    C 드라이브는 VHD 이미지이고 B 드라이브는 VHD 이미지가 담긴 0번 SSD입니다

    윈도우 7 설치 시 기본으로 설정되어 있는 가상 메모리를 0으로 줄이고 사용하고 있었는데요

    최근에 다시 가상 메모리를 사용하려고 B 드라이브에 페이징 파일을 생성했더니 부팅 때마다 에러가 뜹니다

    페이징을 다시 끄고 재부팅을 해봐도 여전히 바탕화면 진입 시에 에러 메세지가 뜨네요

    혹시 의심가는 부분이 있으면 조언 좀 부탁드릴게요

    감사합니다

    http://img100.imageshack.us/img100/1884/snagit0012009112723333.png

  • 글감사히 읽었습니다. 제 내공이 부족해서 인지 잘적은 글임에도 불구하고 약간 어려웠지만요^^;

    한가지 질문 드려도 괜찬을지요.

    다름이 아니라 install.wim을 VHD로 전환하면... 공장 출고 상태의 Windows7 상태가 된다고 하셨는데요

    그렇다면... 그렇게 만들어진 VHD로사용할 시 사용에 힘든면이 있거나 하지는 않나요?

    물론 직접 사용하신다는 말이... 뒷부분에 나와는 있지만요. ^^;

    좋은글 감사히 읽고 갑니다^^

  • 유이테르님 // 안녕하세요. 공장 출고 상태의 Windows 7이란 의미는 말 그대로 Windows 7 설치 완료 상태를 의미합니다. 노트북이나 컴퓨터를 새로 구입하면, 계정, 컴퓨터 이름등을 입력하는 작업을 하시잖아요~ 이미 Windows는 설치가 완료되었고~

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment