首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从带有坏扇区的NTFS驱动器中恢复文件

从带有坏扇区的NTFS驱动器中恢复文件
EN

Ask Ubuntu用户
提问于 2012-06-04 21:35:32
回答 3查看 20.8K关注 0票数 5

几天前的晚上,我在一个外部的500 GB NTFS USB硬盘上创建了数据备份。然后,我格式化了我的计算机,重新安装了Ubuntu,并开始从外部HDD返回数据。

不幸的是,有些文件已经损坏,Ubuntu无法复制它们。如果我使用Windows 7登录,也会出现同样的问题。

磁盘实用程序智能地检测到“一些坏扇区”。

有些文件完好无损,但其他文件无法访问(也不能读取、复制.)虽然它们显示在海里,并显示正确的文件大小。

我能做些什么来恢复这些数据吗?我已经考虑过使用TestDisk,但是这个实用程序对于修复丢失的分区或已删除的文件似乎更有用。

我也曾考虑过使用ddrescue,以便我至少可以有一个低级别的磁盘副本,但我不知道如何利用它来恢复数据!

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2012-06-10 08:43:34

问题解决了!我知道这与Ubuntu无关,但我认为这对其他人是有用的。

我发现窗口的chkdsk可以解决这个问题,这是因为Ubuntu不像Windows那样支持NTFS。运行这些任务花费了几个小时/天(只有激活了所有选项的Windows scandisk ),但最终我成功地恢复了99.98%的数据。

票数 5
EN

Ask Ubuntu用户

发布于 2015-06-14 17:36:52

相反,使用dd时,您应该使用一个更好地处理错误的工具,而不是用零填充错误。我遇到了很多次超时,这使得这个过程非常漫长和乏味。另一种选择是ddrescue,它会重试失败的扇区,而且从我的经验中跳过坏扇区的速度也会更快一些。

安装(ubuntu)

代码语言:javascript
运行
复制
sudo apt-get install gddrescue

创建图像

代码语言:javascript
运行
复制
 sudo ddrescue -d -r3 /dev/sda1 test.img test.logfile

这将在名为test.img的磁盘/dev/sda1的当前dir中创建一个映像。当然,您可以备份完整的驱动器,而不是单个分区。(r参数告诉它三次重试失败的扇区-不要忘记日志文件,否则将无法工作)resume还允许您中止/恢复这个非常好的过程。记住设置正确的块大小:如果在-b“直接模式”上出现错误,请设置-d“块大小”

挂载图像文件

创建一个要挂载映像和挂载映像的文件夹

代码语言:javascript
运行
复制
sudo mkdir /mnt/mybackup
mount test.img /mnt/mybackup -o loop

有关更多信息,请查看以下内容:https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html https://www.technibble.com/guide-using-ddrescue-recover-data/ https://apple.stackexchange.com/questions/39504/best-way-to-copy-all-files-ignoring-errors

票数 4
EN

Ask Ubuntu用户

发布于 2012-06-04 22:31:26

如果驱动器有不可读扇区,您可以选择使用dd来制作它的映像,迫使它忽略损坏的扇区,然后挂载该映像以读取有用的数据。

创建驱动器

的映像

使用命令sudo fdisk -l标识您的USB磁盘,注意他的设备路径,它应该类似于/dev/sd[*],其中*是一个代表您的USB驱动器的字母。

当您确定要复制的驱动器的路径时,可以使用dd生成它的映像,并在读取数据失败后使用这些选项继续读取。

代码语言:javascript
运行
复制
dd if=/dev/hd[*] of=/foo_path/foo_image conv=noerror,sync

这将读取设备/dev/sd[*],将其输出到/foo_path/foo_image并忽略读取错误。/foo_path/foo_image不应该在您正在读取的同一个磁盘上。

因此,假设您使用了sudo fdisk -l,并且您发现您的USB驱动器是/dev/sdb,那么您就可以使用这些命令中的任何一个来生成图像,只需用/dev/sdb替换/dev/hd[*]即可。

鼠标打开图像文件以读取数据

您需要创建一个挂载点,让我们称其为/mnt/ddimage

代码语言:javascript
运行
复制
sudo mkdir /mnt/ddimage

现在将您刚刚创建的映像挂载到它上。

代码语言:javascript
运行
复制
mount /foo_path/foo_image /mnt/ddimage -o loop

您现在应该能够从克隆的驱动器映像中读取任何有用的数据。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/146524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档