我的磁盘有问题并运行了badblocks
.
所以现在当我运行时dumpe2fs
(也来自e2fsprogs):
sudo dumpe2fs -b /dev/sdc1
我得到一个坏的坏块列表,例如:
dumpe2fs 1.41.11 (14-Mar-2010)
192
1592
2416
3112
3552
...
但实际上,我意识到问题出在机架而不是磁盘上。我在 eSata 中使用机架时遇到了很多读取错误。现在我切换到USB,它没有那么快,但根本没有错误。
所以我的问题是:
如何重置存储在 inode #1(坏块 inode)中的坏块列表?(当然,没有重新格式化!......如果我没有解决方案,那是我会尝试的最后一件事)
因为显然块根本不是“坏”,它们只是因为机架有故障而被报告。
编辑:一旦磁盘连接到 USB,我尝试运行另一个坏块,但没有成功:之前发现的坏块仍然存在。我跑了:
sudo badblocks -i /tmp/emptyList -s /dev/sdc1
该文件/tmp/emptyList
为空,因此badblocks
提供了一个已知坏块的空列表。但显然,这不是坏块列表,而是坏块的附加列表,它将添加到 inode #1 中声明的现有列表中。
文档(man)对此不是很准确。
注意:这是一个有风险的操作,如果您没有完全掌握有什么风险,请不要这样做!
我已经做了:
这将清除文件系统上的 inode 编号 1(包含坏块列表的那个)。
然后你必须
e2fsck
再次运行来重置各种东西,你就完成了!