从ext4恢复已删除文件的最佳/最快/最安全的方法是什么?
规格:
- 磁盘是1TB SSHD(hibrid HDD+SSD),分区也使用LUKS加密(版本1)加密
- Mongodb正在使用WiredTiger作为存储引擎
此外,如果我管理文件的部分恢复,我可以对mongo的集合进行部分恢复吗?
步骤1:文件恢复
使用extundlete:快速恢复文件
sudo umount /path/to/disk &&
sudo extundelete /path/to/disk --restore-directory /path/to/dir -o /restored/path/
/path/to/disk
表示磁盘路径,例如/dev/sdd
、/dev/mapping/label
/path/to/dir
表示要恢复的相对于磁盘安装点的路径,例如,如果/dev/ssd
将安装在/mnt/label/
,则完整路径为/mnt/label/path/to/dir
,相对路径为/path/to/dir
使用extundlete恢复的优点:
- 重量轻
- 如果磁盘已安装或加密,则可以工作
- 很快,它给出了答案,如果可以在几秒钟内恢复,并且它以超过100MB/s的速度写入恢复的文件
一般中数据恢复的缺点
- 不能保证成功
- 如果在已删除的扇区中写入了新数据,则无法工作(因此,请尽快卸载磁盘,并在进行任何恢复之前对损坏的磁盘进行映像)
步骤2:如果缺少数据,则修复mongodb
备份在此步骤之前,mongod --repair
可以删除好的数据
未测试,但据我所知,如果数据库不完整,mongod --repair
应该有助于修复数据库,否则您可以使用继续恢复WiredTiger
- 从损坏的mongodb安装中恢复WiredTiger集合