减少附加到 EC2 实例的 EBS 卷的大小

减少附加到 EC2 实例的 EBS 卷的大小

我创建了一个初始大小为 100 GB 的 EC2 实例,后来我意识到不需要这么大的大小,所以我现在必须减小大小。

我尝试了什么?

  • 创建具有所需大小的新卷。
  • 将新卷附加到 ec2 实例。
  • 设置新卷(grub-install、EFI 分区等)
  • 将数据从 old_volume 复制到 new_volume。
  • 分离旧卷。

但是这个过程有点复杂,因为不是所有的用户都能顺利完成,有没有更好的方法呢?

答案1

以下是将您的 ec2 实例数据从大卷迁移到小卷的步骤。

  • 创建具有所需(减少的)卷大小的新实例并将其命名temp-instance

    • 实例处于运行状态并通过状态检查后,停止实例,分离此卷并将其命名为destination_vol
  • 附加destination_vol到主实例。

  • 连接到主实例并运行以下命令。

  • 以 root 身份登录

sudo su - 
  • 挂载卷
mkdir /target

mount -t ext4 /dev/nvme1n1p1 /target

  • 将数据从源复制到目标
rsync -aHAXxSP / /target 
  • 卸载卷。
umount /target
  • 停止主实例
  • 分离两个卷。
  • 附加destination_vol到挂载路径/dev/sda1
  • 启动实例。

笔记:

  • 确保在创建临时实例时设置正确的 AMI、架构、vpc 等。

尖端

  • 卡在初始化状态:

如果您正确地遵循了上述所有步骤并且您的实例仍然处于该initializing状态,则可以关闭并重新启动该实例。

答案2

我卡在初始化状态,尝试多次重启但没有任何更新。我收到以下错误:放弃等待根设备。常见问题:-启动参数(cat /proc/cmdline)-检查 rootdelay=(系统是否等待了足够长的时间?)-缺少模块(cat /proc/modules;ls /dev)警告!PARTUUID="" 不存在。进入 shell!

有什么帮助吗!

相关内容