Oracle VM VirtualBox를 6.0 버전으로 업데이트한 뒤 Windows 8.1 또는 Windows 10 가상 머신(VM)을 실행하려고 할 때, 다음과 같은 오류 메시지가 나타나며 세션이 시작되지 않는 문제를 겪을 수 있습니다.
"가상 머신 <VM 이름>에 대한 세션을 열지 못했습니다.
'/CPUM/CMPXCHG16B'와 '/CPUM/IsaExts/CMPXCHG16B' 구성 값이 중복되었습니다 – 이전 값을 제거하십시오! (VERR_DUPLICATE)
결과 코드: E_FAIL (0x80004005)
구성 요소: ConsoleWrap
인터페이스: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}"
오류의 원인
'Duplicate config values /CPUM/CMPXCHG16B' 오류는 CMPXCHG16B CPU 명령어가 VirtualBox.xml 파일(C:\Users\사용자이름\.VirtualBox\VirtualBox.xml)과 가상 머신의 .vbox 파일 양쪽 모두에서 활성화되어 있기 때문에 발생합니다.
이 문제를 해결하려면 위 두 위치에서 다음 줄을 삭제해야 합니다:
<ExtraDataItem name="VBoxInternal/CPUM/CMPXCHG16B" value="1"/>
해결 방법: 단계별 가이드
1단계: VirtualBox Manager 종료
먼저 실행 중인 VirtualBox Manager를 완전히 종료합니다.
2단계: 명령 프롬프트를 관리자 권한으로 실행
시작 메뉴에서 'cmd'를 검색한 후, 마우스 오른쪽 버튼을 클릭하고 '관리자 권한으로 실행'을 선택합니다.
3단계: VirtualBox 설치 폴더로 이동
명령 프롬프트에 다음 명령어를 입력합니다:
cd \Program Files\Oracle\VirtualBox
4단계: 가상 머신 목록 확인
다음 명령어로 등록된 가상 머신 목록을 출력합니다:
VBoxManage.exe list vms
5단계: 오류가 발생하는 VM 이름 확인
명령어 출력 결과에서 오류 0x80004005가 발생하는 가상 머신의 이름을 확인합니다. 예를 들어, 이 가이드에서는 'Windows8.1_x64_Pro'라는 VM에서 해당 오류가 발생했습니다.
6단계: 개별 VM에서 CMPXCHG16B 비활성화
다음 명령어를 입력하되, "VM 이름" 부분을 실제 오류가 발생하는 가상 머신의 이름으로 바꾼 후 Enter 키를 누릅니다:
VBoxManage.exe setextradata "VM 이름" VBoxInternal/CPUM/CMPXCHG16B
참고: 이 명령은 선택한 가상 머신의 .vbox 파일에서 '<ExtraDataItem name="VBoxInternal/CPUM/CMPXCHG16B" value="1"/>' 항목을 삭제하여 해당 VM에서만 CMPXCHG16B 명령어를 비활성화합니다.
예시:
- VBoxManage.exe setextradata "Windows8.1_x64_Pro" VBoxInternal/CPUM/CMPXCHG16B
7단계: 전역 설정으로 CMPXCHG16B 비활성화 (필요 시)
문제가 있던 가상 머신을 다시 시작해 보세요. 동일한 오류가 계속 발생한다면, VirtualBox Manager를 종료한 후 다음 명령어를 관리자 권한으로 입력합니다:
VBoxManage.exe setextradata global VBoxInternal/CPUM/CMPXCHG16B
참고: 이 명령은 'VirtualBox.xml' 파일에서 '<ExtraDataItem name="VBoxInternal/CPUM/CMPXCHG16B" value="1"/>' 항목을 삭제하여 모든 가상 머신에 대해 전역적으로 CMPXCHG16B 명령어를 비활성화합니다.
마무리
위 과정을 완료하면 더 이상 0x80004005 오류 없이 가상 머신이 정상적으로 시작될 것입니다. 이 가이드가 도움이 되었다면 주변에 공유하여 다른 분들도 문제를 해결할 수 있도록 도와주세요. 추가 문의 사항이 있다면 댓글로 남겨주시면 성심껏 답변드리겠습니다.