성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] VT sequences to "CONOUT$" vs. STD_O...
[정성태] NetCoreDbg is a managed code debugg...
[정성태] Evaluating tail call elimination in...
[정성태] What’s new in System.Text.Json in ....
[정성태] What's new in .NET 9: Cryptography ...
[정성태] 아... 제시해 주신 "https://akrzemi1.wordp...
[정성태] 다시 질문을 정리할 필요가 있을 것 같습니다. 제가 본문에...
[이승준] 완전히 잘못 짚었습니다. 댓글 지우고 싶네요. 검색을 해보...
[정성태] 우선 답글 감사합니다. ^^ 그런데, 사실 저 예제는 (g...
[이승준] 수정이 안되어서... byteArray는 BYTE* 타입입니다...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Hyper-V - Generation 2 유형의 VM 생성 시 ISO 부팅이 안된다면?</h1> <p> VM을 Generation 2(정확한 명칭은, "generation 2 VM"이라고 합니다.)로 생성한 경우, 운영체제 설치를 위해 ISO 이미지를 마운트하고 부팅시키면 다음과 같은 초기 화면이 뜨면서 설치를 못하는 경우가 있습니다. <br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Boot Failed: EFI SCSI Device. PXE Network Boot using IPv4 ...... PXE-E18: Server response timeout. Boot Failed: EFI Network. Boot Failed: EFI SCSI Device. Boot Failed: EFI SCSI Device. No Operating System was Loaded. Press a key to retry the reboot sequence... </pre> <br /> 현재 Generation 2 유형의 VM을 지원하는 운영체제는 다음의 4가지로 제한되어 있다는 것이 그 원인입니다.<br /> <br /> <ul> <li>Windows Server 2012</li> <li>Windows Server 2012 R2</li> <li>64-bit versions of Windows 8</li> <li>64-bit versions of Windows 8.1</li> </ul> <br /> 가령, 32비트 윈도우 8.1용의 ISO 파일로 VM DVD에 마운트한 경우 위에서 예시한 것처럼 부팅 오류가 발생합니다. 왜냐하면 Windows 8.1의 UEFI에는 CSM(Compatibility Support Module)이라 불리는 32비트 구현이 없기 때문이라고 합니다.<br /> <br /> 어쩔 수 없습니다. Gen 2 VM을 만들고 싶다면 64비트용의 Windows 8/2012 ISO 파일을 사용해야 합니다. 그래도 약간 신경을 쓰셔야 합니다. 해당 ISO 파일로 부팅하는 경우 다음과 같이 초기에 키 입력을 하라는 메시지가 나오는데요.<br /> <br /> <img alt='hyper-v-boot_from_iso_1.png' src='/SysWebRes/bbs/hyper-v-boot_from_iso_1.png' /> <br /><br /> 이 순간을 놓치면 다시 부팅 실패 단계로 넘어가 버립니다. ^^ (그런 경우, reset하고 위의 메시지가 나오는 시점을 기다렸다가 아무 키나 눌러주시면 설치 화면으로 진행할 수 있습니다.)<br /> <br /> <hr style='width: 50%' /><br /> <br /> 참고로, Hyper-V Gen2에 대해 좀 더 깊이 알고 싶으시다면 다음의 글이 도움될 것입니다.<br /> <br /> <ul> <li>Part 1: <a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-1'>Introduction to generation 2 virtual machines</a> </li> <li>Part 2: <a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-2'>Networking and boot order</a> </li> <li>Part 3: <a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-3'>Storage</a> </li> <li>Part 4: <a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-4'>Keyboard for Windows 8 & Windows Server 2012</a> </li> <li>Part 5: <a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-5'>Kernel debugging</a> </li> <li>Part 6: <a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-6'>Secure Boot</a> </li> <li>Part 7: FAQ</li> <li>Part 8: <a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-8'>Manually migrating generation 1 virtual machines to generation 2</a> </li> <li>Part 9: <a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-9'>Installing from ISO</a> </li> <li>Part 10: <a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-10'>Utility for converting generation 1 virtual machines to generation 2 (Convert-VMGeneration)</a></li> </ul> <br /> 위의 글을 읽으면서 Part 9에서 재미있는 것을 알게 되었는데요. 기존 ISO 파일로 Gen2 유형의 VM에 설치할 수 있는 방법이 소개되어 있습니다. 개인적으로 테스트해보다가 마지막 단계에서 제작된 iso 파일을 실수로 날려버려 완료할 수 없었기 때문에 정말 되는지까지는 확인을 못해봤습니다. (어째... 다시 하기 싫군요. ^^;)<br /> <br /> 일단, 진행된 단계까지만 정리한 것을 공유합니다.<br /> <br /> "<a target='tab' href='https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-generation-2-virtual-machines-part-9'>Installing from ISO</a>"의 내용대로 기존 (Gen2를 지원하지 않는) ISO 파일의 내용을 변경하려면 <a target='tab' href='http://www.magiciso.com/'>MagicISO</a>와 같은 상용 도구를 사용하는데, <a target='tab' href='http://www.microsoft.com/en-ie/download/details.aspx?id=39982'>ADK(Windows Assessment and Deployment Kit for Windows 8.1)</a>에 포함된 oscdimg.exe가 다소 불편하지만 비슷한 기능을 제공하고 있습니다.<br /> <br /> 실제로 Part 9의 내용을 보면 oscdimg.exe를 이용해 cdboot.efi / efisys.bin 파일을 교체해서 다시 ISO 파일을 만드는 과정을 설명하고 있습니다.<br /> <br /> 잠깐 실습해 볼까요? ^^ 우선, 변경하려는 ISO 이미지를 mount 시켜서 해당 내용을 하드 디스크에 복사합니다. 제 경우에는 다음의 경로에 복사했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > E:\MSDN\Platform\Win8\g2 </pre> <br /> 이제 아래의 경로에 가서,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > E:\MSDN\Platform\Win8\g2\efi\microsoft\boot </pre> <br /> 기존의 cdboot.efi 파일을 이름변경(또는 삭제)하고 또 다른 cdboot_noprompt.efi 파일을 기존의 cdboot.efi 파일명으로 변경해 줍니다. 마찬가지로 efisys.bin에 대해서도 efisys_prompt.bin 파일로 교체한 후 다음과 같은 명령을 통해서 ISO 이미지 파일을 다시 생성합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > d:\temp>"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\Oscdimg" -m -o -u2 -udfver102 -bootdata:2#p0,e,b"E:\MSDN\Platform\Win8\g2\boot\etfsboot.com"#pEF,e,b"E:\MSDN\Platform\Win8\g2\efi\microsoft\boot\efisys.bin" "E:\MSDN\Platform\Win8\g2" E:\MSDN\Platform\Win81_noprompt.iso OSCDIMG 2.56 CD-ROM and DVD-ROM Premastering Utility Copyright (C) Microsoft, 1993-2012. All rights reserved. Licensed only for producing Microsoft authorized content. Scanning source tree (1645 files in 500 directories) Scanning source tree complete (1839 files in 641 directories) Computing directory information complete Image file is 2845868032 bytes (before optimization) Writing 1839 files in 641 directories to E:\MSDN\Platform\Win81_noprompt.iso 100% complete Storage optimization saved 228 files, 64491520 bytes (3% of image) After optimization, image file is 2786918400 bytes Space saved because of embedding, sparseness or optimization = 64491520 Done. </pre> <br /> 이렇게 해서 만들어진 Win81_noprompt.iso 파일을 VM에 마운트하고 부팅하면... (된다고 합니다.)<br /> <br /> 참고로, oscdimg.exe파일은 "Windows Assessment and Deployment Kit for Windows 8.1 (otherwise known as the ADK)"에서 구할 수 있는데 이를 위해 해당 툴킷을 설치해도 되지만, 기존 PC에 설치된 툴킷으로부터 oscdimg.exe파일만 복사해 와서 실행해도 무방합니다.<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1235
(왼쪽의 숫자를 입력해야 합니다.)