Microsoft MVP성태의 닷넷 이야기
Windows: 50. Windows Server 2008 R2 시스템에 Windows 7 멀티 부팅하는 방법 [링크 복사], [링크+제목 복사],
조회: 31064
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

Windows Server 2008 R2 시스템에 Windows 7 멀티 부팅하는 방법


테스트 머신은 Hyper-V가 설치되어 있습니다.

Hyper-V 사용 후기 
; https://www.sysnet.pe.kr/2/0/685

그런데, Hyper-V 설치 후에 치명적인 단점이 하나 있는 것이, 바로 "코어2쿼드 요크필드"로는 GPU 활용에 제약이 있다는 점입니다.

Hyper-V 시스템에서의 표준 비디오 드라이버 설치고려
; https://www.sysnet.pe.kr/2/1/1044

Hyper-V 시스템에서의 표준 비디오 드라이버 설치고려 - 두 번째 이야기
; https://www.sysnet.pe.kr/2/1/1045

Hyper-V와 고성능 그래픽 카드의 성능 문제 해결
; https://www.sysnet.pe.kr/2/0/801

그야말로 ^^; 비싼 그래픽 카드가 구매되어질 이유가 없다는 것! 그렇다고 Hyper-V를 밀어버리자니 가상화 환경이 너무 아쉽습니다. 어떻게 해야 할까 하다가,,, VHD를 이용한 다중 부팅 환경을 이번 기회에 테스트해보기로 했습니다. 가끔씩 개인 용도로 쓸 때는 Windows 7이 설치된 VHD 환경으로 부팅하고, 그 외에는 본래의 Windows 2008 R2로 부팅을 하자는 것이지요.

다행히도 이미 방법은 모두 공개되어 있습니다. 다음의 토픽에서 캡쳐화면과 함께 아주 상세히 기록되어 있습니다.

Windows 7 Boot from VHD
; http://edge.technet.com/Media/Windows-7-Boot-from-VHD/

Part 1 Create/Mount VHD files in Windows 7
; http://blogs.technet.com/aviraj/archive/2009/01/17/windows-7-boot-from-vhd-first-impression-part-1.aspx

Part 2 Boot from VHD in Windows 7
; http://blogs.technet.com/aviraj/archive/2009/01/18/windows-7-boot-from-vhd-first-impression-part-2.aspx

Part 3 Boot from VHD in Windows Vista
; http://blogs.technet.com/aviraj/archive/2009/01/28/windows-7-boot-from-vhd-first-impression-part-3-booting-vhd-from-vista-sp1-or-later.aspx

굳이 제가 다시 쓸 이유는 없지만, 그래도 혹시나 영어 토픽 자체를 보기 싫은 분들을 위해 / 또한 저도 언제든 편하게 열람할 수 있도록 직접 따라해본 사항을 여기에 올려놓겠습니다.




본격적으로 시작하기 전에 사전 준비 작업을 알아볼까요?

일단, VHD 파일을 만들어야 합니다. 이 방법에 대해서는 이미 이전의 글에서 설명해 두었습니다.

Windows 7 - VHD 파일 지원
; https://www.sysnet.pe.kr/2/0/842

위의 글에서 소개한 방법 중의 하나를 이용해서 VHD 파일을 하나 만들어 두고, "Attach VHD"를 이용해서 시스템에 연결합니다. 제 경우에는 해당 VHD에 "H" 드라이브 문자가 할당되었습니다. (참고로, Windows 7의 경우 설치 후 점유 공간이 5GB 정도가 넘기 때문에 설치할 S/W 공간과 함께 필요한 용량을 적절하게 산정하셔야 합니다.)

그리고, WAIK 도구를 아래의 경로에서 다운로드 합니다.

The Windows® Automated Installation Kit (AIK) for Windows® 7
; http://www.microsoft.com/downloads/details.aspx?familyid=696DD665-9F76-4177-A811-39C26D3B3B34&displaylang=en

다운로드 된 유형은 ISO 파일이기 때문에 CD-ROM으로 굽거나 DAEMON 툴을 이용해서 가상 CD-ROM으로 연결한 후 설치를 합니다.

