AWS EC2挂载EBS卷后访问挂载目录为空问题求助
EBS卷挂载后原有数据丢失的解决方法
根因定位
你对存储了原有数据的EBS卷执行了mkfs -t ext4命令,该操作会直接格式化卷、擦除原有文件系统和全部数据,是挂载后目录为空的核心原因。
恢复操作步骤
- 第一步立即停止对该EBS卷的所有写入操作,避免剩余可恢复的数据被二次覆盖
- 未创建快照的场景下使用恢复工具找回数据:
- 先卸载当前挂载的卷:
sudo umount /mnt/test - 安装ext4文件系统恢复工具extundelete:
- Debian/Ubuntu系统执行:
sudo apt install -y extundelete - RHEL/CentOS/Amazon Linux系统执行:
sudo yum install -y extundelete
- Debian/Ubuntu系统执行:
- 扫描磁盘可恢复文件列表:
sudo extundelete /dev/sdf --inode 2 - 恢复全部可找回的数据,恢复后的文件默认存放在当前目录的
RECOVERED_FILES文件夹中:sudo extundelete /dev/sdf --restore-all
- 先卸载当前挂载的卷:
- 已创建过该EBS卷快照的场景,直接从快照恢复:
- 从原有快照创建新的EBS卷,绑定到目标EC2实例
- 执行
lsblk确认卷对应的设备名(部分AWS AMI会将指定的/dev/sdf映射为/dev/xvdf,以实际输出为准) - 无需格式化直接挂载即可查看原有数据:
sudo mount 实际设备名 /mnt/test - 如需开机自动挂载,将对应配置写入
/etc/fstab即可。
后续操作注意事项
- 挂载带有存量数据的EBS卷时,绝对不要执行
mkfs格式化操作,该操作不可逆 - 挂载前可先执行
sudo blkid 设备名确认设备是否存在有效文件系统,确认无误后再执行挂载操作 - 操作存储重要数据的EBS卷前,务必先创建快照备份,避免误操作导致数据永久丢失
内容的提问来源于stack exchange,提问作者Almidane
相关产品推荐
相关产品推荐

