为什么 Linux 系统有时可以恢复 Windows 不能的数据?有什么具体原因吗?

Phi*_*ier 3 linux ssd data-recovery filesystems

背景: 今年早些时候,我遇到了 Windows 无法识别的 SSD 驱动器问题。但最终可启动的“Parted Magic 2012-10-10”成功了。看到这个解决的线程。然而,一个问题一直困扰着我......

问题: 我知道 Linux 通常更具技术性和原始性,但有人可以大致概述为什么 Linux 系统(或者实际上只有那个特定的系统,因为 Ubuntu 没有做到这一点)仍然能够访问/通信Windows 不是半损坏的设备?

  • 他们是否只是忽略了任何可能出现问题的潜在指标?
  • 有什么具体的原因吗?
  • 如果只是在有限的时间内,这个特定环境能够让 SSD 做出响应,这只是幸运吗?

小智 5

通常,这归结为正在访问的内容以及设备发生故障的确切方式。例如,如果有问题的 SSD 无法检索,例如,扇区 5,并且在任何读取扇区 5 时就会开始停顿,则差异可能仅仅是由于不同的系统在识别出新磁盘后自动访问的内容。

当 Windows 检测到新磁盘时,它将读取分区表并自动尝试打开它知道如何读取的任何文件系统。如果在此“挂载”过程中读取的任何结构/块触发您的故障 SSD 再见,与该特定 linux 发行版的区别只是它可能不会自动挂载所有有问题的分区,或者可能,挂载时,只需读取不同的扇区子集(Linux 中 NTFS 的实现与 Windows 中的实现非常不同——虽然磁盘格式相同,但取决于操作系统认为需要读取的结构. Windows 可能会读取 MFT 的辅助副本,或者它可能会开始预缓存一些数据,这可能是不同的。Ubuntu 处于类似的状态——它不适合开箱即用的恢复,它将尝试自动挂载它在新发现的媒体上找到的任何文件系统。正是由于这个原因,面向恢复的专门发行版是一个更好的选择,因为它们只做你明确要求他们做的事情,而不是自动做事。

当然,你也可能只是走运了。我对SSD的故障模式了解不多。

Linux 通常不会忽略出现问题的指标。它将从 SATA 芯片组接收到与 Windows 相同的 SCSI 错误——如果您查看内核日志,在有故障的磁盘上您会看到很多错误消息。这取决于实际访问磁盘的程序接下来会发生什么。如果它是用于恢复的软件,它可能会尝试以有限的次数重新读取同一扇区,它可能会跳过它等。通常最好的办法是获得尽可能多的扇区读取干净的驱动器映像,并且然后尝试从该图像中恢复您的数据(直接在驱动器上进行任何分析通常是一个坏主意,因为它的状况可能会恶化并且仅仅因为您能够读取一次内容,这并不意味着您将能够再次读取它.)