Skip to content
On this page

新创建 EC2 实例后,系统只有默认一个 8G 的硬盘,大部分场景下是不够用的,比如我们有搭建数据库的需求。这时候,我们通常申请一张盘,挂载到 /data 路径下。

重启后磁盘重新挂载

一般数据库目录 位于 /data 下,我们会使用单独的磁盘进行挂载。当服务器进行重启时,磁盘不会自动挂载,所以,重启后,我们应该手动对数据盘进行挂载。

手动挂载

使用 lsblkmount 命令来检查和挂载磁盘。


lsblk
NAME      MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
xvda      202:0    0   8G  0 disk 
├─xvda1   202:1    0   8G  0 part /
├─xvda127 259:0    0   1M  0 part 
└─xvda128 259:1    0  10M  0 part /boot/efi
xvdb      202:16   0  10G  0 disk 


sudo mount /dev/xvdb /data

自动挂载配置

磁盘扩容

AWS EC2 控制面板修改磁盘大小

  • AWS Console进入 EC2选择要扩容的 Volume
  • 选择需要扩容的磁盘,点击操作按钮
  • 点击修改
  • 卷类型选择通用型SSD(gp2)(可以根据自己的需求选择其他类型)
  • 大小输入16(按需输入)
  • 点击确认修改

img

检查磁盘是否真的扩容成功

lsblk

输出示例(看 xvdaxvda1 的 Size):

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

如果 xvda 显示为 32G、但 xvda1 还是 16G,说明磁盘已扩但分区没扩。

扩容分区

sudo growpart /dev/xvda 1

如果成功,你会看到提示类似:

CHANGED: partition=1 start=2048 old: size=33552384 end=33554432 new: size=41940991 end=41943039

验证

扩展文件系统后,使用 df-h 命令验证操作系统是否可以看到额外的空间:

df -h

如果文件系统还没有扩展


✅ 下一步:扩展文件系统

你只需要再执行一个命令,让文件系统识别扩容后的空间。

如果你使用的是 xfs 文件系统(大概率是,因为 Amazon Linux 2 默认是 xfs):

sudo xfs_growfs /

如果你使用的是 ext4 文件系统

sudo resize2fs /dev/xvda1

⚠️ 检查文件系统类型

你可以用以下命令确认使用的是哪种文件系统:

df -T /

输出类似:

Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/xvda1     xfs    8G  7.8G  206M  98% /

🚀 执行完后再查:

df -h

申请新磁盘,挂载到一个目录下

系统默认会有一块盘

$ lsblk
NAME      MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
xvda      202:0    0   8G  0 disk 
├─xvda1   202:1    0   8G  0 part /
├─xvda127 259:0    0   1M  0 part 
└─xvda128 259:1    0  10M  0 part /boot/efi

🎯 最终目标:

我们希望增加一块盘,挂载到/data路径下,最终希望看到的是:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       32G   15G   17G  47% /
/dev/xvda2       8G  	 ...   ...  ...  /data

🛠️ 操作流程(以已有剩余空间为例)

你当前磁盘 xvda 是 32G,且分区 xvda1 占满了全部空间。如果你想再添加一块独立的分区用于 /data,通常推荐新建一块独立的 EBS 磁盘并挂载到 /data推荐、稳定、安全

适用于:你不想动现有系统盘、不希望搞复杂分区操作。

步骤:

创建新卷

登录 AWS 控制台,进入 EC2 → 卷(EBS)

选择同一可用区(比如 us-east-1a),建议 10G~100G

将新卷附加到你的实例

在实例中识别磁盘并挂载:

image-20250405145938259

🖥️ 在 EC2 上执行命令:

# 1. 查看磁盘设备(新磁盘可能是 /dev/xvdf)
lsblk

# 显示下面的信息
NAME      MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
xvda      202:0    0   8G  0 disk 
├─xvda1   202:1    0   8G  0 part /
├─xvda127 259:0    0   1M  0 part 
└─xvda128 259:1    0  10M  0 part /boot/efi
xvdb      202:16   0  10G  0 disk 

# 2. 假设是 /dev/xvdb,创建分区
sudo parted /dev/xvdb --script mklabel gpt mkpart primary ext4 0% 100%

# 3. 格式化为 ext4 文件系统
sudo mkfs.ext4 /dev/xvdb

# 4. 创建挂载点
sudo mkdir -p /data

# 5. 挂载分区
sudo mount /dev/xvdb /data

# 6. 验证挂载
df -h /data

最终我们的机器上有两块磁盘,通过 lsblkdf 查看

# lsblk
NAME      MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
xvda      202:0    0  32G  0 disk 
├─xvda1   202:1    0  32G  0 part /
├─xvda127 259:0    0   1M  0 part 
└─xvda128 259:1    0  10M  0 part /boot/efi
xvdf      202:80   0   8G  0 disk 
└─xvdf1   202:81   0   8G  0 part /data
# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           781M  492K  781M   1% /run
/dev/xvda1      8.0G  2.2G  5.9G  27% /
tmpfs           2.0G     0  2.0G   0% /tmp
/dev/xvda128     10M  1.3M  8.7M  13% /boot/efi
tmpfs           391M     0  391M   0% /run/user/1000
/dev/xvdb       9.8G   24K  9.3G   1% /data

扩容 /data 的方法

  1. 确认文件系统类型

    bash
    
    
    复制编辑
    df -Th /data
    
    • 如果是 ext4:用 resize2fs
    • 如果是 xfs:用 xfs_growfs
  2. 直接扩展文件系统

    • ext4:

      bash
      
      
      复制编辑
      sudo resize2fs /dev/xvdb
      
    • xfs:

      bash
      
      
      复制编辑
      sudo xfs_growfs /data
      
  3. 检查结果

    bash
    
    
    复制编辑
    df -h /data
    

💡 小结: 你的 /data 是直接格式化到整个 /dev/xvdb 磁盘上的,所以不需要分区扩容,只要扩文件系统即可。