首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >badblocks实用程序一直报告“无效的最后一个块”。

badblocks实用程序一直报告“无效的最后一个块”。
EN

Unix & Linux用户
提问于 2014-10-15 18:19:06
回答 3查看 8.6K关注 0票数 1

我试图在带有单个分区的驱动器上运行badblocks。驱动器上包含一个FreeBSD文件系统。

我使用Linux实时USB驱动器启动。驱动器已卸载。fdisk -l的输出是:

代码语言:javascript
复制
   Device  Boot     Start          End    Id     System
/dev/sda1     *        63   976773167+    a5     FreeBSD

所以我跑了:

代码语言:javascript
复制
# badblocks -v /dev/sda1

上面写着:

代码语言:javascript
复制
badblocks: invalid last block - /dev/sda1

我找不到任何有用的信息。我在这里正确地使用了badblocks实用工具吗?或者这是否表明驱动器出了问题?

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2014-10-15 22:09:27

不,这并不意味着驱动器出了什么问题。您会得到此错误,因为badblocks接受/dev/sda1 1作为最后一个块参数,而不是接受它作为设备。

在我看来,你问题中的语法是正确的。尝试在设备之后指定最后一个块参数:

badblocks -v /dev/sda1 976773167

如果这样做不起作用,那么也尝试在其中添加第一个块:

badblocks -v /dev/sda1 976773167 63

为了向您保证这并不表示您的驱动器出了什么问题,下面是当我添加无效的最后一个块参数“nope”时的输出:

sudo -v /dev/sdb1 1 nope 坏块:无效的最后一个块- nope

下面是我上次使用坏块时bash历史上的一个例子(需要sudo访问我的系统上的这些驱动器):

sudo badblocks -v /dev/sdb1

输出:

检查块0到976751967的检查错误块(只读测试):

如果我用Ctrl+C取消了一段时间后的进程,输出是:

在区块7470720处中断

下面是恢复该过程的语法(请参阅man badblocks):

badblocks -v设备末块

“最后一个块”是在设备上读取的最后一个块,而“第一个块”是应该开始读取的地方。示例:

sudo badblocks -v /dev/sdb1 976751967 7470720

输出:

检查块7470720到976751967,检查坏块(只读测试):

票数 3
EN

Unix & Linux用户

发布于 2014-10-15 20:37:23

现在,在现代磁盘驱动器硬件上使用badblocks命令是不值得的。这是因为驱动器控制器板在内部识别坏块,并从最初分配的“备用”块替换为自动替换。如果您已经用完了这些备用块,并且出现了严重的块问题,我强烈建议您更换磁盘,因为硬件正在变坏。

如果您正在寻找驱动器的健康状况,大多数现代驱动器支持智能驱动器接口来报告磁盘运行状况。有许多实用程序处于这种状态,并提供了有关磁盘健康状况的信息。试试这个。

票数 1
EN

Unix & Linux用户

发布于 2023-03-05 10:19:23

您从网页中复制了命令。在-v中,用不同的破折号替换了破折号。(比普通的破折号稍长一点)键入命令或以某种方式修复它。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/162327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档