有没有办法以编程方式控制Linux上的硬盘活动指示灯?

时间:2010-10-25 10:36:06

标签: linux hard-drive

就像主要问题一样,有没有办法做到这一点? (除了引入高io负载之外)也许内核中有一些设施可以控制它?

我正在寻找一个小脚本来识别我的软件raid阵列中的故障驱动器。 (以某种重复模式闪烁活动灯等)

我在这里阅读了所有好主意:https://serverfault.com/questions/64239/physically-identify-the-failed-hard-drive遗憾的是我没有标记任何驱动器,而且它们都夹在一起,所以查看序列号已经出来了。

2 个答案:

答案 0 :(得分:3)

活动指示灯通常硬连线到主板的磁盘控制器。没有用于直接控制它们的操作系统。

但是,如果你知道哪个驱动器在软件中存在问题,并且没有安装(只是为了安全),你可能会dd或者从它(我希望不是整个驱动器都不好?眨眼灯。例如:

#!/bin/bash

badDrive=$1
while true ; do
    dd -if "$badDrive" -of "/dev/null" -bs 512 -count 204800 conv=noerror >/dev/null 2>&1
    sleep 2
done

这将从驱动器读取100MiB忽略读取错误,睡眠两秒钟,然后再次执行。传递硬盘设备路径,如/dev/sda

但是,在插入新驱动器之前,您需要找到一种方法来终止脚本。否则你的表现会非常差,可能会引起其他问题。

答案 1 :(得分:1)

你可以在你的程序中调用他的

baddrive(Checkdrivestatus)

并将其限制为10个周期。

这样你可以运行flashbaddrive,它反过来会checkdrivestatus并将它传递给baddrive以闪存故障驱动器10秒左右并切断。

我想你必须看一下mdadm来看看界面是什么样的,但它可以从命令行中做到这一点。

在硬盘盒上,它们通常会从sata / scsi / ide接口运行,或者从控制器卡上的插头上运行。

你知道光源来自哪里吗?您可以搜索模型信息,直接查询和查询有问题的磁盘。如果驱动器经常发生故障,您仍然可以将其从电路板上拉下来。

另一个策略是顺序访问磁盘/ dev / sda,sdb,sdc,sde,sdf等... 你可以看到光线是否粘住,或者它是否不亮。 根据控制器设置如何访问它,一个完全无法驱动可能会杀死光线。