몇 주 전에 저는 무료 시스템 이미징 소프트웨어인 Macrium Reflect를 테스트하기로 결정했습니다. Macrium Reflect는 백업 및 복원 작업을 모두 수행할 수 있는 부팅 가능한 라이브 미디어로 Windows PE를 사용합니다. 이제 시스템 이미징 소프트웨어에서는 복원 테스트가 가장 중요하며 물리적 하드웨어와 가상 머신 모두에서 이 작업을 수행하기로 결정했습니다.
여기서 문제가 발생했습니다. VirtualBox에서 PE 이미지를 부팅하려고 하면 E_FAIL(0x80004005) 오류가 발생하며 자세한 내용은 VBoxHardening.log 파일에서 확인할 수 있습니다. 이 파일 내에서 여러 줄의 텍스트 중에서 WinVerifyTrust가 없는 여러 히트를 발견했으며 그 중 하나는 아래 오류를 초래했습니다. 지금은?
자세한 문제
특정 오류 코드와 오류 속성은 그다지 중요하지 않습니다. 무슨 일이 일어났는지 더 잘 이해하려면 생성된 로그 파일을 살펴봐야 합니다. 구체적으로 다음은 실패를 초래한 줄입니다.
\Device\HarddiskVolume5\Windows\System32\bcrypt.dll [WinVerifyTrust 부족]
13b4.1f40:오류(rc=0):
13b4.1f40:supR3HardenedScreenImage/NtCreateSection:캐시됨 rc=알 수 없는 상태 -626 (0xfffffd8e) fImage=1 fProtect=0x10 fAccess=0xf cHits=4 \Device\HarddiskVolume5\Windows\System32\bcrypt.dll
여기서 볼 수 있는 것은 이 특정 라이브러리(bcrypt.dll)가 WinVerifyTrust 검사에 실패한다는 것입니다. 이 검사에 실패했지만 치명적이지는 않은 다른 개체가 있을 수 있습니다. 실제로 이 정보를 통해 이 문제에 대한 티켓과 긴 포럼 토론이 있음을 알 수 있습니다.
기본적으로 이것은 Windows가 PE 이미지의 일부로 제공하는 인증서와 현재 빌드에서 VirtualBox에 있는 인증서의 불일치로 인해 발생할 수 있습니다. 이 가상화 제품에 도입된 보안 강화로 인해 오류가 발생했습니다.
솔루션
이를 해결하는 방법에는 여러 가지가 있습니다. 가상 컴퓨터에 대해 이전 Windows 빌드로 되돌릴 수 있습니다. 이 경우 다른 이전 Windows 10 PE 이미지를 예를 들어 복구 미디어의 기준으로 사용하거나 대부분의 경우 운영 체제의 다른 버전을 사용합니다. 또는 VirtualBox 버전을 변경(업그레이드)할 수 있습니다. 후자는 일반적으로 운영 체제를 엉망으로 만드는 것보다 저렴하고 빠른 해결 방법입니다. 가장 좋은 방법은 강화 플래그를 끄는 것이지만, 이는 결코 쉬운 방법이 아닙니다.
따라서 Hello Capt. Obvious처럼 들릴 수 있지만 여기서 무엇을 하고 있는지 해결책은 가능한 경우 VirtualBox를 최신 버전으로 업데이트하는 것입니다. 여러 호스트에서 테스트한 결과 5.1.X 분기에서 5.2.X 분기로 이동하면 Windows 10 기반 가상 머신에서 이 문제가 해결되었습니다.
결론
기술자로서 지원 담당자가 소프트웨어를 최신 버전으로 업데이트하라고 하면 화를 낼 것입니다. 그러나 때때로 이 경우와 같이 이 문제를 해결하는 가장 빠르고 현명한 방법입니다. VirtualBox의 보안 강화는 다양한 문제를 야기하며 항상 Microsoft와 Oracle 간의 고양이와 쥐의 게임이 될 것입니다. 경우에 따라 일부 라이브러리가 로드되지 않아 VM 작동이 중지될 수 있습니다.
그러나 여기서 기술적인 부분은 덜 중요합니다. 중요한 것은 이 문제에 체계적인 방식으로 접근하는 방법을 알고 있다는 것입니다. 먼저 오류 코드를 주의 깊게 검토한 다음 오류 로그를 읽으십시오. 범인을 찾으면 올바른 질문을 하고 올바른 솔루션을 찾을 수도 있습니다. 이 경우 프로그램 업데이트의 문제이지만 무엇이 잘못되었는지 완전히 이해하고 있습니다. 이 작은 가이드가 현재와 미래의 모든 VirtualBox 걸림돌에 유용하기를 바랍니다.
건배.