Nhập VirtualBox, OVA và lỗi E_INVALIDARG 0x80070057
Cập nhật:ngày 9 tháng 12 năm 2025
Gần đây, tôi gặp phải một vấn đề mới trong cuộc phiêu lưu ảo hóa của mình. Tôi muốn xuất một trong các máy ảo Linux của mình để có thể sử dụng nó trên một máy chủ khác. Trên giấy tờ, chức năng này có trong VirtualBox. Tệp> Xuất công cụ. Sau đó, bạn chọn máy ảo mong muốn, quyết định định dạng nào bạn muốn sử dụng, định cấu hình địa chỉ MAC và để VirtualBox tạo tệp ova. Trên máy chủ đích, bạn nhập công cụ này.
Tôi đã cố gắng thực hiện việc này và gặp phải lỗi. GUI cho biết E_INVALIDARG 0x80070057 mà không có quá nhiều chi tiết. Đọc qua các vé trên diễn đàn VirtualBox, tôi biết được rằng có thể có nhiều vấn đề khác nhau dẫn đến lỗi trong quá trình nhập. Thay vì cố gắng giải quyết từng vấn đề tiềm ẩn này, tôi đã chọn một con đường khác. Nhập máy thủ công, không sử dụng quy trình OVA. Hãy để tôi chỉ cho bạn.
OVA chỉ là một kho lưu trữ
Về mặt kỹ thuật, thiết bị này là tất cả dữ liệu máy ảo được đóng gói gọn gàng thành một tệp. Bên trong, bạn sẽ có các ổ đĩa ảo (và mọi ảnh chụp nhanh), bảng kê khai máy ảo, v.v. Không có bí ẩn lớn ở đó. Quá trình nhập chỉ giải nén những thứ này, phân tích tệp cấu hình (.vbox) và nếu có bất kỳ lỗi nào không thể giải quyết, như đường dẫn ổ đĩa CD ảo hoặc đường dẫn thư mục dùng chung, quá trình sẽ tạm dừng.
Vì vậy, chúng ta có thể thực hiện tương tự theo cách thủ công.
Bước 1:Tạo bản sao máy ảo của bạn
Lý do bạn muốn thực hiện việc này như sau:nó cho phép bạn chỉ sao chép ảnh chụp nhanh mới nhất, nếu bạn sử dụng bất kỳ ảnh chụp nhanh nào. Điều này làm cho máy ảo mới nhỏ hơn. Bạn cũng sẽ có ít ảnh chụp nhanh hơn để chụp và tính đến khi sao chép dữ liệu máy ảo sang máy chủ mới. Nhưng nó không bắt buộc.
Lý do bạn có thể chỉ muốn sao chép trạng thái mới nhất là vì nó đơn giản hóa việc quản lý máy và giảm lượng dữ liệu cần thiết cho quá trình truyền. Nếu bạn đang xuất qua mạng, điều này có thể tạo ra sự khác biệt lớn (ngay cả trên mạng LAN).
Bước 2:Sao chép toàn bộ thư mục máy ảo sang máy chủ thứ hai
Cấu trúc của bất kỳ thư mục máy ảo VirtualBox nào như sau:các thư mục có tên Nhật ký và Ảnh chụp nhanh, một hoặc nhiều ổ đĩa ảo (thường là định dạng .vdi) và tệp cấu hình có hậu tố .vbox (tiện ích mở rộng), cộng thêm có thể là tệp cấu hình thứ hai có hậu tố .vbox-prev (nếu bạn thực hiện thay đổi).
Tệp vbox là một tệp kê khai XML có tất cả các loại khai báo mà bạn thấy trong GUI. Bạn không nên chỉnh sửa tệp này trong khi bất kỳ máy nào đang chạy, nhưng bạn có thể làm như vậy một cách an toàn đối với bất kỳ máy nào ở trạng thái ngoại tuyến. Những thay đổi sau đó sẽ được phản ánh vào lần tiếp theo bạn khởi chạy máy đó. Ví dụ:trong Phương tiện, bạn sẽ thấy phần HardDisks liệt kê tất cả các ổ đĩa và ảnh chụp nhanh:
...
<Đĩa cứng>
định dạng="VDI"
gõ="Bình thường">
định dạng="VDI">
định dạng="VDI"/>
Đĩa cứng>
Đĩa cứng>
...
Tuyên bố này cho chúng ta biết máy cụ thể sử dụng đĩa cứng có tên Kubuntu-24.04.vdi và có hai ảnh chụp nhanh được liên kết với nó. Bạn hiểu ý rồi đấy.
Được rồi, sao chép tất cả dữ liệu này, toàn bộ thư mục, sang máy chủ thứ hai của bạn.
Bước 3:Kiểm tra đường dẫn
Trước khi "nhập" máy ảo, bạn nên mở tệp vbox trong trình soạn thảo văn bản và tìm bất kỳ đường dẫn "buồn cười" nào. Điều này sẽ bao gồm mọi tệp ISO được gắn, mọi đường dẫn khách được chia sẻ hoặc tương tự, bất kỳ thứ gì sẽ được mã hóa cứng cho hệ thống đầu tiên và có thể không tồn tại trên hệ thống thứ hai. Bất kỳ lỗi nào như vậy sẽ khiến việc thêm máy ảo mới không thành công. Điều này không rõ ràng khi bạn sử dụng kho lưu trữ OVA nhưng bạn có toàn quyền xem và kiểm soát khi thực hiện thủ công.
Ví dụ:giả sử bạn sử dụng đường dẫn khách chung khác nhau trên hai hệ thống. Cách dễ nhất để tìm khai báo liên quan là tìm kiếm đường dẫn cụ thể mà bạn biết mình đã sử dụng trên hệ thống đầu tiên. Kiểm tra xem nó nói gì:
có thể ghi ="đúng"
autoMount="true"
autoMountPoint="SHPATH"/>
Ở đây, tôi đã sử dụng ví dụ về đường dẫn được đặt trong ổ G:(Windows). Nhưng đường dẫn như vậy có thể không tồn tại trên hệ thống thứ hai của bạn hoặc nó có thể được đặt dưới một chữ cái khác. Vì vậy, bạn cần phải thay đổi điều này, thành:
HostPath="P:\Đường dẫn khác\THƯ MỤC CHIA SẺ"
Và nếu hệ thống thứ hai của bạn là Linux thì có thể nó cần phải là một hệ thống khác:
HostPath="/home/dedoimedo/Shared-folder"
Ngoài các đường dẫn được mã hóa cứng này, bạn cũng có thể tận dụng cơ hội này để điều chỉnh bất kỳ cài đặt nào khác, bao gồm phân bổ bộ nhớ, số lõi CPU, việc sử dụng bộ điều hợp đồ họa cụ thể, v.v. Nhưng tốt nhất bạn nên thực hiện từng thay đổi một, thử thêm máy ảo và xem có lỗi nào xảy ra không.
Khi bạn đã sửa đổi tệp vbox nếu cần, chỉ cần nhấp đúp vào tệp đó. Với cài đặt mặc định, cả trong Windows và Linux, chuỗi và loại tệp cụ thể này sẽ được liên kết với trình ảo hóa VirtualBox. Nếu cấu hình XML hợp lệ thì máy ảo sẽ hiển thị trong danh sách của bạn. Xong.
Bước 3:Phương pháp thay thế
Nếu bạn không cảm thấy thoải mái khi chỉnh sửa các tệp XML thì bạn có thể thực hiện các thao tác sau:
- Sao chép máy ảo.
- Mở Cài đặt của nó (thông qua GUI VirtualBox). Xóa mọi đường dẫn được mã hóa cứng, như tệp ISO, thư mục dùng chung, v.v.
- Sao chép máy ảo tới đích mới.
- Nhấp đúp chuột vào tệp vbox để thêm nó vào bộ ảo hóa.
- Mở Cài đặt của thiết bị một lần nữa và thêm các đường dẫn mới như lẽ ra phải có trên thiết bị thứ hai.
- Khởi chạy máy ảo và thực hiện công việc của bạn.
Cảnh báo và các hạn chế cấp phép có thể có
Như bạn có thể nhận thấy ở trên, tôi đã sử dụng máy ảo Linux cho quá trình sao chép/di chuyển. Linux và đặc biệt là Kubuntu, vì bản phân phối Linux này không có hạn chế về việc sử dụng, cả số lượng hệ thống cũng như số lượng "giấy phép", có thể nói như vậy.
Nếu bạn làm như vậy với một hệ điều hành độc quyền, như Windows, bạn có thể hủy kích hoạt giấy phép của mình do những thay đổi về phần cứng. Hoặc bạn có thể cần phải mua một cái mới. Nếu bạn sử dụng một số chương trình (trả phí) nhất định được cấp phép cho một máy chủ hoặc một phiên bản đang chạy thì bạn cũng cần cân nhắc điều này vì việc tạo bản sao mới của máy ảo có thể gây ra sự cố với giấy phép của bạn hoặc điều khoản sử dụng cho phần mềm nói trên.
Kết luận
Nếu quy trình tự động, được gói gọn gàng không phù hợp với bạn thì có thể sử dụng phương pháp thủ công. Tôi đã thử nghiệm phương pháp sao chép thư mục + thay đổi XML nhiều lần, với nhiều máy ảo, từ và đến cả hệ điều hành Windows và Linux. Kết quả thật tuyệt vời. Chắc chắn, bạn có thể cần phải điều chỉnh một hoặc hai cài đặt, nhưng sau đó, bạn thật tuyệt vời. Nghĩa là trong giới hạn cấp phép phần mềm của bạn.
Hy vọng hướng dẫn này sẽ hữu ích. Việc gỡ lỗi mã lỗi cụ thể có thể rất tẻ nhạt vì hầu như bất kỳ lỗi nhập nào cũng sẽ gây ra mã lỗi đó, trong khi các cách giải quyết cụ thể thì rất nhiều và đa dạng. Quy trình sao chép thủ công rất mạnh mẽ nhưng bạn cần tính đến một số điều, chủ yếu là các đường dẫn được mã hóa cứng trong cấu hình của bạn. Bạn có thể chỉnh sửa những điều này trước hoặc sau khi sao chép để đảm bảo máy ảo mới có thể được thêm vào một cách liền mạch. Vâng, thế đấy. Chúc bạn ảo hóa vui vẻ.
Chúc mừng.