Làm cách nào để mở các máy ảo hiện có trong VirtualBox?


40

Gần đây tôi đã có một máy trạm mới và tôi đã chuyển các máy ảo VirtualBox và VMWare Player của mình từ PC cũ sang máy tính mới.

Các máy ảo VMWare Player rất nhanh: bạn truy cập vào Tệp File -> Mở một máy ảo ảo, tìm các tệp .vmx từ PC cũ và voila! Nó đang hoạt động. Tất cả các tệp yêu cầu rõ ràng là trong cùng một thư mục.

Với VirtualBox dường như không có cách nào để làm điều đó. Có vẻ như VM được gắn với máy chủ ban đầu theo một cách kỳ diệu / vô hình như các mục đăng ký, v.v.

Câu trả lời:


48

Các câu trả lời trước có vẻ lỗi thời.

Kể từ phiên bản 4 của Trình quản lý VirtualBox của Oracle, tùy chọn "Thêm" được ẩn trong menu "Máy" (là menu của hệ điều hành). Chỉ cần chọn Thêm và điều hướng đến tệp .vbox bạn muốn. Điều này hoạt động rất tốt ngay cả khi tệp vbox nằm trên ổ đĩa ngoài: nếu ổ đĩa bị xóa sau đó, các hộp bị thiếu sẽ được đánh dấu đơn giản là 'không thể truy cập'.

nhập mô tả hình ảnh ở đây


Chỉ cần lưu ý rằng bạn sẽ phải đặt tên cho máy của mình khác với thư mục gốc hoặc xóa thư mục VM trước khi thực hiện, nếu không, Oracle quan tâm đến mẹ của bạn về việc bạn sẽ không cho phép bạn tiếp tục như ý kiến ​​của họ "thư mục đã tồn tại và có thể thuộc về cho một VM khác ".
ajeh

Điều này hoạt động mà không phải đổi tên thư mục gốc trong VirtualBox 5.2
Georg Schölly

7

Trong thư mục máy có tệp * .vbox. Kéo nó vào danh sách VM trong VirtualBox.


Điều này làm việc cho tôi trên VirtualBox 4.1.18. Chỉ cần bỏ tập tin máy ảo * .xml vào danh sách VM. Cũng cần thiết để thêm lại đĩa ảo của hệ thống trong hộp thoại lưu trữ / hệ thống.
Alex Che

Làm việc cho tôi trên Ubuntu 12.04 & VirtualBox 4.1.12
David Kaczynski

