Chuyển đổi hình ảnh EC2 AMI sang vmdk


18

Tôi đã đến khá gần để Amazon Linux khởi động bên trong VirtualBox, nhờ câu trả lời nàycác trang web này . Tổng quan nhanh về các bước tôi đã thực hiện:

  1. Khởi chạy phiên bản EC2 với Amazon Linux 2011/09 64 bit AMI
  2. ddnội dung của âm lượng EBS đối sshvới tệp hình ảnh cục bộ.
  3. Gắn tệp hình ảnh dưới dạng thiết bị loopback và sau đó đến điểm gắn kết cục bộ.
  4. Tạo một tệp hình ảnh đĩa trống mới, phân vùng có phần bù cho bộ tải khởi động và tạo một hệ thống tệp ext4.
  5. Gắn phân vùng của hình ảnh mới và sao chép mọi thứ từ hình ảnh EC2.
  6. Cài đặt grub (sử dụng grub-legacy-ec2gói của Ubuntu , không phải grub2).
  7. Chuyển đổi tập tin hình ảnh sang vmdk bằng cách sử dụng qemu-img.
  8. Tạo một VirtualBox VM mới với vmdk.

Bây giờ VM khởi động, tải grub và kernel được tìm thấy. Nhưng nó không thành công khi nó cố gắn thiết bị gốc:

dracut Warning: No root device "block:/dev/xvda1" found

dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.


dracut Warning: Signal caught!

dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.35.14-107.1.39.amzn1.x86_64 #1

Tôi đã thử thay đổi /boot/grub/menu.lstđể tìm thiết bị gốc theo nhãn và UUID, nhưng không có gì hoạt động. Tôi đoán hạt nhân xen không tương thích với VirtualBox.

Lý do đằng sau tất cả nỗ lực này là để tạo ra một hộp Vagrant gần nhất có thể với môi trường sản xuất, vì vậy các triển khai có thể được thử nghiệm tại địa phương. Tôi biết rằng nó rẻ khi chạy thử trên EC2, nhưng kết nối kém thường làm hỏng trải nghiệm. Thêm vào đó, thật tuyệt khi có một máy ảo với môi trường sản xuất để đồng nghiệp không phải cài đặt mọi thứ dưới ánh mặt trời chỉ để bắt đầu và chạy với phát triển ứng dụng.

Nếu tôi đã thử chạy một kernel khác, tôi có thể lấy kernel nào gần nhất có thể với Amazon Linux 2011.09?


Đã làm công việc tương tự như bạn và tìm thấy giải pháp trên liên kết khác .. cũng chia sẻ với bạn. Đã thử nghiệm điều này và nó đã làm việc cho tôi ... blog.zorangagic.com/2015/03/ trộm
Pratap

Câu trả lời:


7

Tôi đã cố gắng rất nhiều và tôi đã từ bỏ, nhưng cuối cùng tôi đã thành công!

Tôi đã quản lý để khởi động với Amazon Linux AMI được chuyển dưới vmware!

Tôi gần như là một người mới, nhưng tôi đã làm điều đó, sau nhiều giờ thử nghiệm, thay thế nhân amazon ban đầu bằng một vmlinuz-2.6.32-38-generic được lấy từ một bản phân phối Ubuntu 64 10.04.

Tôi chỉ nhận được rất nhiều lỗi vì cấu hình amazon bên trong AMI đang tìm kiếm thứ gì đó trong một địa chỉ nội bộ mà rõ ràng là nó không tìm thấy. Đó là / usr / bin / cloud-init, tôi nghĩ vậy.

Nhưng tôi có thể đăng nhập vào bên trong, và dường như mọi thứ đều hoạt động!

Cảm ơn bạn đã giúp đỡ!!

Tôi đã viết blogpost này với các hướng dẫn từng bước để di chuyển từ AMI sang Vmware.

Hi vọng điêu nay co ich!


BTW, Sậy, tôi đã đến chính xác điểm mà bạn đã nêu (dracut nói "không tìm thấy thiết bị gốc" ... bạn có di chuyển thêm không ??
Emanuele Preda

Về cơ bản, tôi đã tìm ra giải pháp tương tự như bạn đã làm: sao chép kernel từ Ubuntu. Nó hoạt động, nhưng tại thời điểm đó tôi không biết hệ thống sẽ hoạt động tương tự như thế nào với Amazon Linux AMI.
Sậy G. Luật

Ngoài ra, vui lòng xem câu trả lời của tôi ở đây , cung cấp 2 phương thức cập nhật thay thế để xuất sang VirtualBox / VMWare VMDK, cũng như hướng dẫn sử dụng VMDK mới được tạo của bạn với Vagrant
Code Bling

2

Hạt nhân chính thức Amazon có nguồn gốc từ họ trong bản phân phối 2011,09, tức là 2,6,35,14.

Bạn có thể có được gói nguồn cho Amazon get_reference_source, nhưng tôi không mong đợi nó hoạt động bên ngoài Amazon.


1

Những người ở Cloudify đã chia sẻ cách họ tạo hộp Vagrant sẵn sàng VirtualBox mà không cần truy cập vào các máy kim loại trần - họ sử dụng AWS.

9 bước lên thiên đường:

  • Tạo hình ảnh nguồn (AMI) [...] bằng cách sử dụng Packer.
  • Khởi chạy một cá thể worker trong AWS với ảnh chụp nhanh hoặc ảnh nguồn dưới dạng một trong các đĩa của nó.
  • Trên hình ảnh worker: Tạo một khối lượng hình ảnh thô dưới dạng tệp và tạo một phân vùng ext4 trên nó.
  • Sao chép dữ liệu từ đĩa hình ảnh nguồn vào phân vùng ext4 được tạo trước đó.
  • Cài đặt bộ tải khởi động (extlinux) trên phân vùng ext4.
  • Chuyển đổi hình ảnh thô thành VMDK.
  • Gói VMDK bằng cách sử dụng bộ mô tả OVF và siêu dữ liệu Vagrant và tạo một tệp tar với phần mở rộng nội dung và .box.
  • Tải lên S3 [hoặc bất cứ điều gì bạn thích].
  • Dọn dẹp.

Nguồn : Bài đăng trên blog tại http://www.developer.com/design/creating-a-reproducible-and-portable-development-en môi.html với 9 bước trên

: https://github.com/cloudify-cosmo/cloudify-packager/tree/3.2m4/image-builder

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.