Làm thế nào để bạn tạo một hình ảnh vm hộp ảo từ một hệ thống tập tin linux hiện có?


1

Tôi có một hệ thống linux hiện có mà tôi muốn sử dụng để tạo một máy ảo.

Tôi đã cài đặt VirtualBox.

Tôi đã có thể sử dụng https://unix.stackexchange.com/questions/16299/USE-a-lvm-partition-as-a-virtualbox-drive để tạo VMDK từ một khối hợp lý.

Tôi không chắc chắn nên thực hiện các thủ tục nào tiếp theo để điền vào khối lượng logic đó và biến VMDK của nó thành hình ảnh hệ thống có thể sử dụng được sao chép từ hệ thống hiện có.

Nó sẽ tương đối đơn giản để thực hiện mkfs.ext3 /dev/vg1/vm_puppy, gắn kết nó và sao chép tất cả các tệp qua mạng, nhưng tôi không biết liệu điều đó có làm cho nó trở thành một hình ảnh máy ảo có thể sử dụng được hay không.

Các bước thích hợp để lấp đầy VMDK đó bằng một hệ thống có thể khởi động giả sử tôi đã biết cách thực hiện bước sao chép tệp?

Câu trả lời:


0

Bạn có thể sử dụng trong máy ảo của mình hai ổ cứng, một là vật lý mà bạn muốn hình ảnh và một ổ khác là hình ảnh ảo của vật lý đó. Để truy cập ổ đĩa vật lý, hãy tạo một "con trỏ" trong vmdk như

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/vg1/vm_puppy

sau đó trong VirtualBox tạo thêm hai ổ đĩa ảo, một cho hình ảnh của ổ đĩa vật lý và một cho một số hệ điều hành nhẹ đơn giản.

Khi bạn hoàn thành thiết lập "hệ điều hành nhẹ đơn giản" và bên trong nó, chỉ cần sử dụng ddlệnh để tạo một hình ảnh đầy đủ của ổ cứng vật lý.

Khi bạn hoàn thành việc tạo ảnh và muốn sử dụng hệ thống nhân bản (đó là từ ổ cứng vật lý), hãy tạo một máy ảo mới và cung cấp cho nó bằng hình ảnh ảo nhân bản dưới dạng ổ cứng ảo.

PS Nếu bạn có một ổ cứng khá lớn (hệ thống ban đầu bạn muốn sao chép) và sẽ không hy sinh dung lượng trên hình ảnh nhân bản, bạn có thể làm theo cách khác, tạo một kho lưu trữ đầy đủ bản gốc bằng tarlệnh và mở rộng nó trong máy ảo. Bằng cách này bạn có thể giảm dung lượng sử dụng bởi ổ đĩa ảo. Bạn có thể di chuyển kho lưu trữ của tar sang máy ảo qua thư mục VirtualBox được chia sẻ. điều duy nhất bạn cần làm thêm là cài đặt grub trên ổ đĩa ảo nơi bạn hủy lưu trữ

(Tôi hy vọng tôi hiểu đúng những gì bạn muốn)


Tôi nghi ngờ sử dụng dd để sao chép bản gốc không phải là một ý tưởng hay, vì hệ thống nguồn có các phân vùng LVM riêng cho root, / boot, / usr, / var và / opt. Tôi muốn xây dựng hình ảnh VM trong một phân vùng (hoặc có thể hai nếu tôi cần / boot). Những người dùng khác vẫn có thể sử dụng ý tưởng của bạn.
Mutant Bob

0

Giải pháp cuối cùng tôi đã sử dụng xoay quanh việc tạo hai đĩa ảo (mượn và ý tưởng từ Alex) để đính kèm vào Cài đặt> Lưu trữ> Bộ điều khiển SATA.

Tôi đã sử dụng VirtualBoxgiao diện đồ họa để tạo ra một 128M VMDK để chứa MBR và một /dev/sda1/boot.

VMDK khác mà tôi đã tạo trước đó từ một khối logic LVM đã trở thành ảo /dev/sdb(không có phân vùng).

Tôi đã tải một cài đặt gentoo ISO vào CDROM ảo của VM (Cài đặt> Lưu trữ> Trình điều khiển IDE) và khởi động từ đó. Khi môi trường cài đặt gentoo hoạt động, tôi có thể phân vùng /dev/sdavà tạo /dev/sda1 /boothệ thống tệp và sao chép kernel và các tệp khác từ máy chủ nguồn. Tôi không phân vùng /dev/sdbvì nó đã chứa hệ thống tập tin gốc mà tôi đã xây dựng trước đó.

Tôi đã gắn kết /dev/sdb/boottheo Chuẩn bị các Đĩa và xử lý một số hệ thống tệp ảo theo Gắn kết các hệ thống tệp cần thiết . Với các hệ thống tập tin được chuẩn bị, tôi có thể chroot và bắt đầu cấu hình lại VM để giải thích cho sự khác biệt giữa các đĩa của máy nguồn và các đĩa của VM.

Tôi đã phải cập nhật /etc/lilo.conf bên trong VM để sử dụng boot=/dev/sdaroot=/dev/sdb.

Tương tự như vậy /etc/fstabcần phải thay đổi vì máy chủ nguồn đã sử dụng rất nhiều phân vùng riêng lẻ (một kiểu đã không còn được ưa chuộng trong thập kỷ can thiệp) và VM chỉ có /dev/sdbcho root và /dev/sda1for /boot.

Tôi cũng đã phải biên dịch lại kernel với sự hỗ trợ cho ahcimô-đun sata và e1000ethernet. Máy nguồn rất cũ.

Một thiếu sót của quá trình này là tôi phải phân vùng ảo sdabên trong máy ảo đang chạy. Tôi không biết liệu có một quy trình cho phép tôi phân vùng VMDK và điền vào các phân vùng của nó bằng các hệ thống tệp và dữ liệu mà không cần khởi động VM sử dụng nó.

Tôi không chắc vấn đề gì sẽ phát sinh nếu tôi đã cố gắng biên dịch lại kernel khách bằng hệ điều hành máy chủ và một chroot thay vì biên dịch lại bên trong VM (dù sao cũng phải sử dụng ISO cài đặt gentoo).

Tôi không thể sử dụng ISO sống của Debian vì tại một số điểm trong quá trình khởi động, màn hình biến thành các sọc ký tự màu. Tôi cho rằng có một số sự không tương thích với thẻ video ảo và việc lấy gentoo dễ dàng hơn so với xẻng thông qua tất cả các cuộc thảo luận liên quan về lỗi đó để kiểm tra tất cả các giải pháp được đề xuất.

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.