问题

问题

问题

突然间,所有文件都来自2015 年 2 月2016 年 11 月消失了从文件系统。

语境

  • 在过去 2 年中,系统多次因电源故障或 USB 硬件断开而突然终止。
  • 这种损失似乎不是因为坏块或类似的事情。似乎更多的是与软件相关的东西。
  • vmdk这些磁盘是连接到 VirtualBox Ubuntu 的基于 USB 硬件的 RAID-5 上的平面全尺寸文件。
  • 拥有 RAID 和 VirtualBox 的主机是 Windows。
  • Windows 中的 RAID 是 NTFS,VirtualBox 运行 Ubuntu,访问 ext4 格式的 vmdk。 Windows 除了包含一堆虚拟机之外不执行任何其他功能,并且除了启动或停止虚拟机之外,没有用户进入该 Windows。

情况

我每天都在大量使用这些磁盘(来自 Ubuntu)。而且我每天都成功地使用了前一天、前一周、上个月等的文件...即使在重新启动后...所以数据必须在那里。

但突然...我的 Dropbox 开始删除文件,我去看看发生了什么,事实是...我无法判断这是“即时”发生的还是重新启动后发生的。

但问题是……我能看到的最新文件是 2015 年 1 月的,而我每天都成功地使用这些磁盘,直到 2016 年 11 月。这些文件可能在块中,并且由于某种原因我丢失了所有索引。

我可以很容易地想象,由于某种原因,ext4保存了 i 节点表的备份副本或类似的东西,并且出于某种原因,linux 决定将映射“恢复”到旧的映射。

我看到有很多工具。从运行 fsck 到 extundelete 等等。

我所看到的

正在做:

find . -newermt 20150201

给我零结果。

此外,

  • 对于我知道它们存在的文件,我cd进入相应的目录,但看不到那里的文件。
  • 我可以看到我知道已删除的目录结构。
  • 连接到虚拟机的多个磁盘都发生了这种情况。

ext4 还是 NTFS?

我已经从 Windows 中卸载了包含虚拟磁盘的 RAID vmdk,并将其以只读方式安装在 Linux 上。

如果我列出文件,我可以看到:

root@vagrant:/mnt/raid5/mnt# ls -la
total 1572864014
drwxrwxrwx 1 root root         4096 Jan 29  2015 .
drwxrwxrwx 1 root root         4096 Oct 31 21:14 ..
-rwxrwxrwx 2 root root 268435456000 Jan 26  2015 LinuxData250G_A-flat.vmdk
-rwxrwxrwx 2 root root          651 Jan 26  2015 LinuxData250G_A.vmdk
-rwxrwxrwx 2 root root 268435456000 Jan 26  2015 LinuxData250G_B-flat.vmdk
-rwxrwxrwx 2 root root          558 Jan 26  2015 LinuxData250G_B.vmdk
-rwxrwxrwx 2 root root 536870912000 Jan 26  2015 LinuxData500G_A-flat_3.vmdk
-rwxrwxrwx 2 root root 536870912000 Jan 26  2015 LinuxData500G_A-flat.vmdk
-rwxrwxrwx 2 root root          559 Jan 26  2015 LinuxData500G_A.vmdk

有问题的磁盘是 LinuxDataXXXG_Y-flat.vmdk

令我惊讶的是...所有这些的修改日期是 2015 年 1 月 26 日...正好“在磁盘内容丢失之前”...我看不到 2 月份的任何文件- 2015 年,但我确实看到了 2015 年 1 月的文件。

我想知道是否不是 linux 内部 EXT4 的问题,而是 NTFS 本身的问题。我无法判断 VirtualBox 低级驱动程序是否会更新主机文件的时间或“创建”时间。

RAID 中没有空间来保存 vmdk 的完整副本,因此丢失的数据必须以某种方式存在。

处理图像副本

我已经制作了原始版本的“映像” vmdk,并且卸载了完整的 RAID,因此我可能会对副本有点“破坏性”。

问题是,复制完整备份映像需要 20 个小时,所以我不想拿反复试验开玩笑,我想按正确的顺序使用正确的工具。

过程中如有任何失败,将延迟 1 天。

问题

假设数据必须在那里...假设从 ext4 开始我可以使用 i 节点表...

  • Q1) 我需要什么工具集来尝试恢复 i 节点映射或从无到有重新创建新的 i 节点表?
  • Q2)特别是,什么是命令我必须运行这些工具吗?我的意思是,如果我运行 fsck 也许我会破坏 extundelete 或反之亦然或其他工具的东西。
  • Q3) i 节点表是否会不时备份到为其保留的特殊分区区域?在哪里?如果不是从“最后一天”开始,至少从 2016 年 11 月中旬左右开始,我是否可以幸运地找到表的备份?

也许我问错了问题......

因此,一环即可解决所有问题: 问)如何恢复丢失的文件?

答案1

一致认为 USB 可能可以推送备份(实际上仍然相当慢),但是 USB 上的 RAID 和 USB 上的 TCP-NETWORK 都不是可靠且快速的(目前为止)。

  1. 在搞乱之前备份有故障的文件系统(如果有资源(额外的外部磁盘或足够大小的 NAS))
  2. 当备份为一时,用户可以安全地运行任何工具
  3. 是的,为什么不呢,从 fsck 开始:fsck -y -v -f /dev/sdX
  4. 还强烈建议将分区设置为在启动时自动检查(在操作系统启动之前)tune2fs -C 2 -c 1 /dev/sdX1(仅适用于 ext3 和 ext4)
  5. apt install testdisk-> photorec /dev/sdx-> 将带回 NTFS 和 ext4 文件内容,但不带回 /directory/struct/and/filename.jpg :(

祝你好运 :)

相关内容