通过命令行扩容 AWS 服务器硬盘

使用 AWS CLI 和 Linux 命令行快速扩容 EC2 云服务器的 EBS 硬盘,完整步骤与注意事项。

在使用SLauncher开机面板时,调整硬盘大小是会员专属功能。幸运的是,通过 AWS CLI 和 Linux 系统命令,你可以在几分钟内完成 AWS 服务器硬盘的容量扩展。 本文将教你:

  • 安装并配置 AWS CLI。
  • 查找实例 ID 和硬盘 ID。
  • 使用 modify-volume 扩容硬盘。
  • 使用实例内的命令扩展分区和文件系统。
  • 验证扩容后空间。

一、先决条件

  • 你已经有了 AWS 账户和AK、SK。
  • 能够使用任意位置的命令行,包括即将扩容的 AWS 云服务器的。

二、安装和配置 AWS CLI

AWS CLI 是官方提供的命令行工具,用于管理你的 AWS 资源。

1. 安装 AWS CLI

在 Linux 或 Mac 机器中,你可以用以下命令安装最新版本:

1
2
3
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

安装完成后,输入:

1
aws --version

确认安装成功。

2. 配置 AWS CLI

执行以下命令,配置访问密钥、区域和默认输出格式:

1
aws configure

依次输入:

  • AWS Access Key ID
  • AWS Secret Access Key
  • 默认区域(例如:us-west-2,对应俄勒冈地区)
  • 默认输出格式(如 textjson

三、查找你的硬盘 ID

如果你不确定硬盘 ID,可按以下步骤查找。

1. 获取实例 ID

如果你在 AWS 实例内操作,可以用这个:

1
2
3
4
# 先获取 token
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
# 带 token 访问实例ID元数据
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id

如果是在其它服务器/本地,则必须通过 CLI 查看所有实例:

1
aws ec2 describe-instances --query 'Reservations[*].Instances[*].{InstanceId:InstanceId,Name:Tags[?Key==`Name`].Value|[0]}' --output table

选中目标实例的ID。

2. 查询实例挂载的硬盘 ID

1
aws ec2 describe-instances --query "Reservations[].Instances[].BlockDeviceMappings[].Ebs.VolumeId" --output text --instance-ids <实例ID>

四、调整硬盘大小

执行:

1
aws ec2 modify-volume --size 30 --volume-id <你的硬盘ID>

其中30表示 30GB。执行后会看到硬盘处于 modifying 状态,这表明 AWS 正在调整硬盘大小。

五、在实例内部扩展分区和文件系统

调整硬盘大小后,还需要在系统里扩展分区和文件系统,才能使用新空间。

1. 查看磁盘分区信息

1
lsblk

确认硬盘设备名(通常为 /dev/xvda)和分区(如 /dev/xvda1)。

2. 扩展分区

1
sudo growpart /dev/xvda 1

这条命令把第一分区扩大到硬盘的全尺寸。

3. 扩展文件系统

  • 如果是 ext4 文件系统,运行:
1
sudo resize2fs /dev/xvda1
  • 如果是 XFS 文件系统:
1
sudo xfs_growfs -d /

六、验证扩容结果

执行:

1
2
lsblk
df -Th /

这两个命令会显示磁盘大小和挂载点空间,确认新容量已生效。

至此,硬盘扩容完毕