锁定硬盘驱动器扇区中的文件,以防止任何进程访问

锁定硬盘驱动器扇区中的文件,以防止任何进程访问

我将其写入硬盘后,它就存在于我的硬盘上C5 Current Pending Sector Count1

我在那个坏扇区找到了文件(使用 7zip 计算文件夹哈希值刚好在该文件上停止)。然后我将文件移动到磁盘根目录中的一个单独文件夹中(从物理上讲文件没有被移动)并将正确的文件放入原始文件夹中。我还将扩展名从 重命名为 ,.png.badsector防止文件资源管理器读取文件来生成缩略图。

不过,我认为 Windows 的自动碎片整理可能会物理移动文件(该扇区仍然不是“坏扇区”,有时我能够成功读取文件)并将任何其他文件放置在该坏扇区中(可能会造成损坏)

如何防止任何进程物理移动文件 (例如,通过有计划地执行 Windows 驱动器优化(碎片整理))我想将文件永远保留在这个扇区中,以便没有人访问坏的(待处理)扇区。

答案1

我的硬盘上 C5 写入后,当前待处理扇区数为 1。

我在那个坏扇区中找到了文件(使用 7zip 的文件夹哈希计算刚好在该文件上停止)。

这不算证据。你可能发现了另一个损坏的扇区。

但是,我认为 Windows 的自动碎片整理可能会物理移动该文件(该扇区仍然不是“坏扇区”,有时我能够成功读取该文件)并将任何其他文件(可能损坏它)放置在该坏扇区中。

如果有问题的扇区是 SMART 属性中所述的待处理扇区,则自动碎片整理无法移动文件,因为它无法读取该扇区。如果扇区损坏,并且将来某个时候您的操作系统向包含坏扇区的驱动器发出写入命令,则驱动器的固件将在该写入过程中重新映射该扇区。

如何防止任何进程物理移动文件(例如,通过有计划地执行 Windows 驱动器优化(碎片整理))?我想将文件永远保留在此扇区中,以便没有人访问坏的(待处理)扇区。

对于假定的问题,这是错误的解决方案。将您存储在其他地方的文件内容重写到存储文件不可读副本的位置。这将重新映射扇区,假设待处理的扇区确实属于您的文件。这是由驱动器固件处理的解决方案。这是首选方案,因为下面提出的第二种解决方案只会在文件系统存在时持续。如果您在该操作之前和之后读取 SMART 参数,您应该注意到待处理的扇区数减少了 1,而重新分配的扇区数增加了 1。

在操作系统级别,您可以运行带有 /r 参数的 chkdsk 命令。简而言之,这将触发对文件系统级别上标记为坏的不可读扇区的搜索。由于 FAT 和 NTFS 文件系统不直接处理扇区,而是处理称为“簇”的扇区集,实际上该命令会将包含损坏扇区的每个簇标记为坏的,并且文件系统将不再使用它。

相关内容