在云环境中,实例和数据卷的管理非常重要。本篇博客记录了我在 AWS 上重新创建 Ubuntu 实例,并配置额外数据卷、分区和挂载的完整过程,保证系统和应用环境安全、干净地运行。

一、前提准备

  • 已经在 AWS 控制台上创建好新的 Ubuntu 实例(建议 Ubuntu 24.04 LTS)。

  • 为实例准备了两块 EBS 卷:

    • 系统盘:100G,用于 /

    • 数据盘:400G,用于存储应用数据(如 MySQL/Redis 数据)。

  • 目标:将数据卷挂载到 /mnt/data,保证永久挂载。

二、连接实例

通过 SSH 连接到新实例:

ssh ubuntu@<实例公网IP>

确认系统盘已经正常挂载:

df -h
lsblk

三、数据卷分区

1. 查看卷信息

lsblk

输出示例:

nvme0n1   100G  -> 系统盘
nvme1n1 400G -> 数据卷

2. 分区数据卷

使用 fdisk 创建分区:

sudo fdisk /dev/nvme1n1

操作步骤:

  1. 建第一个分区(例如 150G

    Command (m for help): n
    Partition number: 1
    First sector: <默认回车>
    Last sector: +150G
  2. 创建第二个分区(剩余容量 250G)

    Command (m for help): n
    Partition number: 2
    First sector: <默认回车>
    Last sector: <默认回车>
    
  3. 修改分区类型(可选,Linux 默认即可):

    Command (m for help): t
    Partition number: 1
    Type: 83
    
  4. 写入分区表并退出:

    Command (m for help): w

    如果数据卷是不想分两个区,在第1步直接全部回车即可

四、创建文件系统

给每个分区创建 ext4 文件系统:

sudo mkfs.ext4 /dev/nvme1n1p1
sudo mkfs.ext4 /dev/nvme1n1p2

五、挂载分区

  1. 创建挂载点:

    sudo mkdir -p /mnt/data
    sudo mkdir -p /mnt/data2
  2. 临时挂载:

    sudo mount /dev/nvme1n1p1 /mnt/data
    sudo mount /dev/nvme1n1p2 /mnt/data2
  3. 验证挂载:

    df -h

六、设置开机自动挂载

编辑 /etc/fstab 文件:

sudo vim /etc/fstab

在最后添加内容:

/dev/nvme1n1p1  /mnt/data   ext4  defaults,nofail  0 2
/dev/nvme1n1p2  /mnt/data2  ext4  defaults,nofail  0 2

保存后应用:

sudo umount /mnt/data /mnt/data2
sudo mount -a

验证挂载是否成功:

df -h

七、总结与经验

  • 新实例安装比在原实例上修复更安全,尤其是在卷操作过的情况下。

  • 系统盘和数据盘分开,方便管理和备份。

  • 使用 fstab 配置自动挂载,避免每次重启都手动挂载。

更多推荐