如何无损将Debian EC2的dev/xvdf替换为根卷dev/xvda并缩容至80GB
Debian EC2实例根EBS卷缩容步骤(从500GB到80GB)
1. 初始化新卷(/dev/xvdf)
- 先确认新卷状态:
lsblk,确保/dev/xvdf未分区 - 给新卷创建分区:
fdisk /dev/xvdf- 输入
n创建新分区,选择主分区(p),分区号设为1,起始扇区用默认值,结束扇区直接按回车(因为新卷本身就是80GB) - 输入
w保存分区表
- 输入
- 格式化分区为ext4(和原根卷文件系统保持一致):
mkfs.ext4 /dev/xvdf1
2. 完整复制原根卷数据到新卷
- 创建临时挂载点并挂载新分区:
mkdir /mnt/new-root mount /dev/xvdf1 /mnt/new-root - 用rsync复制所有有效数据(排除系统临时/挂载目录,避免无效复制):
rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/new-root- 参数说明:
-a保留权限、所有者等属性;-A保留ACL规则;-X保留扩展属性;-v显示复制进度
- 参数说明:
3. 配置新卷的引导与系统挂载规则
- 挂载必要的系统目录,以便进入新卷的系统环境:
mount --bind /dev /mnt/new-root/dev mount --bind /proc /mnt/new-root/proc mount --bind /sys /mnt/new-root/sys - 切换到新卷的系统环境:
chroot /mnt/new-root - 安装GRUB引导程序(确保新卷能作为根卷启动):
grub-install /dev/xvdf update-grub - 查看新分区的UUID(后续修改挂载规则要用):
blkid /dev/xvdf1 - 编辑
/etc/fstab,把根分区(/)的UUID替换成上面查到的新卷UUID,确保文件系统类型为ext4 - 退出新卷的系统环境:
exit - 卸载临时挂载的系统目录:
umount /mnt/new-root/sys umount /mnt/new-root/proc umount /mnt/new-root/dev umount /mnt/new-root
4. 切换根卷并验证系统
- 停止EC2实例(确保所有数据写入完成)
- 在AWS控制台操作:
- 分离原根卷(/dev/xvda),务必保留原卷作为备份,不要立即删除
- 将新卷(原/dev/xvdf)挂载到实例的根卷位置(/dev/xvda)
- 启动实例,连接后验证:
- 用
df -h查看根卷容量是否为80GB - 检查系统服务、数据是否正常
- 用
内容的提问来源于stack exchange,提问作者Abhishek Panda
相关产品推荐
相关产品推荐

