Tôi đã có cùng một câu hỏi với bạn, vì vậy tôi đã tìm ra cách để làm điều đó.
Đầu tiên, tôi đã làm điều này từ ami được hỗ trợ EBS của Ubuntu 32 bit từ khu vực Đông Hoa Kỳ, các hình ảnh hoặc hệ điều hành khác có thể hoạt động khác nhau. Tuy nhiên, tôi nghi ngờ rằng bạn sẽ ổn, miễn là bạn đang sử dụng một hệ thống tập tin ext *. Nó có thể hoạt động trên các hệ thống tập tin khác, nhưng bạn sẽ phải tự mình tìm ra cách thay đổi kích thước chúng.
Các bước cơ bản là:
Đính kèm hai tập vào một thể hiện đang chạy, lần đầu tiên dựa trên ảnh chụp nhanh bạn muốn thu nhỏ và lần thứ hai một tập trống có kích thước mới mà bạn muốn thu nhỏ lại.
Kiểm tra hệ thống tập tin của tập đầu tiên và sửa chữa bất kỳ lỗi nào.
Thu nhỏ hệ thống tệp trên ổ đĩa đầu tiên để nó chỉ lớn bằng mức cần thiết để giữ dữ liệu.
Sao chép hệ thống tập tin từ tập đầu tiên sang tập thứ hai.
Mở rộng hệ thống tệp trên ổ đĩa thứ hai đến kích thước tối đa của nó.
Hãy chắc chắn rằng mọi thứ đều ổn bằng cách kiểm tra lỗi thứ hai.
Chụp nhanh tập thứ hai.
Tạo hình ảnh máy dựa trên ảnh chụp nhanh của tập thứ hai bạn vừa chụp.
Trước tiên bạn cần lấy một số thông tin từ ami bạn muốn thu nhỏ. Cụ thể, bạn cần ID hạt nhân và ID ramdisk, nếu có (hình ảnh tôi thu nhỏ không có ramdisk). Tất cả thông tin này nên có sẵn từ bảng điều khiển quản lý aws, trong cửa sổ AMI.
ID kernel trông giống như kia-xxxxxxxx và ID snapshot trông giống như snap-xxxxxxxx và ID ramdisk trông giống như RIA-xxxxxxxx.
Tiếp theo, khởi chạy một phiên bản linux. Tôi đã khởi chạy một phiên bản Ubuntu. Bạn có thể sử dụng một ví dụ t1.micro nếu bạn muốn. Nó không mất nhiều sức để làm những bước tiếp theo.
Sau khi máy đang chạy, hãy đính kèm ảnh chụp nhanh mà bạn đã ghi lại từ bước đầu tiên. Trong trường hợp của tôi, tôi đã đính kèm nó vào / dev / sdf
Sau đó, tạo một âm lượng mới, có kích thước bạn muốn. Trong trường hợp của tôi, tôi đã tạo ra dung lượng 5 GB, vì đó là kích thước tôi muốn thu nhỏ lại. Đừng tạo tập mới này từ ảnh chụp nhanh. Chúng tôi cần một khối lượng trống mới. Tiếp theo, đính kèm nó vào ví dụ đang chạy, trong trường hợp của tôi, tôi đã đính kèm nó dưới dạng / dev / sdg
Tiếp theo, ssh vào máy nhưng không gắn khối lượng đính kèm.
Tại thời điểm này, tôi đã nhầm lẫn về phía hoang tưởng và tôi đã chọn kiểm tra hệ thống tệp trên khối lượng lớn, chỉ để đảm bảo không có lỗi. Nếu bạn tự tin rằng không có ai, bạn có thể bỏ qua bước này:
$ sudo e2fsck -f /dev/sdf
Tiếp theo, tôi thay đổi kích thước hệ thống tệp trên ổ đĩa lớn để nó chỉ lớn bằng dữ liệu trên đĩa:
$ sudo resize2fs -M -p /dev/sdf
-M thu nhỏ nó và -p in tiến trình.
Resize2fs sẽ cho bạn biết hệ thống tập tin shrunkin lớn như thế nào. Trong trường hợp của tôi, nó cho tôi kích thước trong các khối 4K.
Bây giờ chúng tôi sao chép hệ thống tập tin shrunkin vào đĩa mới. Chúng tôi sẽ sao chép dữ liệu trong các đoạn 16 MB, vì vậy chúng tôi cần tìm ra số lượng 16 MB mà chúng tôi cần sao chép. Đây là nơi mà kích thước hệ thống tập tin thu nhỏ trong handey.
Trong trường hợp của tôi, hệ thống tệp bị thu hẹp chỉ hơn 1 GB, vì tôi đã cài đặt rất nhiều chương trình khác trên hệ thống Ubuntu cơ bản trước khi chụp ảnh nhanh. Tôi có thể đã nhận được chỉ với việc sao chép kích thước của hệ thống tệp được làm tròn đến 16 MB gần nhất, nhưng tôi muốn chơi nó an toàn.
Vì vậy, 128 lần khối 16 MB = 2GB:
$ sudo dd if=/dev/sdf ibs=16M of=/dev/sdg obs=16M count=128
Tôi đã sao chép trong các khối 16 MB vì với EBS, bạn trả tiền cho mỗi lần đọc và viết, vì vậy tôi muốn giảm thiểu số lượng chúng càng nhiều càng tốt. Tôi không biết nếu làm theo cách này đã làm như vậy, nhưng có lẽ nó không bị tổn thương.
Sau đó, chúng ta cần thay đổi kích thước hệ thống tệp mà chúng ta vừa sao chép sang ổ đĩa mới để nó sử dụng tất cả không gian có sẵn trên ổ đĩa.
$ sudo resize2fs -p /dev/sdg
Cuối cùng, hãy kiểm tra nó, để đảm bảo mọi thứ đều ổn:
$ sudo e2fsck -f /dev/sdg
Đó là tất cả những gì chúng ta cần làm trong cỗ máy này, mặc dù việc lắp âm lượng mới không phải là một thử nghiệm. Tuy nhiên, bước này gần như chắc chắn là tùy chọn, vì e2fsck nên đã bắt gặp bất kỳ vấn đề nào.
Bây giờ chúng ta cần chụp nhanh ổ đĩa mới và tạo AMI dựa trên nó. Chúng tôi đã hoàn thành với máy, vì vậy bạn có thể chấm dứt nếu bạn muốn.
Đảm bảo âm lượng nhỏ không bị ngắt nếu bạn gắn nó, và sau đó chụp ảnh nhanh. Một lần nữa, bạn có thể làm điều này trong bảng điều khiển quản lý.
Bước cuối cùng yêu cầu các công cụ ec2 dòng lệnh.
CHỈNH SỬA:
Vì câu trả lời này đã được đăng, bảng điều khiển AWS cho phép bạn chỉ cần nhấp chuột phải vào ảnh chụp nhanh và chọn Tạo hình ảnh từ Ảnh chụp. Bạn vẫn sẽ cần chọn ID hạt nhân thích hợp. Nếu nó không xuất hiện trong danh sách, hãy đảm bảo bạn đã chọn kiến trúc phù hợp.
Chúng tôi sử dụng ứng dụng đăng ký ec2 để đăng ký AMI dựa trên ảnh chụp nhanh bạn vừa chụp, vì vậy hãy ghi lại giá trị snap-xxxxxxxx từ ảnh chụp bạn vừa chụp.
Sau đó, bạn nên sử dụng một lệnh như:
ec2-register -C cert.pem -K sk.pem -n The_Name_of_Your_New_Image
-d Your_Description_of_This_New_AMI --kernel aki-xxxxxxxx
-b "/dev/sda1=snap-xxxxxxxx" --root-device-name /dev/sda1
Tất nhiên bạn cần thay thế ID kernel bằng ID bạn đã viết ở đầu và ID snapshot bằng ID bạn đã tạo ở bước trước. Bạn cũng cần trỏ nó vào khóa bí mật của bạn (được gọi là sk.pem) ở trên và chứng chỉ x509 của bạn (được gọi là cert.pem). Tất nhiên bạn có thể chọn bất cứ điều gì bạn muốn cho tên và mô tả.
Hi vọng điêu nay co ich.