我有一个 NTFS 格式的 USB 硬盘,里面有我的个人文件备份。今天,我将驱动器安装到 Oracle Linux 系统,并使用以下命令复制了常规文件(请参阅以下命令)。我在复制过程中错误地使用了设备文件/dev/sdb1
。
mount -t ntfs-3g /dev/sdb1 /sample
cp file1 /dev/sdb1
之后我卸载了驱动器并连接到 Windows 系统。现在 Windows 系统抱怨驱动器需要格式化和/或损坏。
我的问题是:我们可以在不丢失任何个人数据的情况下恢复该驱动器吗?如何查看该驱动器上的可用文件?只要挂载回Linux系统就会显示这些文件吗?
答案1
我回答了一个非常相似的问题于软件推荐问答网站。
你丢失的文件
我们可以在不丢失任何个人数据的情况下恢复该驱动器吗?
如果“个人数据”指的是用户生成的数据(不包括系统文件),那么情况可能就是这样,但是仅当您的 NTFS 驱动器包含操作系统时(可能是Windows)。假设您写入的文件不是很大,您所覆盖的内容不会超过文件系统的前 4-5 GB,这些内容本来会被 Windows 占用。
如果您的驱动器仅包含用户文件,那么至少可以肯定您丢失了其中一些文件。
不要尝试挂载该分区
如何查看该驱动器上的可用文件?只要挂载回Linux系统就会显示这些文件吗?
不,不要那样做。如果您想最大限度地恢复数据量,请勿尝试使用普通工具再次访问驱动器。不要尝试使用fsck
或类似的程序来修复它。
克隆驱动器
您应该首先克隆驱动器并避免尝试在原始驱动器上进行恢复。ddrescue
即使驱动器有硬件损坏,您也可以使用它来执行复制(您的驱动器没有,但它仍然是一个有用的工具):
ddrescue /dev/sda /media/user/External/copy.img /media/user/External/status.log
看我的答案到来自故障硬盘的原始副本以获得详细的解释。
从副本中恢复文件
免责声明:我是 RecuperaBit 的作者。
现在您可以尝试从 恢复文件copy.img
。如果您只破坏了分区的最开始部分,比如说几兆字节,您可能可以使用以下命令恢复它testdisk
:
testdisk copy.img
该程序搜索备份 NTFS 引导扇区并尝试读取分区内容。P
在分析驱动器并且突出显示正确的分区后,您可以按 列出文件。
如果可行,您可以使用该C
按钮复制一个或多个文件/文件夹。文本界面显示了一个不难遵循的分步过程。
如果损坏严重,Testdisk无法挂载分区,可以使用以下命令恢复文件恢复比特,但该过程将需要更多时间。 RecuperaBit 尝试重建文件系统结构并恢复文件。目前仅支持 NTFS。 RecuperaBit 尝试重建目录结构,无论:
- 缺少分区表
- 未知的分区边界
- 部分覆盖元数据
- 快速格式化
您可以通过以下方式开始分析:
mkdir /media/user/External/recovered_files
cd [full path of recuperabit]
pypy main.py /media/user/External/copy.img -o /media/user/External/recovered_files -s /media/user/External/savefile.save
然后输入recoverable
并检测分区的 ID。假设是2
,请输入:
restore 2 5
restore 2 -1
恢复可从根 ( 5
) 访问的文件和不可访问的文件 ( -1
)。再次,参见我原来的答案了解更多详细信息以及您可能遇到的一些注意事项。
答案2
要恢复文件,您需要使用文件恢复软件:
https://www.runtime.org/data-recovery-software.htm- 根据以前的经验,for windows
是一个不错的选择,现在可能有更好的选择。
由于它是 NTFS,我会避免在该特定分区上使用 Linux 软件。
有了这一切;在进行恢复时,您始终需要足够的额外磁盘空间来保存恢复的文件。
答案3
您确实覆盖/损坏了分区。无需尝试将其安装到其他地方。它不会安装在 Linux 中。
您是否幸运很大程度上取决于文件的大小。
如果文件(非常)小(KB),我会尝试在 Windows 软件中尝试修复分区。例如,http://www.ntfs.com/recovery-toolkit.htm
如果文件相当大,那么一切都将失败。它会擦除文件系统开头的主要块,虽然文件仍然存在,但将它们恢复并不是一项简单的任务。通常这涉及报酬(非常)丰厚的专门专业服务。