마지막으로, Windows 7 설치 디스크를 준비합니다. 저 같은 경우에는 설치 디스크의 내용을 모두 USB로 복사해 두었고 드라이브 문자는 "G"가 할당되어 있습니다.

이걸로 준비 작업은 끝! 본격적으로 Windows 7로 부팅 가능한 VHD를 만들어보겠습니다.




우선, "시작" / "All Programs" / "Microsoft Windows AIK" / "Deployment Tools Command Prompt" 프로그램을 "관리자 권한"으로 실행하고, 해당 명령행에서 다음과 같이 실행합니다.

C:\Program Files\Windows AIK\Tools\PETools>imagex /apply g:\sources\install.wim 1 h:\

ImageX Tool for Windows
Copyright (C) Microsoft Corp. All rights reserved.
Version: 6.1.7600.16385

[ 100% ] Applying progress

Successfully applied image.

Total elapsed time: 4 min 41 sec

위에서 숫자 "1"을 인자로 주었는데 이것은 설치 디스크의 운영체제 버전 인덱스를 가리킨다고 합니다. 저 같은 경우에는 Windows 7 설치 디스크가 여러 버전(Home, Ultimate, Enterprise...)을 가지고 있지 않았기 때문에 상관없었지만, 다중 버전의 설치 이미지를 가지고 있는 사용자라면 반드시 위의 명령을 실행하기 전에 디스크의 유형을 확인하시고 지정해야 합니다.

인덱스 번호를 확인하고 싶다면 다음과 같이 명령을 주면 됩니다.

C:\Program Files\Windows AIK\Tools\PETools>imagex /info "g:\sources\install.wim"

ImageX Tool for Windows
Copyright (C) Microsoft Corp. All rights reserved.
Version: 6.1.7600.16385

WIM Information:
----------------
Path:        g:\sources\install.wim
GUID:        {d1c69277-b11c-42f4-bc66-975543c8328c}
Image Count: 1
Compression: LZX
Part Number: 1/1
Attributes:  0xc
             Integrity info
             Relative path junction


Available Image Choices:
------------------------
<WIM>
  <TOTALBYTES>1974314403</TOTALBYTES>
  <IMAGE INDEX="1">
    <DIRCOUNT>9826</DIRCOUNT>
    <FILECOUNT>48810</FILECOUNT>
    <TOTALBYTES>8067373012</TOTALBYTES>
    <CREATIONTIME>
    <LASTMODIFICATIONTIME>
      <HIGHPART>0x01CA0461</HIGHPART>
      <LOWPART>0x9F2E06D6</LOWPART>
    </LASTMODIFICATIONTIME>
    <WINDOWS>
      <ARCH>0</ARCH>
      <PRODUCTNAME>Microsoftr Windowsr Operating System</PRODUCTNAME>
      <EDITIONID>Enterprise</EDITIONID>

자, 이제 VHD 파일을 현재의 운영체제에서 연결을 해제(detach)합니다.


참고로, "Part 2 Boot from VHD in Windows 7" 글에서는 WAIK 툴을 사용하지 않고, Hyper-V에 구동되고 있던 Windows 7(또는 Windows Server 2008 R2)로부터 sysprep.exe를 이용하여 윈도우 이미지를 만드는 방법도 설명하고 있습니다. (물론, Hyper-V 뿐만 아니라 Virtual PC/Server, Windows Virtual PC 등에서 설치한 Windows 7 VHD 파일만 있다면 sysprep.exe로 동일하게 준비할 수 있습니다.)



다음으로, 부팅 메뉴에 위와 같이 준비한 VHD 항목이 올라오도록 해야 합니다. 이를 위해 다음과 같은 식으로 명령어를 실행합니다.

C:\Program Files\Windows AIK\Tools\PETools>bcdedit /copy {current} /d "Windows 7 x86"
The entry was successfully copied to {171d2348-d602-11de-b490-999bb0a62814}.

