Không có giải pháp nào khác hoạt động nếu âm lượng được sử dụng làm thiết bị gốc (có thể khởi động).
Đĩa vừa tạo bị thiếu phân vùng khởi động, do đó, nó cần phải được cài đặt GRUB và một số cờ được thiết lập chính xác trước khi một cá thể có thể sử dụng nó làm ổ đĩa gốc.
Giải pháp của tôi (tính đến hôm nay, làm việc ) để thu nhỏ một khối lượng gốc là:
Bối cảnh: Chúng tôi có một ví dụ A, có khối lượng gốc mà chúng tôi muốn thu nhỏ. Hãy gọi tập này là VA. Chúng tôi muốn thu nhỏ VA từ 30 GB xuống còn 10 GB
- Tạo một thể hiện ec2 mới, B, có cùng hệ điều hành với thể hiện A. Là bộ lưu trữ, chọn một ổ đĩa cùng loại với VA, nhưng có kích thước 10GB. (hoặc bất cứ kích thước mục tiêu của bạn là gì). Vì vậy, bây giờ chúng ta có một cá thể B sử dụng tập mới này (hãy gọi nó là VB) làm tập gốc.
- Khi cá thể mới (B) đang chạy. Dừng lại và tách khối lượng gốc của nó (VB).
LƯU Ý: Các bước sau đây chủ yếu được lấy từ giải pháp của @bill:
Dừng trường hợp bạn muốn thay đổi kích thước (A).
Tạo ảnh chụp nhanh của âm lượng VA và sau đó tạo âm lượng "SSD Mục đích chung" từ ảnh chụp nhanh đó. Tập này chúng tôi sẽ gọi nó là VASNAP.
Quay một phiên bản mới với amazon Linux, chúng tôi sẽ gọi trường hợp này C. Chúng tôi sẽ chỉ sử dụng phiên bản này để sao chép nội dung của VASNAP sang VB. Chúng tôi có lẽ cũng có thể sử dụng ví dụ A để thực hiện các bước này, nhưng tôi thích làm điều đó trong một máy độc lập.
Đính kèm các tập sau vào thể hiện C. / dev / xvdf cho VB. / dev / xvdg cho VASNAP.
Khởi động lại ví dụ C.
Đăng nhập vào thể hiện C thông qua SSH.
Tạo các thư mục mới này:
mkdir /source /target
- Định dạng phân vùng chính của VB với hệ thống tệp ext4:
mkfs.ext4 /dev/xvdf1
Nếu bạn không gặp lỗi, hãy chuyển sang Bước 11. Mặt khác, nếu bạn không có /dev/xvdf1
, bạn cần tạo phân vùng bằng cách thực hiện i-vii sau:
i) Nếu /dev/xvdf1
không tồn tại vì bất kỳ lý do gì, bạn cần tạo nó. Đầu tiên nhập:
sudo fdisk /dev/xvdf
.
ii) Xóa đĩa bằng cách nhập:
wipefs
iii) Tạo phân vùng mới bằng cách nhập:
n
iv) Nhập p
để tạo phân vùng chính
v) Tiếp tục nhấn enter để tiếp tục cài đặt mặc định.
vi) Khi nó yêu cầu một lệnh một lần nữa, hãy nhập w
để viết các thay đổi và thoát.
vii) Xác minh bạn có /dev/xvdf1
phân vùng bằng cách thực hiện:
lsblk
Bạn sẽ thấy một cái gì đó như:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 250G 0 disk
└─xvda1 202:1 0 250G 0 part
xvdf 202:80 0 80G 0 disk
└─xvdf1 202:81 0 80G 0 part
xvdg 202:96 0 250G 0 disk
└─xvdg1 202:97 0 250G 0 part
Bây giờ tiến hành Bước 11.
- Gắn kết nó vào thư mục này:
mount -t ext4 /dev/xvdf1 /target
- Điều này rất quan trọng, hệ thống tệp cần có một e2label để Linux nhận ra nó và khởi động nó, sử dụng "e2label / dev / xvda1" trên một ví dụ hoạt động để xem nó nên như thế nào, trong trường hợp này là nhãn: "/"
e2label /dev/xvdf1 /
- Gắn VASNAP trên / nguồn:
mount -t ext4 /dev/xvdg1 /source
- Sao chép nội dung:
rsync -vaxSHAX /source/ /target
Lưu ý: không có "/" theo sau "/ đích". Ngoài ra, có thể có một vài lỗi về symlink và attrs, nhưng thay đổi kích thước vẫn thành công
- Umount VB:
umount /target
Quay lại Bảng điều khiển AWS: Dettach VB từ phiên bản C và cũng nhận được VA từ A.
Đính kèm âm lượng có kích thước mới (VB) vào ví dụ: "/ dev / xvda"
Khởi động A, bây giờ thiết bị gốc của nó là 10GB :)
Xóa cả hai trường hợp B và C, và tất cả các tập trừ VB, hiện là tập gốc của A.