通常情况下可以使用fdisk、df等命令查看硬盘的分区情况以及当前已使用空间大小、剩余空间大小等信息。但是如果要查看硬盘的硬件信息如 硬盘型号、序列号、已运行时间等信息该用什么工具查看呢?
在Linux下可以使用hdparm工具查看硬盘的相关信息或对硬盘进行测速、优化、修改硬盘相关参数设定。我主要常用这个工具来测试硬盘速度。
hdparm(hard disk parameters)
功能说明:显示与设定硬盘的参数。该命令用来获取或设置SATA/IDE设备的参数。注意了,既可以获取也可以设置,所以使用这个命令的时候务必要小心。当然我们只是为了获取查看硬盘信息,故不会对硬盘及系统造成什么危害。通常会配合 -i 或 -I(大写的i) 选项来取得硬盘的硬件信息。用法如下:
2.常用指令
a.安全擦除hdparm --user-master u --security-set-pass PASSWORD /dev/sda 设置密码hdparm --user-master u --security-erase PASSWORD /dev/sda 安全擦除类似安全擦除:hdparm –yes-i-know-what-i-am-doing –sanitize-crypto-scramle /dev/sdxhdparm –yes-i-know-what-i-am-doing –sanitize-status /dev/sdxb.设置硬盘容量(硬盘必须直连服务器,通过raid卡无法执行此项指令)yum install sg3_utils.x86_64sg_readcap /dev/sdbhdparm -N VP --yes-i-know-what-i-am-doing /dev/sdb (VP: certain LBA blocks)c.解锁hdparm --user-master u --security-set-pass PASSWORD /dev/sdahdparm --user-master u --security-unlock PASSWORD /dev/sdahdparm --user-master u --security-disable PASSWORD /dev/sdad.升级固件版本hdparm --fwdownload /root/Desktop/xxx.bin --yes-i-know-what-i-am-doing --please-destroy-my-drive /dev/sdc————————————————hdparm -I /dev/sda
语法:hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A <0或1>][-c ][-d <0或1>][-k <0或1>][-K <0或1>][-m <分区数>][-n <0或1>][-p ][-P <分区数>][-r <0或1>][-S <时间>][-u <0或1>][-W <0或1>][-X <传输模式>][设备]
-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。-A<0或1> 启动或关闭读取文件时的快取功能。-c 设定IDE32位I/O模式。-C 检测IDE硬盘的电源管理模式。-d<0或1> 设定磁盘的DMA模式。-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。-g 显示硬盘的磁轨,磁头,磁区等参数。-h 显示帮助。-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。-I 直接读取硬盘所提供的硬件规格信息。-k<0或1> 重设硬盘时,保留-dmu参数的设定。-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。-m<磁区数> 设定硬盘多重分区存取的分区数。-n<0或1> 忽略硬盘写入时所发生的错误。-p 设定硬盘的PIO模式。-P<磁区数> 设定硬盘内部快取的分区数。-q 在执行后续的参数时,不在屏幕上显示任何信息。-r<0或1> 设定硬盘的读写模式。-S<时间> 设定硬盘进入省电模式前的等待时间。-t 评估硬盘的读取效率。-T 平谷硬盘快取的读取效率。-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。-v 显示硬盘的相关设定。-W<0或1> 设定硬盘的写入快取。-X<传输模式> 设定硬盘的传输模式。-y 使IDE硬盘进入省电模式。-Y 使IDE硬盘进入睡眠模式。-Z 关闭某些Seagate硬盘的自动省电功能。
hdparm常用参数使用举例:
1、显示硬盘的相关设置:[[email protected]oracle ~]# hdparm /dev/sda/dev/sda:IO_support = 0 (default 16-bit)readonly = 0 (off)readahead = 256 (on)geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]2、显示硬盘的柱面、磁头、扇区数:
[[email protected] ~]# hdparm -g /dev/sda/dev/sda:geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]3、测试硬盘的读取速度:
[[email protected] ~]# hdparm -t /dev/xvda
/dev/xvda:
Timing buffered disk reads: 422 MB in 3.01 seconds = 140.20 MB/sec[[email protected] ~]# hdparm -t /dev/xvda/dev/xvda:
Timing buffered disk reads: 408 MB in 3.01 seconds = 135.59 MB/sec[[email protected] ~]# hdparm -t /dev/xvda/dev/xvda:Timing buffered disk reads: 416 MB in 3.01 seconds = 138.24 MB/sec
[[email protected] ~]# hdparm -T /dev/xvda
/dev/xvda:
Timing cached reads: 11154 MB in 1.98 seconds = 5633.44 MB/sec[[email protected] ~]# hdparm -T /dev/xvda/dev/xvda:
Timing cached reads: 10064 MB in 1.98 seconds = 5077.92 MB/sec[[email protected] ~]# hdparm -T /dev/xvda/dev/xvda:Timing cached reads: 10600 MB in 1.98 seconds = 5351.73 MB/sec
6、查询并设置硬盘多重扇区存取的扇区数,以增进硬盘的存取效率:
[[email protected] ~]# hdparm -m /dev/sda[[email protected] ~]# hdparm -m 参数值为整数值如8 /dev/sda附:硬盘坏道修复方法
检查:smartctl -l selftest /dev/sda卸载:umount /dev/sda*修复:badblocks /dev/sda
smartctl 命令
smartctl命令默认在系统中不存在,需要安装smartmontools工具包之后才能使用。这个一个用于控制和监控支持smart技术的硬盘的命令。通常配合 -a 选项我们可以查看到比较详尽的硬盘信息(比如序列号、硬盘容量、已运行时间、硬盘健康状况等)。这个命令还是相当有用的。用法如下(得先 apt-get install smartmontools 以安装smartmontools工具包):
smartctl -a /dev/sda
好在Linux上很早就有了SMART支持了.如果把Linux装在VMware等虚拟机上,在系统启动时候可以看到有个服务启动报错:smartd 这个服务器就是smart的daemon进程(因为vmware虚拟机的硬盘不支持SMART,所以报错) 首先通过dmesg工具,确认一下硬盘的设备符号 hdb中的h代表IDE,如果显示为sdb,则代表SATA和SCSI最后一个字幕b代表Primary总线,第二块硬盘即Slave位置 -i 指定设备 -d 指定设备类型,例如:ata, scsi, marvell, sat, 3ware,N -a 或A 显示所有信息 -l 指定日志的类型,例如:TYPE: error, selftest, selective, directory,background, scttemp[sts,hist] -H 查看硬盘健康状态 -t short 后台检测硬盘,消耗时间短 -t long 后台检测硬盘,消耗时间长 -C -t short 前台检测硬盘,消耗时间短 -C -t long 前台检测硬盘,消耗时间长 -X 中断后台检测硬盘 -l selftest 显示硬盘检测日志 确认硬盘是否打开了SMART支持 smartctl -i /dev/hdb [ [email protected] ~]# smartctl -i /dev/sdb smartctl 5.39.1 2010-01-28 r3054 [i386-redhat-Linux-gnu] (local build) Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net Device: SEAGATE ST373453LC Version: 0006 Serial number: 3HW07M7K00007340AX57 Device type: disk Transport protocol: Parallel SCSI (SPI-4) Local Time is: Tue Nov 6 16:54:06 2012 CST Device supports SMART and is Enabled Temperature Warning Enabled 如果看到不支持这需要我们手动开启支持 [ [email protected] ~]# smartctl --smart=on --offlineauto=on --saveauto=on /dev/sdb //手动开启smart命令 smartctl 5.39.1 2010-01-28 r3054 [i386-redhat-Linux-gnu] (local build) Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net Informational Exceptions (SMART) enabled Temperature warning enabled [ [email protected] ~]# smartctl -H /dev/sdb //磁盘健康状况查看 smartctl 5.39.1 2010-01-28 r3054 [i386-redhat-Linux-gnu] (local build) Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net SMART Health Status: OK 注意后边的结果:这表示硬盘健康状态良好如果这里显示Failure,那么最好立刻给服务器更换硬盘SMART只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的通常,SMART报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间有的硬盘SMART报警后还继续跑了好几年,有的硬盘SMART报错后几天就坏了但是一旦出现报警,侥幸心里是万万不能的……
简单用法:1、smartctl -a <device> 检查该设备是否已经打开SMART技术。2、smartctl -s on <device> 如果没有打开SMART技术,使用该命令打开SMART技术。3、smartctl -t short <device> 后台检测硬盘,消耗时间短; smartctl -t long <device> 后台检测硬盘,消耗时间长; smartctl -C -t short <device> 前台检测硬盘,消耗时间短; smartctl -C -t long <device> 前台检测硬盘,消耗时间长。其实就是利用硬盘SMART的自检程序。4、smartctl -X <device> 中断后台检测硬盘。5、smartctl -l selftest <device> 显示硬盘检测日志。6、smartctl -l error <device> 显示硬盘错误汇总。
精彩评论