linux扫描硬盘故障命令【测试成功】

艺帆风顺 发布于 2025-04-03 22 次阅读


1、badblocks命令

检查硬盘是否产生坏道并输出

badblocks -s -v -o /root/badblocks.log /dev/sda

    # badblocks -s -v -o /root/badblocks.log /dev/sda //公司操作
    -s Show the progress of the scan by writing out rough percentage completion of the current badblocks pass over the disk. Note that badblocks may do multiple test passes over the disk, in particular if the -p or -w option is requested by the user.
    -v Verbose mode.
    -o output_fileWrite the list of bad blocks to the specified file. Without this option, badblocks displays the list on its standard output. The format of this file is suitable for use by the -l option in e2fsck(8) or mke2fs(8).

    通过命令扫描硬盘。

      # badblocks -s -v /dev/sdnx
      其中n表示硬盘设备名,x表示硬盘对应的分区号。例如需要检查“/dev/sda2”,执行命令如下:
      # badblocks -s -v /dev/sda2
      Checking blocks 0 to 30681000
      Checking for bad blocks (read-only test): 306809600674112/ 306810000000
      30680964
      30680965
      30680966
      30680967
      30680968
      30680969
      30680970
      30680971
      30680972
      30680973
      ...
      done
      Pass completed, 37 bad blocks found.其中,“37 bad blocks found”表示硬盘存在37个坏块。

      2、使用smartctl查dell服务器坏道实录

      安装

        #yum -y install smartmontools或者#apt install -y smartmontools

        检查硬盘健康状态

          # smartctl -H /dev/sda5smartctl 6.0 2012-10-10 r3643 [x86_64-linux-2.6.32-220.el6.x86_64] (local build)
          Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org
          === START OF READ SMART DATA SECTION ===
          SMART overall-health self-assessment test result: PASSED

          参数-H就是指定显示目标硬盘的健康状态

          请注意result后边的结果:PASSED,这表示硬盘健康状态良好,如果这里显示Failure,那么最好立刻给服务器更换硬盘。

            # smartctl -A /dev/hdb
            -a 显示设备所有的SMART信息。
            -l error 列出硬盘错误日志。如果显示没有错误最好,如果显示了大量的错误信息,那就该着手准备替换硬盘了。
            -l selftest 列出自行测试结果


            健康查询 :

            DELL SAS 机械盘 :

              #smartctl -H -d megaraid,1 /dev/sdasmartctl 6.0 2012-10-10 r3643 [x86_64-linux-2.6.18-274.el5] (local build)
              Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org
              SMART Health Status: OK

              DELL SATA SSD硬盘 :

                /opt/smartmontools-6.0/sbin/smartctl -H -d sat+megaraid,2 /dev/sdb
                smartctl 6.0 2012-10-10 r3643 [x86_64-linux-2.6.18-274.el5] (local build)
                Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org

                Linux通过命令查询服务器型号、主板、CPU、内存及硬盘信息
                https://blog.51cto.com/george021/1913485

                3、使用edac工具来检测服务器内存故障.【转】

                安装 edac-utils 工具

                  #yum install -y libsysfs edac-utils# apt install -y edac-utils

                  执行检测命令,可查看纠错提示如下

                    #edac-util -vmc0: csrow0: CPU_SrcID#0_Ha#0_Chan#0_DIMM#0: A1mc0: csrow0: CPU_SrcID#0_Ha#0_Chan#1_DIMM#0: A2mc0: csrow0: CPU_SrcID#0_Ha#0_Chan#2_DIMM#0: A3mc0: csrow0: CPU_SrcID#0_Ha#0_Chan#3_DIMM#0: A4mc0: csrow1: CPU_SrcID#0_Ha#0_Chan#0_DIMM#1: A5mc0: csrow1: CPU_SrcID#0_Ha#0_Chan#1_DIMM#1: A6mc0: csrow1: CPU_SrcID#0_Ha#0_Chan#2_DIMM#1: A7mc0: csrow1: CPU_SrcID#0_Ha#0_Chan#3_DIMM#1: A8mc0: csrow2: CPU_SrcID#0_Ha#0_Chan#0_DIMM#2: A9mc0: csrow2: CPU_SrcID#0_Ha#0_Chan#1_DIMM#2: A10mc0: csrow2: CPU_SrcID#0_Ha#0_Chan#2_DIMM#2: A11mc0: csrow2: CPU_SrcID#0_Ha#0_Chan#3_DIMM#2: A12
                    mc1: csrow0: CPU_SrcID#1_Ha#0_Chan#0_DIMM#0: B1mc1: csrow0: CPU_SrcID#1_Ha#0_Chan#1_DIMM#0: B2


                    DIMM#0 标示内存槽0,Corrected Errors 代表已经纠错的次数,根据前面列出的CPU通
                    道和内存槽对应关系即可给edac-utils 返回的信息进行编号。
                    即可得出 A1槽 6312 次纠错,B1槽 6459次纠错,B3槽 535次纠错. 3条内存出现潜在故障,接下来联系供应商进行更换即可。

                    12条内存的对应关系

                      mc0: csrow0: CPU#0Channel#0_DIMM#0: A1mc0: csrow0: CPU#0Channel#1_DIMM#0: A2mc0: csrow0: CPU#0Channel#2_DIMM#0: A3mc0: csrow1: CPU#0Channel#0_DIMM#1: A4mc0: csrow1: CPU#0Channel#1_DIMM#1: A5mc0: csrow1: CPU#0Channel#2_DIMM#1: A6
                      mc1: csrow0: CPU#1Channel#0_DIMM#0: B1mc1: csrow0: CPU#1Channel#1_DIMM#0: B2mc1: csrow0: CPU#1Channel#2_DIMM#0: B3mc1: csrow1: CPU#1Channel#0_DIMM#1: B4mc1: csrow1: CPU#1Channel#1_DIMM#1: B5mc1: csrow1: CPU#1Channel#2_DIMM#1: B6

                      https://www.cnblogs.com/sky-heaven/p/13528181.html

                      4、dmidecode 命令

                      dmidecode命令 可以让你在Linux系统下获取有关硬件方面的信息。dmidecode的作用是将DMI数据库中的信息解码,以可读的文本方式显示。由于DMI信息可以人为修改,因此里面的信息不一定是系统准确的信息。dmidecode遵循SMBIOS/DMI标准,其输出的信息包括BIOS、系统、主板、处理器、内存、缓存等等。

                      8个内存条插槽,有一个A1位置的内存条

                      重新插拔内存条,之后使用free命令查看,内存大小是否和dmidecode查看的内存条个数、大小对应

                        #dmidecode -t memory
                        #free -m64G

                        注意 :第一部分输出是概要信息,主要说板支持的最大内存是128GB,共有8个内存插槽。

                        接下了就是两个插槽的信息,由于我只插了一条8G的条,所以第二个的信息是空的

                        查看服务器型号:dmidecode | grep ‘Product Name’
                        查看主板的序列号:dmidecode |grep ‘Serial Number’
                        查看系统序列号:dmidecode -s system-serial-number
                        查看内存信息:dmidecode -t memory
                        查看OEM信息:dmidecode -t 11

                        #dmidecode | grep -A16 "System Information$"


                        查看服务器bios信息

                        # dmidecode -t bios

                        查看服务器内存信息
                        1,查看服务器型号、序列号:

                        dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product|Serial" 

                        2.Linux 查看内存的插槽数,已经使用多少插槽.每条内存多大

                        dmidecode|grep -A5 "Memory Device"|grep Size|grep -v Range

                        3.Linux 查看内存的频率

                        dmidecode|grep -A16 "Memory Device"|grep ‘Speed‘

                        常见硬件报错

                        戴尔服务器,亮黄灯,硬件故障

                        接上显示器,显示内存故障

                        解决办法 :
                        用橡皮把内存金手指擦了檫,插上去现在都可以识别了。

                          #dmidecode -t memory #确定插槽个数,以及内存条单个大小
                          #free -m #查看总内存大小


                          测试各硬盘读取速度判断硬盘故障

                          在服务bai端命令窗口中执行如下命令
                            hdparm -t /dev/hda (IDE硬盘)
                            hdparm -t /dev/sda (SATA、SCSI、硬RAID卡阵列)
                            hdparm -t /dev/md0 (软RAID设备)

                          参  数:

                          -a 设定读取文件时,预先存入块区的分区数,若不加上选项,则显示目前的设定。
                            -A 启动或关闭读取文件时的快取功能。
                            -c 设定IDE32位I/O模式。
                            -C 检测IDE硬盘的电源管理模式。
                            -d 设定磁盘的DMA模式。
                            -f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
                            -g 显示硬盘的磁轨,磁头,磁区等参数。
                            -h 显示帮助。
                            -i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
                            -I 直接读取硬盘所提供的硬件规格信息。
                            -k 重设硬盘时,保留-dmu参数的设定。
                            -K 重设硬盘时,保留-APSWXZ参数的设定。
                            -m 设定硬盘多重分区存取的分区数。
                            -n 忽略硬盘写入时所发生的错误。
                            -p 设定硬盘的PIO模式。
                            -P 设定硬盘内部快取的分区数。
                            -q 在执行后续的参数时,不在屏幕上显示任何信息。
                            -r 设定硬盘的读写模式。
                            -S 设定硬盘进入省电模式前的等待时间。
                            -t 评估硬盘的读取效率。
                            -T 平谷硬盘快取的读取效率。
                            -u 在硬盘存取时,允许其他中断要求同时执行。
                            -v 显示硬盘的相关设定。
                            -W 设定硬盘的写入快取。
                            -X 设定硬盘的传输模式。
                            -y 使IDE硬盘进入省电模式。
                            -Y 使IDE硬盘进入睡眠模式。
                            -Z 关闭某些Seagate硬盘的自动省电功能。

                          6、服务器硬件查询

                          Linux查看显卡信息:

                          lspci | grep -i vga 

                          安装nvidia-smi驱动命令
                          第一步:卸载原驱动

                          $sudo apt-get remove nvidia-*
                          $sudo apt-get autoremove

                          第二步:输入CTRL+ALT+F1进入文本模式

                          第三步:临时关闭显示服务

                          $sudo service lightdm stop

                          第四步:重新安装Nvidia驱动

                          #sudo apt-get install build-essential

                          #sudo add-apt-repository ppa:graphics-drivers/ppa

                          sudo apt-get update

                          sudo apt-get install nvidia-390 mesa-common-dev freeglut3-dev (本文是安装390)

                          随后输入:nvidia-smi

                          #nvidia-setting

                          输出,则完成。

                          参考链接 :

                          https://www.cnblogs.com/pprp/p/9430836.html

                          ubuntu安装cuda驱动实现nvidia-smi命令 :https://blog.csdn.net/weixin_42652125/article/details/81178943

                          https://zhidao.baidu.com/question/1894060807321999700.html

                          使用edac工具来检测服务器内存故障.【转】 : https://www.cnblogs.com/sky-heaven/p/13528181.html

                          https://blog.csdn.net/weixin_34363171/article/details/85589036?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control

                          https://blog.csdn.net/henweimei/article/details/54913776?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.control

                          https://blog.csdn.net/kjh2007abc/article/details/85000918?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.control

                            版权声明:本文内容来自CSDN:寰宇001,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。原文链接:https://blog.csdn.net/qq_40907977/article/details/112920161如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。