在 Linux 中 fsck 一个 ntfs 驱动器

viv*_*vin 34 linux ntfs fsck

有没有办法从 Linux 上 fsck/chkdsk 一个 NTFS 驱动器?

Bil*_*hor 18

是的。这是fsck在某些版本上处理的。如果分区未在 中列出/etc/fstab,那么您可能需要告诉它分区类型。我已经从 Linux CD 中使用它来恢复 Windows 无法从中启动的分区。

根据下面的评论,实际修复是由ntfsfix程序完成的。即使没有程序可以fsck在 NTFS 文件系统上运行,它也应该可用。

  • 尽管如 ntfsfix/fsck.ntfs 的手册页所述,它不是 chkdsk 的 Linux 版本,并且只检查磁盘上某些类型的明显问题。 (8认同)
  • 我从上面的评论中假设 `fsck.ntfs` 在某个时候由 `ntfsfix` 处理。对较低帖子的评论表明这现在可能行不通,因为他们的论点不兼容。无论如何,在 Debian 8.2 中,`fsck.ntfs` 不存在 - 但是 `ntfsfix` 存在并且能够修复我遇到的损坏的 MFT。感谢@SabreWolfy 的提示。 (4认同)

eug*_*eug 12

不幸的是,与微软的 chkdsk 相比,ntfsfix 工具非常有限。尝试安装 Windows - 最好使用最新版本的 Windows,因为 Microsoft 可能正在不断改进 chkdsk(我希望......)新版本的 Windows 通常可以免费试用。如果问题出在 USB 磁盘上,您可以尝试在 VirtualBox 之类的东西中安装 Windows,并让 VM 控制 USB 设备。

  • 在 Linux 使用的 NTFS 上使用 Windows“chkdsk /f”时请小心。我只是按照此建议修复了我的外部 2TB 备份驱动器上的错误。由于无效字符(从 NTFS 的角度来看 - 最常见的是时间戳中使用的“:”),它删除了 268 个文件和目录的名称(包括我所有的增量备份)。我使用日志文件将其全部恢复,但编码花费了半天。一些(但不是全部)Linux 系统调用会阻止在 NTFS 上写入此类无效名称。我使用 rsync 进行备份,它会默默地复制此类无效文件名 - 通常很有用,直到您需要修复磁盘上的其他问题...... (2认同)

use*_*867 10

就我而言,fsck&都ntfsfix无法解决我的外部 NTFS 移动磁盘的问题。

我最终启动到 Windows 操作系统,并使用以下步骤来解决磁盘问题。

脚步:

  • 检查坏盘的标识符。例如g
  • 打开windows的“cmd”终端。
  • 输入chkdsk <disk>: /f以修复它。标识符在
    哪里,例如<disk>chkdsk d: /f
  • 然后它将在几秒钟内修复(对于大小为 1Tb 的磁盘)。

多年后,我终于发现了一些 Windows 可以轻松完成但 linux 不能的事情;)


@Update - 虚拟机解决方案

你也可以创建一个windows虚拟机(例如win 7),然后将移动磁盘挂载到windows虚拟机上,然后你也可以使用chkdsk修复磁盘,这与启动到windows机器类似。


小智 7

ln -s /bin/ntfsfix /sbin/fsck.ntfs

fsck /dev/sdg1
fsck from util-linux 2.21.2
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... FIXED
NTFS volume version is 3.1.
NTFS partition /dev/sdg1 was processed successfully.
Run Code Online (Sandbox Code Playgroud)

在 fedora 22 上,还有另一个二进制文件:

lrwxrwxrwx. 1 root root 13 May 22 22:13 /usr/sbin/fsck.ntfs -> ../bin/ntfsck
Run Code Online (Sandbox Code Playgroud)


squ*_*cle 5

如果安装了 NTFSProgs,您应该能够运行fsck.ntfsfsck -t ntfsfsck NTFS 驱动器。

  • 运行Debian 6.0.3,只安装了ntfsprogs,没有安装fsck.ntfs,当使用-t ntfs运行fsck时,得到“fsck.ntfs not found”。所以不要认为两者有关联。 (4认同)
  • @ZayneSHalsall 在 Debian 中,它恰好是“ntfsfix”的符号链接,该符号链接位于“ntfsprogs”中。我向您保证,如果正确安装了“ntfsprogs”,您将能够运行“ntfsfix”。 (4认同)
  • 较新版本的 Debian 和 Ubuntu 没有此符号链接。您可以自己制作,但问题是“ntfsfix”具有与标准“fsck”完全不同的参数集。最好将“fsck.ntfs”(和“fsck.ntfs-3”)制作为包含“exec ntfsfix ${@:$#}”(带有“#!/bin/bash”的shebang)的脚本。 (4认同)
  • @squircle 谢谢你,`sudo ntfsfix /dev/sda1` 解决了我的问题。 `fsck.ntfs -f /dev/sda1` 和 `fsck -t ntfs -f /dev/sda1` 通过 `fsck from util-linux 2.31.1` 提前退出 (2认同)