修复没有Windows的损坏的NTFS分区


84

我的NTFS分区已经以某种方式损坏(这是我安装Windows以来的遗物)。

GParted屏幕截图显示了不同的分区

我将fdisk和blkid的调试输出放在这里

同时,任何操作系统都无法挂载我的根分区,该根分区位于我的NTFS分区旁边。不过,我不确定这是否与此有关。尝试挂载根分区(sda5)时出现以下错误

mount: wrong fs type, bad option, bad superblock on /dev/sda5,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

ubuntu@ubuntu:~$ dmesg | tail
[ 1019.726530] Descriptor sense data with sense descriptors (in hex):
[ 1019.726533]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
[ 1019.726551]         1a 3e ed 92 
[ 1019.726558] sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed
[ 1019.726568] sd 0:0:0:0: [sda] CDB: Read(10): 28 00 1a 3e ed 40 00 01 00 00
[ 1019.726584] end_request: I/O error, dev sda, sector 440331666
[ 1019.726602] JBD: Failed to read block at offset 462
[ 1019.726609] ata1: EH complete
[ 1019.726612] JBD: recovery failed
[ 1019.726617] EXT4-fs (sda5): error loading journal

当我打开gparted(使用实时CD)时,我的NTFS驱动器旁边出现一个惊叹号,其中指出 GParted屏幕截图显示错误

chkdsk没有不使用Windows 即可运行的方法?

我的尝试运行fsck结果如下:

ubuntu@ubuntu:~$ sudo fsck /dev/sda
fsck from util-linux-ng 2.17.2
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sda

The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>

更新:我能够从Hiren的BootCD上修复运行chkdsk的NTFS分区,但是似乎超级块问题仍然存在。

更新2:使用解决了超级块问题e2fsck -c /dev/sda5


1
链接到相关问题:askubuntu.com/q/58755/31592
blong

Answers:


106

使用安装ntfs-3g sudo apt-get install ntfs-3g。然后在您的NTFS分区上运行ntfsfix命令。

例如:

ntfsfix /dev/hda6

ntfsfix v2.0.0(libntfs 10:0:0)

用法:ntfsfix [选项]设备

Attempt to fix an NTFS partition.

-h, --help             Display this help
-V, --version          Display version information

开发者的电子邮件地址:

linux-ntfs-dev@lists.sf.netLinux NTFS主页:http : //www.linux-ntfs.org


对于较新的Ubuntu -b-d可以一起使用和选项。-b尝试修复不良群集并-d修复脏状态。所以命令可以是

sudo ntfsfix -b -d /dev/sda6

--help 给他们看

ntfsfix v2015.3.14AR.1 (libntfs-3g)

Usage: ntfsfix [options] device
    Attempt to fix an NTFS partition.

    -b, --clear-bad-sectors Clear the bad sector list
    -d, --clear-dirty       Clear the volume dirty flag
    -h, --help              Display this help
    -n, --no-action         Do not write anything
    -V, --version           Display version information

您对超级区块问题有什么建议吗?我已经修复了NTFS分区。
Nemo

5
不幸的是,这不是一个有用的答案-问题实际上不是如何修复NTFS文件系统结构,而是块设备级别(低于NTFS)的不可恢复的读取错误。这意味着(如psusi已经说过的那样)“您的磁盘已经干了”-唯一的选择是购买新的硬盘并从备份中恢复。如果您没有最新的备份,则可以尝试使用GNU ddrescue(“ apt-get install gddrescue”)将尽可能多的数据恢复到磁盘映像文件中。Google为Ubuntu磁盘恢复提供更多帮助。
RichVel 2011年

3
@RolandTaylor:我敢肯定它是有帮助的,但是告诉某人在日志中出现可见的不可恢复的读取错误时运行文件系统检查将无济于事。他们也许可以暂时修复错误,但是磁盘硬件确实出现了故障,ntfix并没有帮助。
RichVel

5
抱歉,这是不正确的:问题的第一个版本在日志中包含“ sd 0:0:0:0:[sda] Add。含义:不可恢复的读取错误-自动重新分配失败”行-不可恢复的读取错误(URE )表示驱动器发生故障。如果遇到无法恢复的写入错误,可以将其保留一段时间(驱动器重新映射块),但是URE不能正常运行。有关类似的错误,请参见superuser.com/questions/114675/…。请参阅en.wikipedia.org/wiki/SMART#cite_note-labs.google.com-1-大量的Google分析。
RichVel 2011年

1
在URE问题还有一个很好的链接是另一个堆栈交易所网站这样的回答:unix.stackexchange.com/questions/1869/...
RichVel

14

我刚刚使用Linux命令行实用程序“ testdisk”修复了USB驱动器。我的驱动器甚至没有安装在Windows中,发现Windows 8像6个分区(当驱动器只有一个)时。

要使用该实用程序,请安装它:

sudo apt-get install testdisk

然后运行它:

sudo testdisk

并按照说明进行操作。您必须搜索分区,然后编写更改。

希望这对任何人有帮助。


3
很棒。.修复了外部硬盘上损坏的分区表!谢谢!V
vellvisher 2013年

11

只是为了澄清您的一些观点。

我尝试运行fsck结果如下:

ubuntu@ubuntu:~$ sudo fsck /dev/sda

...

fsck.ext2: Bad magic number in super-block while trying to open /dev/sda

