重新分配坏扇区 [Linux]

tes*_*sto 7 hard-drive bad-sectors

我尝试重新分配坏扇区。阅读此问题后,我的理解是,硬盘会尝试自动重新分配。为了触发该过程,我尝试使用 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)

我怎样才能使扇区被重写?

Del*_*tik 8

尝试使用hdparm以下方法进行低级写入:

sudo hdparm --yes-i-know-what-i-am-doing --write-sector 215040 /dev/sda
Run Code Online (Sandbox Code Playgroud)

...215040您要覆盖(并可能重新映射)的扇区号在哪里,是/dev/sda您要写入的设备。

hdparm手册页

--write-sector

将零写入指定的扇区号。非常危险。扇区号必须在此标志后给出 (base10)。hdparm 将向指定扇区发出低级写入(完全绕过通常的块层读/写机制)。这可用于强制驱动器修复坏扇区(媒体错误)。

  • @doev:您似乎拥有与我熟悉的不同版本的 `dd`。我以前从未见过`dd` 输出“`io-error on writing`”,并且该字符串没有出现在[GNU coreutils](http://www.gnu.org/software/coreutils/ coreutils.html) 源代码。 (2认同)