如何在 NTFS 中取消将群集标记为坏的?
我跑错了
>chkdsk /R
Run Code Online (Sandbox Code Playgroud)
在我的 SSD 上,在哪里
/R:定位坏扇区并恢复可读信息(隐含 /F)
/F:修复磁盘上的错误
现在我的驱动器上有一个标记为坏的集群。我需要取消将该集群标记为坏的。
注意:chkdsk可以选择重新评估集群并将其返回以使用:
/B:仅 NTFS:重新评估卷上的坏簇(暗示 /R)
不幸的是,该选项只会在集群不再坏时取消标记集群。无论如何,我都需要取消标记集群。
如何取消将 NTFS 群集标记为坏的?
我和其他数百人为什么要问这个问题并不重要。但问题是我的驱动器上有一个坏扇区。是时候用新的驱动器更换驱动器了。这样做的方法是使用 Windows 软件镜像将 SSD镜像到另一个 SSD 。
不幸的是,Windows NTFS 镜像中的一个已知错误阻止了镜像完成,如KB325615 中所述:
如果磁盘包含坏块,则无法创建软件镜像
DMIO运行下面文件系统,如果在从源磁盘上的扇区读出或试图将数据写入到目标磁盘发现I / O错误,它中止镜像操作。
显而易见的解决方法是缩小操作系统卷,以便坏扇区超过卷的末尾。在 Windows 7 中,当您尝试缩小卷时,它会自动将文件移开。

这是一件好事。在过去,如果您想缩小卷,您必须使用碎片整理工具将所有文件推向驱动器的前端;最后留下松弛空间。
不幸的是,现在有一个不可移动的文件:$BadClus. Shrink defrag操作在事件日志中记录了不可移动的文件:
在卷 OS (C:) 上启动了卷收缩分析。此事件日志条目详细说明了有关可能限制最大可回收字节数的最后一个不可移动文件的信息。
诊断详情:
- 最后一个不可移动的文件似乎是:\$BadClus:$Bad:$DATA
- 文件的最后一个簇是:0xdc1ded
- 收缩潜在目标(LCN 地址):0xa91bd9
- NTFS 文件标志为:-S--D
- 收缩阶段:<分析> …
我尝试重新分配坏扇区。阅读此问题后,我的理解是,硬盘会尝试自动重新分配。为了触发该过程,我尝试使用 dd 写入扇区,但根本没有任何改变。
$ smartctl -a /dev/sda
...
5 Reallocated_Sector_Ct ... 0
197 Current_Pending_Sector ... 1
...
Run Code Online (Sandbox Code Playgroud)
坏道为:215040
$ dd if=/dev/sda of=/dev/null bs=512 count=1 skip=215040
io-error on reading
Run Code Online (Sandbox Code Playgroud)
为什么写入时扇区未分配?
$ dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=215040
io-error on writing
Run Code Online (Sandbox Code Playgroud)
我怎样才能使扇区被重写?