所以我在这里跟着Eric的精彩文章: http : //alestic.com/2009/12/ec2-ebs-boot-resize
这是基本上帮助我增加 AMI的默认大小的代码:
ec2-run-sintances ami-ID -n 1 --key keypair.pem --block-device-mapping "/dev/sda1=:250"
运行Ubuntu 11.10我甚至没有重新调整磁盘大小,它立即是一个250GB的驱动器。
我如何去减lessAMI的默认大小?
我试过了:
ec2-run-sintances ami-ID -n 1 --key keypair.pem --block-device-mapping "/dev/sda1=:100"
显然…但是我被告知:
Client.InvalidBlockDeviceMapping:大小为100GB的卷比快照小####### <250>
减小尺寸的最好方法是创build一个空的新(小)卷,并从旧(大)卷复制文件系统。
EBS启动AMI基于快照。 如果您拥有AMI,则可以从快照创build一个卷以进行复制。 将两个卷都附加到正在运行的副本实例。
Ubuntu上我最喜欢的rsync选项是:
rsync -PaSHAX /bigvol/ /smallvol/
这些选项保留所有权,权限,链接等内容。
分离卷并创build新的较小的快照。
将新(小)快照注册为AMI,确保指定与原始AMI相同的体系结构和AKI(内核)。
我采取的减lessEBS根卷的方法如下:
停止(不终止)目标实例,并分离根EBS卷。 或者,您可以快照根卷(或使用现有快照),并从中创build新的EBS卷。 (例如/ dev / xvda1)
注意:您从上面的步骤使用的音量将会被改变 – 所以如果您还没有使用快照,您可能需要拍摄快照。
启动一个实例,并将EBS卷连接到它
检查(原始根卷的)文件系统:(例如) e2fsck -f /dev/xvda1
最大限度缩小原始根卷(例如ext2 / 3/4) resize2fs -M -p /dev/xvda1
用dd复制数据:
计算块的数量(使用resize2fs输出中的块数): blocks*4/(chunk_size_in_mb*1024) - round up a bit for safety
复制数据:(例如) dd if=/dev/xvda1 ibs=16M of=/dev/xvdg obs=16M count=80
在新的(较小的)EBS卷上调整文件系统的大小:(例如) resize2fs -p /dev/xvdg
检查(原始根卷的)文件系统:(eg) e2fsck -f /dev/xvdg
分离新的EBS根卷,并将其附加到您的原始实例