AWS EC2根卷增加:在AWS Ubuntu实例上扩展弹性根卷无法工作。

10

我根据AWS文档扩展弹性根卷成功将我的根卷大小从8GB增加到20GB,使用lsblk命令进行了确认。

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk └─xvda1 202:1 0 8G 0 part /

但即使我显式地使用sudo resize2fs / dev / xvda1 命令调整设备大小,我的df -h 命令也没有反映更新后的大小。我检查了文件系统类型为ext4,使用sudo file -s /dev/xvd* 命令。sudo resize2fs /dev/xvda1 命令给出以下输出:

  

sudo resize2fs /dev/xvda1resize2fs 1.42.12(2014年8月29日)文件系统已经长达2096635(4k)块。没什么要做的!

请告诉我,我需要做什么才能让操作系统读取卷中的新大小。

谢谢


1
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/storage_expand_partition.html - Nehal J Wani
嗨,阿米特,你是如何解决这个问题的?我现在也遇到了完全相同的问题。你能帮我解决吗? - Shihas
4个回答

21

你的输出结果之所以有问题,是因为你漏掉了一个步骤。

resize2fs 程序不会改变分区的大小。如果想要扩大文件系统的大小,必须先确保可以扩展底层分区的大小... https://linux.die.net/man/8/resize2fs

一旦您已经通过使用 AWS 控制台 ( UI ) 或使用命令行 aws ec2 modify-volume --volume-id ID_OF_DEVICE --size NEW_SIZE (修改卷命令行文档) 增加了卷的大小

仍需要告诉操作系统希望将更多的空间分配给分区(在本例中是根分区/) 因此正确的顺序如下所示:

扩展分区表中的分区以填充可用空间

(1) sudo growpart /dev/xvda 1 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/expand-linux-partition.html

扩展 ext2、ext3、ext4 文件系统

(2)sudo resize2fs /dev/xvda1

更多信息请参见AWS 认可扩展卷的方法


这应该是被接受的解决方案,因为你缺少的命令是sudo growpart /dev/xvda 1,@Amit Khandelwal - chuseuiti
2
在我的情况下,resize2fs 报错 Bad magic number in super-block while trying to open /dev/xvda1。但是当我使用 xfs_growfs 时,它正常工作。 - Aswath K
上面的答案与 ext 文件系统有关。在您的情况下,文件系统是 XFS,这就是它能够工作的原因。更多信息请参见:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html - Antonio Gomez Alvarado

5

我的解决方案:

我不知道你们,但我能够在原来的8GB Ubuntu EC2实例上增加30GB,然后我去EC2控制台管理器,右键单击我的实例,然后按下重新启动

一旦我重新启动并重新SSH连接到服务器后,我输入df -h,看到我的根分区(/dev/xvda1)大小为38GB。


请只在答案中添加答案,如果您有其他问题,请使用提问界面进行提问。 - Petter Friberg
我也遇到了同样的问题。我已经快放弃了,准备去研究所有的AWS文档来增加我的根目录容量,但是我的服务器突然崩溃了。我重新启动后,发现我已经添加到实例中的额外GB已经被添加到了我的根分区。这是我遇到过的最好的服务器崩溃。 - Bjørn Stenfeldt
和我一样 - 重新启动并获取你的额外GB。 - silentser
我也遇到了同样的问题。只是重新启动后,问题就解决了。 - Lakin Mohapatra
我也一样 - 我尝试了所有的步骤,但它们都没有起作用。直到我重新启动后才看到增加。 - Jordan

4

/dev/xvda1是20GiB设备上8GiB的分区,该卷上没有其他分区。在这种情况下,必须调整分区大小才能使用卷上剩余的空间。

分区大小调整后,可以通过sudo resize2fs /dev/xvda1来扩展文件系统以占用分区上的所有空间。


我已查看了您提到的文档,但是操作过程非常复杂,如果有易于跟随的指令或文档将会很有用。我相信许多人都面临这个问题并迷失在复杂的文档中。 - Amit
我同意在此阶段根分区的过程可能会很复杂。即使AWS也承认:“如果您需要调整大小的分区是实例的根分区,则该过程变得更加复杂...”。不过,我希望AWS未来能够为我们简化这个过程。 - Khalid T.
1
该过程的复杂性与AWS完全无关。重新分区带有根卷的引导磁盘——除了通常是错误的解决方案之外——本质上是一项复杂的任务。 - Michael - sqlbot

0

九步玩转……

分离根卷并对其进行快照以确保安全,并调整大小。一旦调整大小,请将此卷挂载到您的实例下的 /dev/sda1。 通过运行“lsblk”和“df -h”命令,确保文件系统完全扩展到根卷。 如果更改未反映,请运行“resize2fs -f”。

更多详细信息请参见,

增加根卷的步骤


也许你可以在这里总结一下链接中的步骤。这样,如果链接失效了,你的回答仍然有用。 - stephenmuss
谢谢你的评论,Stephen。我现在认为它很有用。 - kalaivani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接