Microsoft MVP성태의 닷넷 이야기
Windows: 50. Windows Server 2008 R2 시스템에 Windows 7 멀티 부팅하는 방법 [링크 복사], [링크+제목 복사],
조회: 31119
글쓴 사람
정성태 (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

비밀번호

댓글 작성자
 




... 91  92  93  94  95  96  97  98  99  100  101  102  103  104  [105]  ...
NoWriterDateCnt.TitleFile(s)
11299정성태9/9/201719712개발 환경 구성: 330. Hyper-V VM의 Internal Network를 Private 유형으로 만드는 방법
11298정성태9/8/201723045VC++: 119. EnumProcesses / EnumProcessModules API 사용 시 주의점 [1]
11297정성태9/8/201719681디버깅 기술: 96. windbg - 풀 덤프에 포함된 모든 닷넷 모듈을 파일로 저장하는 방법
11296정성태9/8/201722886웹: 36. Edge - "이 웹 사이트는 이전 기술에서 실행되며 Internet Explorer에서만 작동합니다." 끄는 방법
11295정성태9/7/201720285디버깅 기술: 95. Windbg - .foreach 사용법
11294정성태9/4/201720030개발 환경 구성: 329. 마이크로소프트의 CoreCLR 프로파일러 예제 빌드 방법 [1]
11293정성태9/4/201720578개발 환경 구성: 328. Visual Studio(devenv.exe)를 배치 파일(.bat)을 통해 실행하는 방법
11292정성태9/4/201718847오류 유형: 419. Cannot connect to WMI provider - Invalid class [0x80041010]
11291정성태9/3/201720703개발 환경 구성: 327. 아파치 서버 2.4를 위한 mod_aspdotnet 마이그레이션
11290정성태9/3/201723924개발 환경 구성: 326. 아파치 서버에서 ASP.NET을 실행하는 mod_aspdotnet 모듈 [2]
11289정성태9/3/201721582개발 환경 구성: 325. GAC에 어셈블리 등록을 위해 gacutil.exe을 사용하는 경우 주의 사항
11288정성태9/3/201718271개발 환경 구성: 324. 윈도우용 XAMPP의 아파치 서버 구성 방법
11287정성태9/1/201727534.NET Framework: 680. C# - 작업자(Worker) 스레드와 UI 스레드 [11]
11286정성태8/28/201714841기타: 67. App Privacy Policy
11285정성태8/28/201723441.NET Framework: 679. C# - 개인 키 보안의 SFTP를 이용한 파일 업로드파일 다운로드1
11284정성태8/27/201721490.NET Framework: 678. 데스크톱 윈도우 응용 프로그램에서 UWP 라이브러리를 이용한 비디오 장치 열람하는 방법 [1]파일 다운로드1
11283정성태8/27/201717255오류 유형: 418. CSS3117: @font-face failed cross-origin request. Resource access is restricted.
11282정성태8/26/201719699Math: 22. 행렬로 바라보는 피보나치 수열
11281정성태8/26/201721489.NET Framework: 677. Visual Studio 2017 - NuGet 패키지를 직접 참조하는 PackageReference 지원 [2]
11280정성태8/24/201718544디버깅 기술: 94. windbg - 풀 덤프에 포함된 모든 모듈을 파일로 저장하는 방법
11279정성태8/23/201730174.NET Framework: 676. C# Thread가 Running 상태인지 아는 방법
11278정성태8/23/201718289오류 유형: 417. TFS - Warning - Unable to refresh ... because you have a pending edit. [1]
11277정성태8/23/201719539오류 유형: 416. msbuild - error MSB4062: The "TransformXml" task could not be loaded from the assembly
11276정성태8/23/201723886.NET Framework: 675. C# - (파일) 확장자와 연결된 실행 파일 경로 찾기 [2]파일 다운로드1
11275정성태8/23/201732837개발 환경 구성: 323. Visual Studio 설치 없이 빌드 환경 구성 - Visual Studio 2017용 Build Tools [1]
11274정성태8/22/201719406.NET Framework: 674. Thread 타입의 Suspend/Resume/Join 사용 관련 예외 처리
... 91  92  93  94  95  96  97  98  99  100  101  102  103  104  [105]  ...