だから私はここでエリックの素晴らしい記事をフォローしました: 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のドライブになりました。
AMIのデフォルトサイズを小さくするにはどうすればよいですか?
私は試した:
ec2-run-sintances AMI-ID -n 1 --key keypair.pem --block-device-mapping "/dev/sda1=:100"
明らかに...しかし私は言われた:
Client.InvalidBlockDeviceMapping:サイズ100GBのボリュームがスナップショットよりも小さい####### <250>
サイズを小さくする最善の方法は、空の新しい(小さい)ボリュームを作成し、古い(大きい)ボリュームからファイルシステムをコピーすることです。
EBSブートAMIは、スナップショットに基づいています。 AMIを所有している場合は、スナップショットからボリュームを作成してコピーできます。コピー用に実行中のインスタンスに両方のボリュームを接続します。
Ubuntuで私のお気に入りのrsyncオプションは次のとおりです。
rsync -PaSHAX /bigvol/ /smallvol/
これらのオプションは、所有権、権限、リンクなどを保持します。
ボリュームを切り離し、新しい小さいボリュームのスナップショットを作成します。
新しい(小さな)スナップショットをAMIとして登録します。必ず、元のAMIと同じアーキテクチャとAKI(カーネル)を指定してください。
EBSルートボリュームを減らすために私が取るアプローチは次のとおりです。
ターゲットインスタンスを停止(終了しない)し、ルートEBSボリュームをデタッチします。または、ルートボリュームのスナップショットを作成して(または既存のスナップショットを使用して)、そこから新しい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
_
(元のルートボリュームの)ファイルシステムを確認します:(例)_e2fsck -f /dev/xvdg
_
新しいEBSルートボリュームをデタッチし、元のインスタンスにアタッチします