现在,这不足为奇,因为您尝试fsck磁盘,而不是磁盘分区。fsck所做的是,它尝试识别FS类型。因为您已给它提供了原始磁盘表面,所以它无法识别并采用默认类型ext,调用fsck.ext。

fsck.ext在该位置未找到任何FS签名,并尝试查找超级块。最终它失败了,因为它的磁盘只有NTFS分区类型。

这就是为什么您有此错误。

正确的命令是:

sudo fsck /dev/sda1

这将提供第一个sata硬盘驱动器的FIRST分区,而不是第一个sata磁盘本身。


不过,这可能不是解决OP问题的答案,尽管它的信息是纯金的。谢谢一群!
oliverjkb

你是sda1 ntfs吗?
Adi Prasetyo

5

您的磁盘是烤面包片。检查磁盘实用程序中的SMART诊断以进行确认;它应该说您有很多坏扇区,需要更换驱动器。


5

我同意@psusi:需要更换磁盘,请在接受的答案下查看我的评论。这样做ntfsfix根本无济于事,只会拖延以下各项的基本操作:

  1. 尽快备份磁盘上的所有数据
  2. 用新磁盘替换磁盘

确实没有必要检查SMART诊断程序-无论如何,它们只会拾取一定百分比的错误。红旗是两行:

[ 1019.726558] sd 0:0:0:0: [sda]  Add. Sense: **Unrecovered read error** - auto reallocate failed
[ 1019.726602] JBD: **Failed to read block** at offset 462

一旦磁盘开始出现不可恢复的读取错误(URE),应立即将其更换,并且仅用于数据恢复。(过多的非URE也表明需要更换。)

磁盘应被视为消耗品,必须每隔几年更换一次,因此,拥有真正良好的备份(自动,每日,完整和至少到外部驱动器)至关重要。


5

在Ubuntu 14.04中,只需尝试一下

sudo ntfsfix /dev/sdXY

XY您的分区在哪里。(/dev/sda2根据您的情况)


2

fsck并且gparted应用无法用于解决ntfs分区的问题。ntfsfix不应该用来尝试解决此问题。

通常应使用Windows工具。但是,chkdsk这里没有帮助。

您可以尝试testdisk从Ubuntu OS使用。

sudo apt-get update #更新软件数据库

sudo apt-get install testdisk #安装testdisk

sudo testdisk #启动testdisk

访问http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step以获得使用此工具的帮助。


可能想补充一点,I / O错误通常表示驱动器或驱动器部分将要死。Esp。如果NTFS如此损坏,则无法使用chkdisk或任何Windows工具对其进行修复。
托马斯·沃德

@ThomasWard您是绝对正确的... I / O错误通常意味着更多的麻烦。“ @karel”让我在此添加了他在另一个问题中放置的链接,作为后续操作...所以我没有在这里阅读所有详细信息...并且该问题已经有了可接受的答案,并进行了更新。
heynnema

1

正如其他答案所说,在这种情况下,它可能是坏磁盘。

但是,为了使其他人面对实际的NTFS损坏-不幸的是,与Microsoft的chkdsk相比,ntfsfix工具非常有限。尝试进行Windows安装-最好使用Windows的最新版本,因为Microsoft可能会不断改进chkdsk(我希望..)。Windows的较新版本通常可以免费试用。如果问题出在USB磁盘上,则可以尝试在VirtualBox之类的系统中安装Windows,并让VM控制USB设备。


1

不幸的是,Linux上可用的免费工具在修复NTFS分区方面非常有限。

很可能您仍然可以通过使用磁盘末端存储的辅助MFT来恢复数据。通常不使用它,但是它应包含目录结构的最新版本。它很有可能不受磁盘错误的影响。

过去,我曾使用Runtime Software的(商业版,价格为79美元)产品GetDataBack NTFS取得了巨大成功。它是在WINE中作为Linux LiveCD 运行的少数NTFS工具之一(唯一?),免费演示应足以查看您的数据是否仍然存在。如果是这样,您的数据可能就值得购买该工具。

LiveCD运行Knoppix Linux,并预先安装了所有工具。请注意,您仍然需要许可证密钥才能实际使用这些工具,但是足以证明它是否可以在您的计算机上使用。

免责声明:除了几年前购买他们的产品外,我与Runtime软件没有任何关系。


+1不是因为我对这个答案有经验;这样做是为了提高人们对诸如Parted Magic之类鲜为人知的替代品的认识。
Graham Perrin

0

这个答案可能仅适用于10.04(透明)和更高版本的Ubuntu!

尝试sudo ntfsfix -b /dev/sda2

  • 您需要安装ntfs-3g安装ntfsprogs。如果没有它,可以通过单击该链接将其安装在软件中心中,或者通过运行以下命令从终端(Ctrl+ Alt+ T)中进行安装:

    sudo apt-get update
    sudo apt-get install ntfs-3g
    

4
在默认情况下安装NTFS-3g时,为什么要使用NTFSProgs?NTFSProgs已死,因为它已完全合并到NTFS-3g中。切换到前者可能会导致更多问题,而不是解决的问题。
TSJNachos117

1
在精确到12.04之后,NTFSProgs不再是软件包存档的一部分。
凯南2015年

0

我只是在3TB NTFS USB上遇到了同样的问题。您可以想象的大戏剧。

我首先尝试将其修复在我妻子的Windows盒子上。不开心

sudo ntfsfix / dev / sdcx非常快速地修复了它。

万岁!回到工作。确实必须获得一个新磁盘并立即将其重新格式化为正确的成人文件系统。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.