前言

某块硬盘出现故障了,以/dev/sdal为例。虽然在操作系统里面可以看到/dev/sdal是无法读取故障了, 但去了机房现场,发现硬盘的指示灯没有变成红色,并且服务器上面插着数十块硬盘。 那么如何找到/dev/sdal对应的哪块硬盘呢?

步骤1:查看设备编号

/dev/sda、/dev/sdb、/dev/sdc等等,属于操作系统层面识别的硬盘盘符或者设备符号。
还有一种硬件识别的设备编号/dev/sgxx,例如/dev/sg01、/dev/sg02等等。所以要找到/dev/sdal对应的硬件设备编号是什么?

使用lsscsi命令查看硬盘/dev/sdal对应的硬件设备编号是/dev/sg35,其属于插板槽/dev/sg41的。
插板槽/dev/sg41上面有/dev/sg29~sg40合计12块硬盘,/dev/sg35属于第7块盘,即/dev/sdal属于第7块盘。

[root@localhost ~]# lsscsi -g

[root@localhost ~]# lsscsi -g
[0:0:0:0] disk ATA INTEL SSDSC2KB48 0110 - /dev/sg2
[0:0:1:0] disk ATA INTEL SSDSC2KB48 0110 - /dev/sg3
[0:0:2:0] disk ATA HGST HUS726T6TAL W41G /dev/sdb /dev/sg4
[0:0:3:0] disk ATA HGST HUS726T6TAL W41G /dev/sdc /dev/sg5
[0:0:4:0] disk ATA HGST HUS726T6TAL W41G /dev/sdd /dev/sg6
[0:0:5:0] disk ATA HGST HUS726T6TAL W41G /dev/sde /dev/sg7
[0:0:6:0] disk ATA HGST HUS726T6TAL W41G /dev/sdf /dev/sg8
[0:0:7:0] disk ATA HGST HUS726T6TAL W41G /dev/sdg /dev/sg9
[0:0:8:0] disk ATA HGST HUS726T6TAL W41G /dev/sdh /dev/sg10
[0:0:9:0] disk ATA HGST HUS726T6TAL W41G /dev/sdi /dev/sg11
[0:0:10:0] disk ATA HGST HUS726T6TAL W41G /dev/sdj /dev/sg12
[0:0:11:0] disk ATA HGST HUS726T6TAL W41G /dev/sdk /dev/sg13
[0:0:12:0] disk ATA HGST HUS726T6TAL W41G /dev/sdl /dev/sg14
[0:0:13:0] disk ATA HGST HUS726T6TAL W41G /dev/sdm /dev/sg15
[0:0:14:0] disk ATA HGST HUS726T6TAL W41G /dev/sdn /dev/sg16
[0:0:15:0] disk ATA HGST HUS726T6TAL W41G /dev/sdo /dev/sg17
[0:0:16:0] disk ATA HGST HUS726T6TAL W41G /dev/sdp /dev/sg18
[0:0:17:0] disk ATA HGST HUS726T6TAL W41G /dev/sdq /dev/sg19
[0:0:18:0] disk ATA HGST HUS726T6TAL W41G /dev/sdr /dev/sg20
[0:0:19:0] disk ATA HGST HUS726T6TAL W41G /dev/sds /dev/sg21
[0:0:20:0] disk ATA HGST HUS726T6TAL W41G /dev/sdt /dev/sg22
[0:0:21:0] disk ATA HGST HUS726T6TAL W41G /dev/sdu /dev/sg23
[0:0:22:0] disk ATA HGST HUS726T6TAL W41G /dev/sdv /dev/sg24
[0:0:23:0] disk ATA HGST HUS726T6TAL W41G /dev/sdw /dev/sg25
[0:0:24:0] disk ATA HGST HUS726T6TAL W41G /dev/sdx /dev/sg26
[0:0:25:0] disk ATA HGST HUS726T6TAL W41G /dev/sdy /dev/sg27
[0:0:26:0] enclosu SUGON 380-41910-3000 1205 - /dev/sg28
[0:1:0:0] disk LSI Logical Volume 3000 /dev/sda /dev/sg1
[15:0:0:0] cd/dvd AMI Virtual CDROM0 1.00 /dev/sr0 /dev/sg0
[16:0:0:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdz /dev/sg29
[16:0:1:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdaa /dev/sg30
[16:0:2:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdab /dev/sg31
[16:0:3:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdac /dev/sg32
[16:0:4:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdad /dev/sg33
[16:0:5:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdae /dev/sg34
[16:0:7:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdag /dev/sg36
[16:0:8:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdah /dev/sg37
[16:0:9:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdai /dev/sg38
[16:0:10:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdaj /dev/sg39
[16:0:11:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdak /dev/sg40
[16:0:12:0] enclosu SUGON 380-41910-3001 1205 - /dev/sg41
[16:0:13:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdal /dev/sg35
[root@localhost ~]#

步骤2:使用 sg_ses 命令

查看二进制信息

首先安装sg_ses工具,网上有现成的yum或者apt安装方式,具体怎么安装这里就不讲了。

使用sg_ses命令查看插板槽/dev/sg41的二进制信息,此时需要注意是查看插板槽dev/sg41的二进制信息,不是查看/dev/sg35的二进制信息。

[root@localhost ~]# sg_ses -p 0x2  /dev/sg41  -r

得到如下结果:0~7这前8个字节是插板槽的状态,如下面蓝色所示。 后面每4个字节代表一块硬盘,其中第3个字节如果为“00”,则代表指示灯亮,如果为“02”,则代表指示灯灭。 /dev/sdal这个第7块盘,如下面红色所示。

[root@localhost ~]# sg_ses -p 0x2 /dev/sg41 -r
00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00
01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
11 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
01 00 00 00 01 00 00 00 00 00 00 00 01 00 04 bc
01 00 01 f0 01 00 00 b2 01 00 00 58 00 00 00 00
01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
01 00 53 00 01 00 39 00 01 00 34 00 01 00 37 00
01 00 33 00 00 00 00 00 01 02 4c 27 00 00 00 00
01 80 00 20
[root@localhost ~]#

修改二进制信息

把上面的二进制信息拷贝到服务器主机上面的文件,这个文件随便新建一个sesinfo都行。 然后修改二进制信息,如下面红色。
[root@localhost ~]# vi sesinfo
00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00
01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
08 00 02 00 01 00 00 00 01 00 00 00 01 00 00 00
01 00 00 00 01 00 00 00 00 00 00 00 01 00 04 bc
01 00 01 f0 01 00 00 b2 01 00 00 58 00 00 00 00
01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
01 00 53 00 01 00 39 00 01 00 34 00 01 00 37 00
01 00 33 00 00 00 00 00 01 02 4c 27 00 00 00 00
01 80 00 20
[root@localhost ~]#

控制槽位上的指示灯亮

第 1个字节 ”08” 表示这4 个字节是控制命令,第 3 个字节”00” 表示让 LED灯灭。

[root@localhost ~]# cat sesinfo | sg_ses -c -p 0x2 -d - /dev/sg41

ses控制硬盘指示灯亮灭相关推荐

  1. Unity3D实现指示灯亮灭效果

    这周有个需求是实现控制指示灯亮灭的效果.实现起来很简单,但是找到这个方法还费了点时间. 先看效果. 原理是利用了标准着色器中的自发光属性,通过开关自发光属性来控制灯的亮灭. 具体看步骤: 1.创建一个 ...

  2. TI CC2530组网演练(BasicRF——无线控制灯的亮灭)

    本文将从两个方面着手,一方面分析TI官网下载的CC2530 BasicRF源码中的无线发送,另一方面根据自己的板子来修改实现无线发送控制灯的亮灭. 一.CC2530 BasicRF Basic RF由 ...

  3. FPGA——输入原理图实现按键控制发光二极管的亮灭

    文章目录 前言 一.FPGA的设计流程 二.按键控制发光二极管的亮灭的过程 (一)创建工程 (二)绘制原理图 (三)编译 (四)分配引脚 (五)仿真与时序分析 (六)配置FPGA (七)下载结果 总结 ...

  4. 用51单片机中断控制LED灯亮灭

    用51单片机中断控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k3=P3^2;//位定义按键 void dela ...

  5. Android Studio设计APP实现与51单片机通过WIFI模块(ESP8266-01S)通讯控制LED灯亮灭的设计源码【详解】

    目录 一.前言 二.效果展示 1.APP界面展示 2.C51硬件展示 三.Android Studio APP源代码 1.AndroidManifest.xml 1.请求联网: 2.开放明文传输: 2 ...

  6. 采用STM32外部中断模式控制LED灯亮灭

    文章目录 实验工具 一.STMCube配置项目 1.配置引脚 2.配置EXIT 3.配置SYS 4.配置GPIO 5.创建代码 二.使用KEil配置代码 1.打开生成的项目,找到stm32f1xx_i ...

  7. stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭

    stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭 接触stm32已经有一年半的时间了,从最开始的stm32F103ZET ...

  8. STM32F072 Nucleo笔记2-利用STM32CuBeMX创建工程并用按键控制LED的亮灭

    STM32F072 Nucleo学习笔记2-利用STM32CuBeMX创建工程并用按键控制LED的亮灭 本文例子用到: 1.  STM32F072 Nucleo开发板 2.  STM32CubeMX软 ...

  9. 用51单片机实现按键控制LED灯亮灭

    用51单片机实现按键控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k1=P3^1;//位定义按键 void de ...

最新文章

  1. 慕课网之JavaScript-confirm
  2. ASP.NET 服务器控件授权
  3. mysql安装被打断_Mysql的安装/性能优化/安全加固
  4. hdu3729(二分图)
  5. Leetcode 刷题笔记(九) —— 解题方法:双指针
  6. MongoDB复制集同步慢问题分析
  7. PaddleOCR二次全流程——2.使用StyleText合成图片
  8. python处理页眉_python批量替换页眉页脚实例代码
  9. gtx660 linux驱动下载,佳能 GeForce GTX 660 驱动程序下载-更新佳能软件(显卡)
  10. Hadoop的学习笔记(Hive|pig|zookeeper|hbase)
  11. Kubernetes 为何称为 K8s?
  12. 微信、app、电脑更新缓存总结
  13. 基于UEBA的用户上网异常行为分析
  14. Windows Snapshot Grabber 2020中文版
  15. 基于GPU预计算的大气散射
  16. vue3中的watch和watchEffect
  17. LTE 随机接入 --(1)流程
  18. Qgis入门指南+各种可视化地图
  19. 异构系统中的UUV、异构系统模型统一化及单应矩阵在异构系统中的应用
  20. 尚硅谷的 ediary 笔记_外卖行业还能怎么演化?劳动力稀少的硅谷正在探索

热门文章

  1. filebrowser安装及外网访问
  2. 'gbk' codec can't decode byte ... 的解决办法
  3. 用python表示化学结构式
  4. 什么是服务器?如何租用服务器?
  5. 9.5、Libgdx加速度计
  6. 北师大 外国教育史-5(各国教育)
  7. Python基础入门教程(一)
  8. 淘宝npm镜像源换新地址
  9. Flink CDC 原理
  10. 电脑绘画软件哪个好用:试试Artweaver Plus吧,媲美sai绘画软件 | 最新版本的artweaver下载