Windows 10에서 Docker 사용 시, 간혹 Guest OS의 GUI 가 쓰고 싶다거나 Windows 용 Testbed 가 필요할 때, Hyper-V 로 인해 VirtualBox 등의 VM을 실행 못하는 경우가 있습니다. 업무를 하다가도 이런 경우가 있는데, 아래를 참조하시면, 어느 정도... 타협 가능합니다.
- Hyper-V를 끌 경우, Docker 사용 불가 (Docker Toolbox 혹은 VirtualBox Guest OS로 Linux올리고 Docker 사용 가능
- Hyper-V를 켤 경우, VirtualBox 에러 발생
단점은 Docker 와 VirtualBox 동시에 사용할 수 없다. 라는 점...
지금 당장은 두 시스템을 동시에 쓸 일이 없으니, 이 문제는 차후에 필요할 때, 생각해보기로 합니다.
- 본 글에서는 Hypervisor가 무엇인지, Hyper-V가 무슨 타입인지 등, 기술적인 내용은 다루지 않습니다.
- Windows 10 Home 은 Hyper-V 를 지원하지 않으므로, 해당사항 없습니다.
설정방법
1. Command Prompt를 관리자 권한으로 실행합니다.
2. 명령 라인에서 아래의 명령을 실행합니다.
C:\> bcdedit /copy {current} /d "No Hyper-V"
The entry was successfully copied to <ID>
* 위 라인의 <ID> 는 {cbd971bf-b7b8-4885-951a-fa03044f5d71} 와 같은 형태로
나타납니다.
* Command Prompt 대신 powershell 을 쓰면, 정상 실행되지 않을 수 있습니다.
3. 실행 결과로 동일한 설정의 Windows 부팅 메뉴, "No Hyper-V" 가 추가되었습니다.
4. "No Hyper-V" 선택 시, Hypervisor를 활성화 하지 않도록 하기 위해 아래의 명령을 실행합니다. 이 때, <ID> 는 2의 결과로 얻어진 값을 사용합니다.
C:\> bcdedit /set <ID> hypervisorlaunchtype off
The operation completed successfully
기본 부팅옵션 설정 (선택사항)
Windows 10 부팅 시, 기본적으로 하이퍼바이저를 비활성하여,사용하려면 아래와 같이 명령을 실행해 줍니다.
bcdedit.exe /default <ID>
또한, 아래와 같이 부팅 Default Timeout 시간을 변경할 수 있습니다.
C:\> bcdedit.exe /timeout 1
혹은 실행 메뉴 (win + r) 에서 "msconfig" 를 실행하여, 아래의 화면과 같이 Default Boot 나 Timeout 설정을 진행해도 됩니다.
참고자료
[1] https://en.wikipedia.org/wiki/Hypervisor
[2] https://msdn.microsoft.com/ko-kr/library/windows/hardware/mt450468(v=vs.85).aspx
[3] https://docs.microsoft.com/ko-kr/windows-hardware/drivers/devtest/changing-the-default-boot-entry