我创建了一个初始大小为 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!
有什么帮助吗!