如何确定哪个文件占用了给定的扇区?

如何确定哪个文件占用了给定的扇区?

我的硬盘有 3 个坏扇区。我知道扇区号,计算机仍然可以启动 Windows。我想使用制造商提供的 HDD 诊断工具运行扇区修复,但在此之前,我想知道哪些文件受到了影响。有没有办法找出哪些文件占用了这些扇区?

答案1

尝试 nfi.exe - Windows NT 文件系统 (NTFS) 文件扇区信息实用程序。下载自Microsoft OEM 支持工具第 3 阶段 SR2

> nfi.exe
Dumps information about an NTFS volume, and optionally determines
which volume and file contains a particular sector.

Usage: nfi drive-letter [logical-sector-number]

        Drive-letter can be a single character or a character followed
        by a colon (i.e., C or C: are acceptable).

        Logical-sector-number is a decimal or 0x-prefixed hex
        number, specifying a sector number relative to the volume
        whose drive letter is given by drive-letter. If not
        specified, then information about every file on the volume
        is dumped.

   nfi NT-device-path physical-sector-number

        Determines which volume a given physical sector on a drive is
        within, and then which file on the volume it is in.

        NT-device-path is the NT-style path to a physical device.
        It must not include a partition specification.

        Physical-sector-number is a decimal or 0x-prefixed hex
        number, specifying a sector number relative to the physical
        drive whose device path is given by NT-device-path.

    nfi full-win32-path

        Dumps information about a particular file. full-win32-path
        must start with a drive letter and a colon.

请注意,必须省略块设备路径的“\?”前缀。示例:

C:\Users\admin\Downloads>nfi \Device\Harddisk0\DR0 28521816
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.


***Physical sector 28521816 (0x1b33558) is in file number 5766 on drive C.
\IMAGES\win7HDD.vhd
    $DATA (nonresident)
        physical sectors 32863720-34098663 (0x1f575e8-0x2084de7)
        physical sectors 28519912-32863719 (0x1b32de8-0x1f575e7)
        physical sectors 25727944-26291143 (0x18893c8-0x1912bc7)
        physical sectors 95163976-115106143 (0x5ac1648-0x6dc615f)

答案2

以下是使用的过程六、WinHex,一个方便的十六进制编辑器,可以直接检查和编辑驱动器。 要非常小心;如果使用不当,此工具可能会损坏您的系统。打开磁盘只读只要有可能。

  1. 由于您已经知道了坏扇区的位置,因此您可以直接在 WinHex 中打开驱动器(“打开磁盘”工具栏按钮),然后导航到扇区以查看数据(“前往部门”工具栏按钮)。假设您的扇区位置是物理扇区地址,则需要打开身体的推动这一步。

    惯于直接识别文件,但左侧窗格应识别包含此扇区的分​​区及其对应的相关部门地址。

  2. 如果您识别的分区是 NTFS 或 FAT 分区,我们可以直接打开该分区(“打开磁盘”再次)。这将在新选项卡中打开分区,因此您可以根据需要来回切换。在分区选项卡中,使用“前往部门”再次运行该函数,但这次输入的是翻译后的扇区(“相关部门”驱动器视图中已识别)。

    现在,在左侧窗格中,您应该看到一个关于“分配可见驱动器空间”. 下面是簇号、物理扇区号、逻辑(相对)扇区号以及文件名(如果该扇区实际上属于某个文件)。

如果这些步骤没有立即给您答案,则您的坏扇区可能未被使用。如果结果不明确,您可能需要进行更多挖掘才能找到答案。

答案3

fsutil您可以从管理员命令提示符中使用。子命令volumequeryclustersubsubcommand。请参阅Windows 命令行参考 Fsutil

Fsutil 将逻辑驱动器中的簇号而不是扇区号作为输入参数。但计算这个数字应该很容易:
簇号 = (绝对扇区 - 分区起始扇区) / 每个簇的扇区数。

示例输出:

c:\tmp> fsutil volume querycluster C: 5235
Cluster 0x0000000000001473, verwendet von
 ----D \Program Filesx86)\LibreOffice 4\program\fwilo.dll::$DATA

答案4

磁盘查看器Sysinternals 执行的正是这个功能:显示驱动器的磁盘地图并让您看到哪些文件占用了哪些簇。

不幸的是,似乎没有办法显示系统文件的名称。

DiskView 主窗口 DiskView 系统文件

相关内容