VirtualBox, OVA 가져오기 및 E_INVALIDARG 0x80070057 오류
업데이트 날짜:2025년 12월 9일
최근 가상화 모험에서 새로운 문제에 직면했습니다. Linux 가상 머신 중 하나를 내보내 다른 호스트에서 사용할 수 있도록 하고 싶었습니다. 서류상으로는 VirtualBox에 해당 기능이 있습니다. 파일> 기기 내보내기. 그런 다음 원하는 가상 머신을 선택하고, 사용할 형식을 결정하고, MAC 주소를 구성하고, VirtualBox가 ova 파일을 생성하도록 합니다. 대상 호스트에서 이 어플라이언스를 가져옵니다.
이 작업을 시도했는데 오류가 발생했습니다. GUI에는 너무 많은 세부 정보 없이 E_INVALIDARG 0x80070057이 표시되었습니다. VirtualBox 포럼의 티켓을 읽으면서 가져오기 프로세스의 실패로 인해 다양한 문제가 있을 수 있다는 것을 알게 되었습니다. 이러한 잠재적인 문제를 하나씩 해결하려고 하기보다는 다른 길을 선택했습니다. OVA 프로세스를 사용하지 않고 수동으로 기계를 가져옵니다. 보여드리겠습니다.
OVA는 단지 아카이브일 뿐입니다
기술적으로 어플라이언스는 모든 가상 머신 데이터가 하나의 파일에 훌륭하게 패키지되어 있습니다. 내부에는 가상 디스크(및 모든 스냅샷), 가상 머신 매니페스트 등이 있습니다. 거기에는 큰 미스터리가 없습니다. 가져오기 프로세스는 단지 압축을 풀고 구성 파일(.vbox)을 구문 분석하며, 가상 CD 드라이브 경로나 공유 폴더 경로와 같이 해결할 수 없는 오류가 있는 경우 중지됩니다.
따라서 수동으로 동일한 작업을 수행할 수 있습니다.
1단계:가상 머신의 복제본 생성
이를 수행하려는 이유는 다음과 같습니다. 사용하는 경우 최신 스냅샷만 복제할 수 있습니다. 이렇게 하면 새 가상 머신이 더 작아집니다. 또한 가상 머신 데이터를 새 호스트에 복사할 때 촬영하고 고려해야 할 스냅샷 수가 더 적습니다. 하지만 필수사항은 아닙니다.
최신 상태만 복사하려는 이유는 시스템 관리가 단순화되고 전송에 필요한 데이터 양이 줄어들기 때문입니다. 네트워크를 통해 내보내기를 수행하는 경우 이는 LAN에서도 큰 차이를 만들 수 있습니다.
2단계:전체 가상 머신 폴더를 두 번째 호스트에 복사
VirtualBox 가상 머신 폴더의 구조는 다음과 같습니다:Logs 및 Snapshots라는 디렉터리, 하나 이상의 가상 디스크(일반적으로 .vdi 형식), .vbox 접미사(확장자)가 있는 구성 파일, .vbox-prev 접미사가 있는 두 번째 구성 파일(변경한 경우).
vbox 파일은 GUI에서 볼 수 있는 모든 종류의 선언이 포함된 XML 매니페스트입니다. 컴퓨터가 실행 중인 동안에는 이 파일을 편집하면 안 되지만 오프라인 상태의 컴퓨터에서는 안전하게 편집할 수 있습니다. 그러면 다음에 해당 머신을 시작할 때 변경 사항이 반영됩니다. 예를 들어 미디어 아래에는 모든 디스크와 스냅샷이 나열된 하드디스크 섹션이 표시됩니다.
...
<하드디스크>
형식="VDI"
유형="보통">
<하드디스크 uuid="{f062fe0b-578c-4461-9a10-8d65d28347ac}"
위치="스냅샷/{f062fe0b-578c-4461-9a10-8d65d28347ac}.vdi"
형식="VDI">
<하드디스크 uuid="{f942b89a-49ff-40fa-8d62-e6fdd8a205d9}"
위치="스냅샷/{f942b89a-49ff-40fa-8d62-e6fdd8a205d9}.vdi"
형식="VDI"/>
하드디스크>
하드디스크>
하드디스크>
...
이 선언은 특정 시스템이 Kubuntu-24.04.vdi라는 하드 디스크를 사용하고 두 개의 스냅샷이 연결되어 있음을 알려줍니다. 이해가 되실 겁니다.
좋습니다. 이 모든 데이터, 전체 폴더를 두 번째 호스트에 복사하세요.
3단계:경로 확인
가상 머신을 "가져오기" 전에 텍스트 편집기에서 vbox 파일을 열고 "재미있는" 경로를 찾아야 합니다. 여기에는 마운트된 ISO 파일, 공유 게스트 경로 또는 이와 유사한 모든 항목, 첫 번째 시스템에 하드 코딩되어 두 번째 시스템에는 없을 수 있는 모든 항목이 포함됩니다. 이러한 오류로 인해 새 가상 머신 추가가 실패하게 됩니다. OVA 아카이브를 사용할 때는 불투명하지만 수동으로 수행할 때는 완전한 가시성과 제어가 가능합니다.
예를 들어 두 시스템에서 서로 다른 공유 게스트 경로를 사용한다고 가정해 보겠습니다. 관련 선언을 찾는 가장 쉬운 방법은 첫 번째 시스템에서 사용한 적이 있는 특정 경로를 검색하는 것입니다. 내용을 확인하세요:
<공유폴더>
<공유폴더 이름="SHARED_FOLDER"
hostPath="G:\Virtual Machines\공유 폴더"
쓰기 가능="true"
자동 마운트="참"
autoMountPoint="SHPATH"/>
여기서는 G:드라이브(Windows)에 설정된 경로의 예를 사용했습니다. 그러나 이러한 경로는 두 번째 시스템에 존재하지 않거나 다른 문자로 설정될 수 있습니다. 따라서 다음과 같이 변경해야 합니다.
hostPath="P:\다른 경로\공유 폴더"
그리고 두 번째 시스템이 Linux라면 완전히 다른 시스템이 필요할 수도 있습니다.
hostPath="/home/dedoimedo/Shared-folder"
이러한 하드 코딩된 경로 외에도 이 기회를 활용하여 메모리 할당, CPU 코어 수, 특정 그래픽 어댑터 사용 등을 포함한 다른 설정을 조정할 수도 있습니다. 하지만 한 번에 하나씩 변경하고 가상 머신을 추가한 후 오류가 발생하는지 확인하는 것이 가장 좋습니다.
필요에 따라 vbox 파일을 수정한 후 해당 파일을 두 번 클릭하면 됩니다. Windows와 Linux 모두에서 기본 설치를 사용하면 이 특정 문자열과 파일 형식이 VirtualBox 하이퍼바이저와 연결됩니다. XML 구성이 유효하면 이제 가상 머신이 목록에 표시됩니다. 완료되었습니다.
3단계:대체 접근 방식
XML 파일을 편집하는 것이 불편하다면 다음을 수행할 수 있습니다:
- 가상 머신을 복제합니다.
- 설정을 엽니다(VirtualBox GUI를 통해). ISO 파일, 공유 폴더 등과 같이 하드 코딩된 경로를 제거하세요.
- 가상 머신을 새 대상에 복사합니다.
- vbox 파일을 두 번 클릭하여 하이퍼바이저에 추가하세요.
- 설정을 다시 한 번 열고 두 번째 기기에 있어야 하는 새 경로를 추가하세요.
- 가상 머신을 실행하고 작업을 수행하세요.
주의사항 및 가능한 라이센스 제한
위에서 알 수 있듯이 저는 복사/마이그레이션 프로세스에 Linux 가상 머신을 사용했습니다. 특히 Linux와 Kubuntu는 이 Linux 배포판이 사용에 제한이 없고 말하자면 시스템 수나 "라이센스" 수에 제한이 없기 때문입니다.
Windows와 같은 독점 운영 체제를 사용하여 그렇게 하는 경우 하드웨어 변경으로 인해 라이센스가 비활성화될 수 있습니다. 아니면 새로 구입해야 할 수도 있습니다. 단일 호스트 또는 단일 실행 인스턴스에 라이선스가 부여된 특정 (유료) 프로그램을 사용하는 경우 가상 머신의 새 복사본을 생성하면 라이선스 또는 해당 소프트웨어의 사용 약관에 문제가 발생할 수 있으므로 이 점을 고려해야 합니다.
결론
자동화되고 깔끔하게 포장된 절차가 효과가 없다면 수동 방법이 효과가 없을 수도 있습니다. 저는 여러 가상 머신을 사용하여 Windows 및 Linux 운영 체제에서 폴더 복사 + XML 변경 접근 방식을 여러 번 테스트했습니다. 결과는 훌륭합니다. 물론, 한두 가지 설정을 조정해야 할 수도 있지만 그렇게 하면 금상첨화입니다. 즉, 소프트웨어 라이센스 제한 내에서 이루어집니다.
이 튜토리얼이 도움이 되기를 바랍니다. 특정 오류 코드를 디버깅하는 것은 거의 모든 가져오기 오류에서 발생하므로 지루할 수 있지만 특정 해결 방법은 많고 다양합니다. 수동 복사 절차는 강력하지만 구성에 대부분 하드 코딩된 경로 등 몇 가지 사항을 고려해야 합니다. 복사 전이나 후에 이를 편집하여 새 가상 머신을 원활하게 추가할 수 있습니다. 글쎄요. 가상화를 즐기세요.
건배.