C:\Program Files\Windows AIK\Tools\PETools>bcdedit /set {171d2348-d602-11de-b490-999bb0a62814} device vhd=[E:]\win7x86\win7x86VM.vhd
The operation completed successfully.

C:\Program Files\Windows AIK\Tools\PETools>bcdedit /set {171d2348-d602-11de-b490-999bb0a62814} osdevice vhd=[E:]\win7x86\win7x86VM.vhd
The operation completed successfully.

C:\Program Files\Windows AIK\Tools\PETools>bcdedit /set {171d2348-d602-11de-b490-999bb0a62814} detecthal on
The operation completed successfully.

위와 같이 일련의 명령어를 실행한 후, 정상적으로 VHD 다중 부팅 항목이 추가되었는지 확인합니다.

C:\Program Files\Windows AIK\Tools\PETools>bcdedit /v

Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
...[생략]...
timeout                 30

Windows Boot Loader
-------------------
identifier              {171d2344-d602-11de-b490-999bb0a62814}
...[생략]...
resumeobject            {171d2343-d602-11de-b490-999bb0a62814}
nx                      OptIn

Windows Boot Loader
-------------------
identifier              {171d2348-d602-11de-b490-999bb0a62814}
device                  vhd=[E:]\win7x86\win7x86VM.vhd,locate=custom:12000002
path                    \Windows\system32\winload.exe
description             Windows 7 x86
locale                  en-US
inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
recoverysequence        {171d2345-d602-11de-b490-999bb0a62814}
recoveryenabled         Yes
osdevice                vhd=[E:]\win7x86\win7x86VM.vhd,locate=custom:22000002
systemroot              \Windows
resumeobject            {171d2343-d602-11de-b490-999bb0a62814}
nx                      OptIn
detecthal               Yes

이걸로 끝!




컴퓨터를 재부팅하고 나면 다중 멀티 부트 환경이 구성되었기 때문에, 다음과 같이 운영체제 선택을 물어봅니다.

win7_bootfromvhd_1.jpg

그리고 나서 새롭게 운영체제 설치하는 과정과 유사한 단계를 거치면서 1~2번 정도 더 재부팅을 합니다. 운영체제 설치 후 재미있는 점이 몇가지 있는데요.

VHD로 구동되는 운영체제이다 보니 디스크 부분은 "가상화"에서 사용되는 기법이 사용되는 것 같습니다. 이 때문에 "Windows Experience Index(Windows 체험 지수)" 설정이 다음 화면과 같이 계산이 되지 않습니다. (디스크 계산 부분에서 더 이상 진행할 수 없다는 메시지가 나옵니다.)

win7_bootfromvhd_2.png

또한, VHD만으로 구동되어 "C:\" 드라이브만 있을 거라고 생각했는데 물리 디스크의 파티션 내용을 동일하게 드라이브로 매핑시켜서 올라옵니다. 대신에 VHD 자체가 C:\ 드라이브가 되고, 이전의 운영체제에 설치된 파티션들에 "D:\"... 이후의 드라이브가 할당됩니다.

위의 2가지 정도만을 제외하면 일반 운영체제 설치한 것과 동일하게 테스트가 됩니다. Aero 테마는 물론이고 3D 프로그램도 모두 정상적으로 구동됩니다.




마지막 팁이라면... USB 드라이브에 해당 VHD를 복사하고 부팅하는 방법은 다음의 글을 참고하세요.

Booting Windows 7 or 2008 from a vhd on a USB drive 
; https://docs.microsoft.com/en-us/archive/blogs/husseina/booting-windows-7-or-2008-from-a-vhd-on-a-usb-drive 