4
Dường như không hoạt động trong VirtualBox 4.3.6 trên Windows. Không cho phép tôi thả bất cứ thứ gì trên cửa sổ. :-(
Simon East

Không hoạt động trong VirtualBox 5.2.0 trên Windows
Markus Müller

5

Nhập các máy ảo hiện có từ máy chủ khác vào VirtualBox 4 trở lên trên máy chủ Windows:

  1. Nhập đĩa ảo vdi:

    1. Chuyển đến menu: * Tệp Trình quản lý phương tiện ảo.

    2. Kéo và thả [vm_name].vdivào danh sách.

  2. Thêm máy đã nhập vào danh sách trình quản lý vbox:

    1. Nhấp đúp vào [vm_name].vboxtệp trong thư mục của vm, để thêm máy này vào danh sách trình quản lý vbox.

    2. Nhấp đúp vào [vm_name].vboxbên trong danh sách trình quản lý vbox để khởi động thiết bị.

  3. Sidenote:

    1. Nếu VM xuất phát từ bản phát hành vbox cũ hơn, bạn sẽ có một [vm_name].xmlthư mục con thay vì [vm_name].vboxtrong cùng thư mục như [vm_name].vdi.

    2. Sao chép [vm_name].xmlvào cùng thư mục với [vm_name].vdivà đổi tên nó thành [vm_name].vbox.

    3. Tiếp tục với bước 1.1 hoặc 2.1 tùy thuộc vào các hành động bạn đã thực hiện.


Thật không may, nó dường như không cho phép bạn thả VMDK trên cửa sổ Trình quản lý phương tiện ảo trong VirtualBox 4.3.6 trên Windows. :-(
Simon East

1
@Simon Tìm .vboxtệp và nhấp đúp vào tệp. Nó tự thêm vào danh sách các máy ảo trong trình quản lý cho tôi (Windows 8.1)
Bojangles

4

Nếu bạn muốn sử dụng một đĩa cứng ảo hiện có và 'mở' nó vào Hộp ảo - bạn cần truy cập tệp File> Trình quản lý phương tiện ảo ảo và chọn 'Thêm.'

Duyệt đến đĩa hiện tại của bạn và chọn ok. Điều này đăng ký một đĩa với Virtual Box. Bây giờ bạn cần phải gắn đĩa này vào một VM mới hoặc hiện có để thực sự sử dụng nó.


1
Tôi đã tạo một máy mới và sau đó gắn đĩa cũ vào đó ... không trực quan lắm nhưng hoạt động với tôi! Cảm ơn
Alex R

2
Khi tôi thử điều đó (thêm .vhd đã tạo w / Win7 Virtual PC) tôi gặp lỗi: Không thể mở đĩa cứng V: \ ProgramData \ VirtualPC \ CleanTesting_XP sp1.vhd. Phương tiện cha mẹ có UUID {199e419e-a076-d811-81ef-8eeb0865d5ed} của phương tiện 'V: \ ProgramData \ VirtualPC \ CleanTesting_XP sp1.vhd' không được tìm thấy trong sổ đăng ký phương tiện ('C: \ Users \ VirtualBox.xml ').
Clay Nichols

7
Thêm mới không hoạt động trong VirtualBox 4. Có giải pháp nào khác không?
Codism

2
Đối với VirtualBox 4 trở lên (không có nút "Thêm"), hãy xem nhận xét của Kevin.
Alex Che

1
Câu trả lời này dường như đã lỗi thời.
Bryce

3

Theo mặc định, VirtualBox tải dữ liệu cấu hình của nó từ các đường dẫn đi trước:

  • Trên Windows, đây là %HOMEDRIVE%%HOMEPATH%\.VirtualBox; thường là một cái gì đó như C:\Documents and Settings\Username\.VirtualBox.
  • Trên Mac OS X, đây là $HOME/Library/VirtualBox.
  • Trên các hệ thống giống Unix (Linux, Solaris), đây là $HOME/.VirtualBox.

Điều này có nghĩa là máy dành riêng cho người dùng đã đăng nhập. Nếu bạn cần đặt một vị trí chung để lưu trữ máy giữa những người dùng khác nhau, bạn có thể ghi đè vị trí mặc định bằng cách đặt VBOX_USER_HOMEbiến môi trường. VirtualBox sẽ sử dụng đường dẫn trong biến này làm kho lưu trữ dữ liệu cấu hình VM.

Xem chủ đề trợ giúp VirtualBox trên dữ liệu cấu hình VirtualBox để biết thêm thông tin.


2

Tôi không chắc là tôi thấy một vấn đề ở đây. Trong VirtualBox nếu bạn đang mở một VM mới (có thể bạn đã tạo trên một máy tính khác), bạn sử dụng Tệp / Công cụ nhập và sau đó duyệt tìm tệp để mở. Sau khi nhập, nó có thể được tìm thấy trong bảng VM chính.

Nếu bạn đã tạo VM trên cùng một máy tính thì nó đã nằm trong khung bên trái của cửa sổ chương trình chính.

Nó có thể khác với những gì bạn đã từng sử dụng nhưng tôi không hiểu tại sao nó sẽ gây nản lòng ...


Không may mắn ... "Công cụ nhập / tệp" yêu cầu tệp OVF, không tồn tại (tôi đoán, tôi có thể đã tạo một tệp bằng cách thực hiện "Công cụ xuất khẩu" trên máy tính cũ, nhưng giờ đã quá muộn).
Alex R

Tôi nghĩ rằng tài liệu V'Box khá rõ ràng về yêu cầu này. Thật không may là bạn không thể quay lại và làm lại. Những tập tin nào bạn có sẵn? Có lẽ có một cách để chuyển đổi? Hoặc tải các tập tin cũ trở lại trên VMware và tái xuất?
hotei

2

Nếu bạn đang ở trên một máy tính giống Unix, bạn có thể làm điều này:

find /path/to/vms -name "*.vbox" -exec VBoxManage registervm {} \;

Bạn chỉ cần nhớ cung cấp toàn bộ đường dẫn đến tệp .vbox. Nếu bạn chỉ định một đường dẫn tương đối, nó sẽ dại dột cho rằng nó có liên quan đến thư mục nhà của bạn.

Ví dụ, tôi đã làm điều này sau khi xây dựng lại máy trạm của mình:

$ find /store/vm -name "*.vbox" -exec VBoxManage registervm {} \;

Nó tìm thấy và đăng ký lại tất cả các máy ảo của tôi.


2

Trên Mac OS X, chỉ cần mở tệp .vbox (từ Finder) và nó sẽ được thêm vào danh sách các máy ảo.


1

Về những lỗi như thế này:

Không thể mở đĩa cứng V: \ ProgramData \ VirtualPC \ CleanTesting_XP sp1.vhd. Phương tiện cha mẹ có UUID {199e419e-a076-d811-81ef-8eeb0865d5ed} của phương tiện 'V: \ ProgramData \ VirtualPC \ CleanTesting_XP sp1.vhd' không được tìm thấy trong sổ đăng ký phương tiện ('C: \ Users \ VirtualBox.xml ').

VirtualBox dường như lưu trữ UUID được liên kết với tên tệp đĩa ảo. Nó không có trong tập tin mà tin nhắn nói; nó phải được lưu trữ ở nơi khác Rõ ràng VirtualBox 4 không hỗ trợ hủy đăng ký / đăng ký các lệnh đĩa nữa.

Cuối cùng, tôi đã tìm thấy nếu tôi thay đổi tên của tệp VDI, thì nó không còn phù hợp với mục được lưu trong bộ nhớ cache và VirtualBox không phàn nàn.


Điều này dường như không hoạt động trên 4.3 bản phát hành. Khi tôi thử mọi câu trả lời cho câu hỏi này, tôi luôn nhận được thông báo này :(
Álvaro González

Bây giờ tôi đã tìm thấy Tệp> Trình quản lý phương tiện ảo. Điều này cho phép bạn phân bổ hình ảnh VDI khỏi máy và xóa chúng khỏi sổ đăng ký phương tiện. Sau đó chúng có thể được thêm lại vào VM như mong muốn.
Ben McIntyre

Sửa lỗi cho nhận xét trước đây của tôi: Tôi đã nhận được thông báo lỗi này vì hình ảnh đĩa gốc không phải là bản thân, nó được liên kết với một đĩa hoàn tác hoặc nó là một hình ảnh khác so với hình ảnh khác hoặc tương tự.
Álvaro González

Có, tôi đã gặp lỗi như thế này vì một số máy của tôi dựa trên ảnh chụp nhanh VMDK. Giải pháp cuối cùng của tôi là tạo một máy trống mới có VMDK gốc được đính kèm, sau đó tạo một máy trống khác có ảnh chụp nhanh VMDK được đính kèm, và cuối cùng tôi có thể bấm đúp vào tệp VBOX của mình và nó sẽ tải mà không gặp lỗi.
Simon East

1

Trên Debian, tôi đã chỉnh sửa ~/.VirtualBox/VirtualBox.xmlmachine.xmltôi cũng muốn nhập:~/VirtualBox VMs/$machine/$machine.xml

Đóng VirtualBox, thêm vào VirtualBox.xml:

<MachineRegistry>
  <MachineEntry uuid="{$find-in-machine.xml}" src="/$fullpath-to-machine.xml"/>
</MachineRegistry>

Khởi chạy lại VirtualBox, thêm mạng chỉ lưu trữ nếu cần, nhập gói ext nếu cần ( https://www.virtualbox.org/wiki/Doads ), cài đặt bổ sung hộp ảo nếu cần : sudo apt-get install virtualbox-guest-additions-iso.

Bắt đầu VM của bạn.


1

Không có giải pháp nào ở trên hoạt động với tôi vì tôi đang cố gắng nhập tệp VDI được tạo trong VirtualBox 3.1.6 vào VirtualBox 4.32 chạy trên một máy khác. Đây là một tệp độc lập và không có liên kết đến một VDI khác. Tôi liên tục nhận được lỗi:

Parent medium with UUID {a9dccef3-45f8-45ff-835e-a2b6e7279bac} of the medium 
'c:\Disks\Windows.2003.R2.Enterprise.SQL.Express.192.168.56.222.Trusted.vdi' 
is not found in the media registry

Tôi thậm chí đã nhập cùng một vdi trong VirtualBox 3.1.6 và sau đó thử sử dụng lại VBoxManage clonehd để xem liệu tôi có thể thoát khỏi lỗi không nhưng điều đó cũng không hoạt động.

Cuối cùng, tôi chỉ cần chỉnh sửa .VirtualBox / VirtualBox.xml theo cách thủ công bằng cách thêm

<HardDisk uuid="{43ea34ba-6d72-413e-8b37-32f475927ace}" location="C:/Disks/Windows.2003.R2.Enterprise.SQL.Express.192.168.56.222.Trusted.vdi" format="VDI" type="Normal"/>

(Uuid đã thu được bằng cách sử dụng VBoxManage showvhinfo trong VirtualBox 3.1.6.)

Và điều đó cuối cùng đã giải quyết được vấn đề, tức là tôi đã có thể tạo một phiên VirtualBox mới bằng cách sử dụng vdi.

Hy vọng lưu ý này sẽ giúp những người gặp vấn đề tương tự.


0

Trong VirtualBox 4.3.8 chạy trên máy chủ Win 7, giải pháp hoạt động rất trơn tru bằng cách nhân đôi trên tệp .vbox của máy - thậm chí nó còn tìm thấy các đĩa tương ứng và liên kết chúng. Trước đó tôi đã thử tùy chọn dòng lệnh registerervm nhưng điều đó phàn nàn về việc đĩa cứng đính kèm không được tìm thấy, như tài liệu dự đoán. Sau đó, tôi đã liên kết kiểu tệp đĩa cứng ảo .vdi với Virtualbox.exe, không chắc điều đó có giúp ích không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.