以在 Liunx 下扩展根卷(系统盘)为例,步骤如下。
注:断开之前记录下卷的详情页面中的连接信息一列中的设备名称:
i-xxxxxxxxxxxxxxxxx (instance_name): device_name(如 /dev/sda1 )
注意:设备一栏,输入在上一步中记录下的相同设备名称,请务必注意,需要将卷重新连接到从分离开的准确位置(例如 /dev/sda1)。
实例启动之后,可以检查文件系统大小,看实例是否识别这个更大的卷空间。在 Linux 上,请使用 df -h 命令检查文件系统大小。
如果大小没有反映新扩展的卷,则必须扩展设备的文件系统,以便实例可以使用新的空间。
检查您的卷分区是否需要调整大小 ,使用 lsblk 命令可列出连接到实例的块储存设备:
如上图,/dev/xvda1 是一个 10 GiB 分区,位于一个 50 GiB 设备上,并且卷上没有其他分区。在这种情况下,分区必须调整大小,以便使用卷上的剩余空间。调整分区大小之后,您可以按照下一个过程扩展文件系统以占用分区上的所有空间。
在扩展文件系统前,需要先扩展 Linux 分区,步骤如下。
1)如果该分区已装载,请卸载它。
由于我们要扩展根分区,不可能在本机umount,所以需要一个辅助实例来连接该根卷,然后在辅助实例上操作。
即断开带扩展分区的新卷、连接该根卷到另一个辅助实例。
断开卷前照样注意记录下连接信息中的设备名称。
方法1:实例详情中查看 根设备:/dev/sda1 方法2:卷详情中查看 连接信息:i-47a192e3 (statistic0): /dev/sda1 (attached)
2)在辅助实例上进行扩展分区的操作
可以看到 /dev/xvdf1 这个分区没有占满整个卷空间,需要进行扩展:
使用 parted 扩展 Linux 分区:
parted 实用工具是一款分区编辑工具,大多数 Linux 分发版均会提供。它可以创建和编辑 MBR 分区表和 GPT 分区表。如果要扩展的分区位于采用 GPT 分区设备上,则应选用 gdisk 实用工具。
以MBR分区表为例,执行命令前确认该分区没有被装载(mount)。
对设备(而不是设备上的分区)运行 parted 命令。
将 parted 度量单位更改为扇区。 (parted) unit s
运行 print 命令,列出设备上的分区。
检查输出以了解磁盘总大小、分区表类型、分区编号、分区起点和任何标志(如 boot)。对于 gpt 分区表,记下分区名称;对于 msdos 分区表,记下 Type 字段(primary 或 extended)。这些值将在后面的步骤中使用。
使用来自上一步的编号 (1) 删除分区的分区条目。 (parted) rm 1
创建扩展到卷末尾的新分区。(parted) mkpart primary 2048s 100%
再次运行 print 命令以验证分区。
添加boot标志。有时 boot 标志可能会丢失,请使用以下命令添加标志 (parted) set 1 boot on
可以再次运行 print 命令以验证更改。
运行 quit 命令,退出 parted。
检查文件系统以确保没有错误(需要先执行此操作,然后才能扩展文件系统)。
根据您的文件系统类型选择以下命令之一;如果使用其他文件系统,请参阅该文件系统的文档以确定正确的检查命令。 (对于 ext3 或 ext4 文件系统) [ec2-user ~]$ sudo e2fsck -f /dev/xvdf1 (对于 xfs 文件系统) [ec2-user ~]$ sudo xfs_repair /dev/xvdf1
3)将卷从辅助实例断开,再重新连接到原主实例
同样注意使用步骤(1)准备过程中记录下连接信息中的设备名称:
4)然后重新启动主实例,检查分区是否正常:
如上图,df -h 显示分区大小还是不正常。在上面步骤调整完分区大小之后,您可以按照下一个过程扩展文件系统以占用分区上的所有空间。
在 Linux 中,您可以使用特定于文件系统的命令,根据新卷的较大大小调整文件系统大小。即使要扩展的卷是根卷,此命令也有效。对于 ext2、ext3 和 ext4 文件系统,此命令为 resize2fs。对于 XFS 文件系统,此命令为 xfs_growfs。
如果您收到 The filesystem is already nnnnnnn blocks long. Nothing to do! 错误,请参阅7.1步骤先扩展 Linux 分区!。
参考:
Amazon EC2 Linux实例用户指南 » Amazon EBS 卷 » 在 Linux 上扩展 EBS 卷的存储空间
Amazon EC2 Linux实例用户指南 » Amazon EBS 卷 » 扩展 Linux 分区