EC2 根据img创建大硬盘实例后容量显示不对的解决方法

Amazon EC2 上通过 snapshots 的img在EBS上创建大硬盘的实例时,登录后会发现硬盘仍然为原img的大小。比如,做过的snapshots的img大小为10G,我根据这个img创建一个40G的Instance,启动后发现40G并没有显示出来,仍然显示硬盘容量为10G。其实解决办法很简单,只要执行 resize2fs 一个命令即可。

[root@ip-172-31-25-13 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            9.9G  3.6G  6.3G  36% /
none                  1.9G     0  1.9G   0% /dev/shm

[root@ip-172-31-25-13 ~]# resize2fs /dev/xvde1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/xvde1 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 3
Performing an on-line resize of /dev/xvde1 to 10485760 (4k) blocks.
The filesystem on /dev/xvde1 is now 10485760 blocks long.

[root@ip-172-31-25-13 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1             40G  3.6G   36G  10% /
none                  1.9G     0  1.9G   0% /dev/shm

现在显示正常了,EC2使用的虚拟化技术时Xen,玩过Xen/Kvm,并且给vm硬盘/分区括过容的都会用到这个命令。