但减少它变得更加困难.我想减少Amazon Web Services(AWS)EC2实例弹性块存储(EBS)根卷大小.网上有一对旧的高级程序.我发现的更详细的版本是关于StackOverflow问题的一年回答:how to can i reduce my ebs volume capacity,步骤具有相当高的水平:
Create a new EBS volume that is the desired size (e.g. /dev/xvdg)
Launch an instance,and attach both EBS volumes to it
Check the file system (of the original root volume): (e.g.) e2fsck -f /dev/xvda1
Maximally shrink the original root volume: (e.g. ext2/3/4) resize2fs -M -p /dev/xvda1
Copy the data over with dd:
Choose a chunk size (I like 16MB)
Calculate the number of chunks (using the number of blocks from the resize2fs output): blocks*4/(chunk_size_in_mb*1024) – round up a bit for safety
Copy the data: (e.g.) dd if=/dev/xvda1 ibs=16M of=/dev/xvdg obs=16M count=80
Resize the filesystem on the new (smaller) EBS volume: (e.g.) resize2fs -p /dev/xvdg
Check the file system (of the original root volume): (e.g.) e2fsck -f /dev/xvdg
Detach your new EBS root volume,and attach it to your original instance
我无法找到详细的一步一步“如何”解决方案.
我的EBS根卷附加到HVM Ubuntu实例.
任何帮助将非常感激.
>停止要调整大小的实例
>创建活动卷的快照,然后从该快照创建“通用SSD”卷.
>根据需要创建另一个“通用SSD”卷.
>将这3个卷附加到实例:
> / dev / sda1表示活动卷.
> / dev / xvdf表示作为目标大小的卷.
> / dev / xvdg表示从活动卷的快照生成的卷.
>启动实例.
>通过SSH登录新实例.
>创建这些新目录:
mkdir / source / target
>在新卷上创建ext4文件系统:
mkfs.ext4 / dev / xvdf
>将它挂载到此目录:
mount -t ext4 / dev / xvdf / target
>这非常重要,文件系统需要一个e2label for linux来识别它并启动它,在活动实例上使用“e2label / dev / xvda1”来查看它应该是什么,在这种情况下标签是:“/”
e2label / dev / xvdf /
>挂载从快照创建的卷:
mount -t ext4 / dev / xvdg / source
>复制内容:
rsync -ax / source / / target
注意:“/ target”后面没有“/”.此外,关于符号链接和attrs可能存在一些错误,但调整大小仍然是成功的
>卸载文件系统:
umount / target
umount / source
>返回AWS控制台:停止实例,并分离所有卷.
>将新大小的卷附加到实例:“/ dev / sda1”
>启动实例,它应该启动.
第10步是重要的:如上所述使用“e2label”标记新卷,或者实例似乎在aws中启动但不会通过连接检查.