This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

Virtualbox: nhân bản một máy ảo

phương pháp thủ công
Added by over 2 years ago  »  Votes: 2/2

Keywords: host, guest, virtualbox

Làm thế nào để nhân bản một máy ảo (guest) đang chạy trong host này để có một máy ảo mới, có thể sử dụng ở host khác? Câu hỏi này cũng bình thường, với những người lười biếng, nhưng câu trả lời của nó sẽ rất có ích, để

  1. Không phải tốn công cài lại (một máy windows chẳng hạn) (mục đích 1)
  2. Sử dụng lại cấu hình đã thiết lập (mục đích 2)

Ngoài ra, khi bạn không thể sử dụng giao diện đồ họa của Virtualbox, thì tìm câu trả lời tốt nhất cho câu hỏi trên không phải là chuyện đơn giản. (mục đích 3)

Có mấy cách giải quyết sau để tạo A2 là nhân bản một máy ảo A (nhớ là tắt A trước khi làm gì nhé)

Cách 1 (bán chính quy)

  1. Dùng lệnh VBoxManage clonehd để nhân bản các ổ cứng của A.
  2. Dùng giao diện đồ họa của Virtualbox để tạo một máy ảo mới A2, với cấu hình (của Virtualbox cho cho máy này) giống với A càng nhiều càng tốt. Sau đó, sử dụng các ổ cứng vừa được tạo ra cho A2

Cách 2 (chính quy)

Dùng lệnh VBoxManage export, là cách chính quy được cung cấp bởi Virtualbox

1 VBoxManage export <tên_ca_A> --output B.ovf
2 # Rất là lâu nhé, các tập tin sẽ tạo ra: B.ovf, các tập tin đĩa ảo

Sau đó, bạn chép tất cả các tập tin được tạo ra qua host khác, dùng lệnh VBoxManage import B.ovf để tạo ra máy mới

Cách 3 (du kích)

  1. Chép các tập tin đĩa ảo (~/.VirtualBox/HardDisks/), tập tin mô tả máy ảo (~/.VirtualBox/Machines/A/) qua host mới
  2. Trên host cũ, mở tập tin ~/.VirtualBox/VirtualBox.xml) và chép mọi thứ liên quan tới máy A vào tập tin VirtualBox.xml tương ứng trên host mới
  3. Chỉnh sửa các đường dẫn liên quan tới máy A2 (tức là A nhưng bây giờ đã ở host mới)
  4. Khởi động lại máy để Virtualbox nạp lại tập tin VirtualBox.xml (chưa thấy cách nào khác hay hơn)
  5. Dùng VBoxManage modifyvm để điều chỉnh một số cấu hình cho phù hợp giữa A2host mới. Điều này là cần thiết, ví dụ ở host cũ, bạn dùng bridge network cho card mạng re0, thì ở host mới có thể chỉ có card mạng eth0. Ngoài ra, cũng nên chỉnh địa chỉ MAC để tránh trùng lặp với máy ở host cũ
  6. Khởi động máy ảo VBoxManage startvm A2 --type headless (xem (blog) vbox headless)

Sau khi nhân bản, một trong những vấn đề gây đau đầu nhất là sự thay đổi địa chỉ MAC của card mạng. Ví dụ, hệ thống Debian Lenny, sau khi có card mạng rồi, nó sẽ gán cho địa chỉ MAC của card đó với giao diện eth0. Nếu VirtualBox thay đổi địa chỉ MAC của card (cái này thì dễ dàng thực hiện lắm), hệ thống sẽ không hề biết, mà xem rằng có một card mới, và thế là tòi ra chàng eth1, hệ quả là hệ thống không vô mạng được nếu không cấu hình hợp lý (mặc định, hệ thống Debian khi cài đặt chỉ tham gia network ở giao diện eth0).

Để giải quyết vấn đề vừa nói, có nhiều cách. Nhưng tới giờ cơm rồi, mình đi ăn đã. Hẹn gặp lại bạn!


Comments

Added by hoangtran over 2 years ago

like it :-D

Added by over 2 years ago

Có cái bình chọn đó bác haha

Added by over 2 years ago

Trong bước 4 ở trên, để nạp lại tập tin VirtualBox.xml thì không cần khởi động lại máy, mà thực hiện các bước sau

  1. Tắt (lưu trạng thái) của tất cả các máy đang chạy
  2. Kiểm tra và hủy mọi tiến trình VirtualBox
  3. Giải phóng mô-đun vboxdrv (cùng các mô-đun phụ thuộc: vboxnetflt vboxnetadp)
  4. Nạp lại mô-đun vboxdrv
  5. Dùng lệnh VBoxManage list vms để kiểm tra kết quả