Computer >> 컴퓨터 >  >> 소프트웨어 >> 가상 기기

VirtualBox에서 Windows 8.1 부팅 오류를 수정하는 방법

Windows 8이 곧 지원 중단될 수 있으므로 가상 머신에서 게스트 운영 체제로 사용한다는 개념이 그 어느 때보다 매력적입니다. 그리하여 이 글. 따라서 당신이 직면하고 있는 이 상황. 64비트 Windows 8.X 제품군 운영 체제 중 하나를 VirtualBox에서 게스트로 부팅하려고 합니다. 이것은 Windows 8 이상일 수 있습니다. 어느 쪽이든 초기 부팅이 몇 초 안에 실패하고 가상 머신을 닫아야 합니다. 오류 코드는 0x000000C4입니다.

이 기사에서는 이 작지만 멋진 문제를 해결하여 VirtualBox 내부에 게스트 운영 체제로 Windows 8.1을 설치할 수 있는 방법을 보여줍니다. 또한 배경에서 일어나는 괴상한 일들에 대해서도 조금 배우게 될 것입니다. 나를 따르라.

문제

간단하게 들리겠지만 Windows 8.1용으로 구성된 가상 머신을 부팅하고 Windows 8.1 DVD 또는 ISO 이미지를 사용하면 잠시 후 화면에 다음 텍스트가 나타납니다. 이것은 VirtualBox 4.0 이상의 모든 버전에서 발생합니다.

PC를 다시 시작해야 합니다.
전원 버튼을 길게 눌러주세요.
오류 코드:0x000000C4
매개변수:
...

특히 이 특정 가상 머신에 대한 VirtualBox 창 인스턴스를 닫고 다시 시도해야 하기 때문에 끔찍하게 들립니다. 그러나 결과는 동일할 것입니다. 자, 당신은 무엇을 합니까?

솔루션

여기에서 해야 할 일이 많습니다. 먼저 오류를 읽고 이해하십시오. Windows BSOD에 어느 정도 익숙하다면 비슷해 보일 것입니다. 이것은 운영 체제가 잘못된 작업을 수행하려고 시도하는 기계 명령 예외입니다. 하지만 이제 우리가 무엇을 찾아야 하는지 알았으니, 그것은 쉬울 것입니다.

VirtualBox 포럼, 티켓 및 온라인을 검색하면 일반적으로 이것이 무엇을 의미하는지에 대한 많은 참조를 찾을 수 있습니다. 이는 CMPXCHG16B 명령어가 비활성화되어 있고 활성화해야 한다는 사실로 귀결됩니다. Windows 8.1에서 부팅하려면 필수입니다. Wikipedia에서 인용:

초기 AMD64 프로세서에는 대부분의 80486 이후 프로세서에 있는 CMPXCHG8B 명령의 확장인 CMPXCHG16B 명령이 없었습니다. CMPXCHG8B와 유사하게 CMPXCHG16B는 8진수 단어에 대한 원자 연산을 허용합니다. 이는 잠금 없는 알고리즘과 대기 없는 알고리즘에서 흔히 볼 수 있는 포인터 크기보다 큰 데이터에서 비교 및 ​​교환을 사용하는 병렬 알고리즘에 유용합니다. CMPXCHG16B가 없으면 중요 섹션 또는 대체 잠금 해제 접근 방식과 같은 해결 방법을 사용해야 합니다. 이것은 또한 64비트 Windows가 8테라바이트보다 큰 사용자 모드 주소 공간을 가지지 못하게 합니다. 64비트 버전의 Windows 8.1에는 이 기능이 필요합니다.

실제로 가상화는 가상 하드웨어를 만드는 것입니다. 일부 기능은 노출되고 일부는 노출되지 않습니다. VirtualBox는 기본적으로 게스트에게 CMPXCHG16B 명령을 노출하지 않도록 설계되어 우리가 직면한 문제를 일으킵니다. 따라서 활성화해야 합니다. 이것은 VirtualBox 명령줄을 사용하여 수행됩니다.

"\VBoxManage.exe" setextradata
"<가상 머신 이름>" VBoxInternal/CPUM/CMPXCHG16B 1

이 명령이 성공하려면 여전히 호스트 시스템에 최신 프로세서가 필요합니다. 프로세서에 NX/XD 비트가 없거나 BIOS에서 비활성화된 경우 진행하기 전에 먼저 호스트에서 문제를 해결해야 합니다. 어떤 경우에는 불가능할 수도 있습니다.

이 명령을 실행하면 명령을 사용할 수 있고 Windows 8.1이 성공적으로 부팅됩니다. 그런 다음 시스템 설치와 같이 필요한 일반적인 작업을 수행할 수 있습니다.

결론

여기 있습니다. 조금 길죠, 이 짧은 튜토리얼. 이제 Oracle 티켓 데이터베이스에 대한 링크를 게시할 수 있었지만 요점을 놓쳤을 것입니다. Dedoimedo는 교육에 관한 모든 것입니다. 맹목적으로 임의의 위험한 명령을 실행하는 것이 아니라 문제를 이해하기를 원합니다. 이것이 무엇인지 아는 것은 아니지만 BIOS/UEFI에서 옵션을 켜거나 끄는 것과 같습니다. 자, 이제 당신은 사업에 대해 이야기하고 있습니다.

어느 쪽이든 CPU 아키텍처, 가상화 소프트웨어, VirtualBox의 동작 및 작동 방식, 명령줄에서 숨겨진 기능 및 설정을 제어하는 ​​방법에 대해 조금 더 배웠습니다. 정말 깔끔합니다. 그리고 여기서 끝난 것 같아요.

건배.