[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/12/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 61  62  63  64  65  66  67  68  69  70  71  [72]  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
12136정성태2/6/202017292Windows: 168. Windows + S(또는 Q)로 뜨는 작업 표시줄의 검색 바가 동작하지 않는 경우
12135정성태2/6/202022548개발 환경 구성: 468. Nuget 패키지의 로컬 보관 폴더를 옮기는 방법 [2]
12134정성태2/5/202020982.NET Framework: 884. eBEST XingAPI의 C# 래퍼 버전 - XingAPINet Nuget 패키지 [5]파일 다운로드1
12133정성태2/5/202018394디버깅 기술: 161. Windbg 환경에서 확인해 본 .NET 메서드 JIT 컴파일 전과 후 - 두 번째 이야기
12132정성태1/28/202021238.NET Framework: 883. C#으로 구현하는 Win32 API 후킹(예: Sleep 호출 가로채기) [1]파일 다운로드1
12131정성태1/27/202020235개발 환경 구성: 467. LocaleEmulator를 이용해 유니코드를 지원하지 않는(한글이 깨지는) 프로그램을 실행하는 방법 [1]
12130정성태1/26/202017493VS.NET IDE: 142. Visual Studio에서 windbg의 "Open Executable..."처럼 EXE를 직접 열어 디버깅을 시작하는 방법
12129정성태1/26/202023644.NET Framework: 882. C# - 키움 Open API+ 사용 시 Registry 등록 없이 KHOpenAPI.ocx 사용하는 방법 [3]
12128정성태1/26/202017977오류 유형: 591. The code execution cannot proceed because mfc100.dll was not found. Reinstalling the program may fix this problem.
12127정성태1/25/202017135.NET Framework: 881. C# DLL에서 제공하는 Win32 export 함수의 내부 동작 방식(VT Fix up Table)파일 다운로드1
12126정성태1/25/202018546.NET Framework: 880. C# - PE 파일로부터 IMAGE_COR20_HEADER 및 VTableFixups 테이블 분석파일 다운로드1
12125정성태1/24/202016020VS.NET IDE: 141. IDE0019 - Use pattern matching
12124정성태1/23/202017799VS.NET IDE: 140. IDE1006 - Naming rule violation: These words must begin with upper case characters: ...
12123정성태1/23/202019512웹: 39. Google Analytics - gtag 함수를 이용해 페이지 URL 수정 및 별도의 이벤트 생성 방법 [2]
12122정성태1/20/202015648.NET Framework: 879. C/C++의 UNREFERENCED_PARAMETER 매크로를 C#에서 우회하는 방법(IDE0060 - Remove unused parameter '...')파일 다운로드1
12121정성태1/20/202016345VS.NET IDE: 139. Visual Studio - Error List: "Could not find schema information for the ..."파일 다운로드1
12120정성태1/19/202018738.NET Framework: 878. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 - 네 번째 이야기(IL 코드로 직접 구현)파일 다운로드1
12119정성태1/17/202018940디버깅 기술: 160. Windbg 확장 DLL 만들기 (3) - C#으로 만드는 방법
12118정성태1/17/202019970개발 환경 구성: 466. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 - 세 번째 이야기 [1]
12117정성태1/15/202018801디버깅 기술: 159. C# - 디버깅 중인 프로세스를 강제로 다른 디버거에서 연결하는 방법파일 다운로드1
12116정성태1/15/202019470디버깅 기술: 158. Visual Studio로 디버깅 시 sos.dll 확장 명령어를 (비롯한 windbg의 다양한 기능을) 수행하는 방법
12115정성태1/14/202019727디버깅 기술: 157. C# - PEB.ProcessHeap을 이용해 디버깅 중인지 확인하는 방법파일 다운로드1
12114정성태1/13/202021527디버깅 기술: 156. C# - PDB 파일로부터 심벌(Symbol) 및 타입(Type) 정보 열거 [1]파일 다운로드3
12113정성태1/12/202021559오류 유형: 590. Visual C++ 빌드 오류 - fatal error LNK1104: cannot open file 'atls.lib' [1]
12112정성태1/12/202016762오류 유형: 589. PowerShell - 원격 Invoke-Command 실행 시 "WinRM cannot complete the operation" 오류 발생
12111정성태1/12/202020558디버깅 기술: 155. C# - KernelMemoryIO 드라이버를 이용해 실행 프로그램을 숨기는 방법(DKOM: Direct Kernel Object Modification) [16]파일 다운로드1
... 61  62  63  64  65  66  67  68  69  70  71  [72]  73  74  75  ...