侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux hdparm命令用法详解:如何设置和查看硬盘驱动器的参数和性能(附实例教程和注意事项)

hdparm是一个用于设置和查看ATA硬盘驱动器硬件参数和测试性能的Linux命令行程序。它可以设置驱动器缓存、睡眠模式、电源管理、声学管理和DMA设置等参数。GParted和Parted Magic都包含了hdparm。

Linux hdparm命令介绍

hdparm是一个英文单词的缩写,它的全称是hard disk parameter,意思是硬盘参数。hdparm命令可以检测、显示和设置IDE或SCSI硬盘的参数,例如读取速度、电源管理、声音控制等。hdparm命令还可以用来测试硬盘的性能,例如读取速度、缓存速度和CPU占用率等。hdparm命令是一个非常强大的工具,但也有一定的风险,如果使用不当,可能会损坏硬盘或丢失数据,所以在使用之前,必须仔细阅读hdparm的手册页,并且备份重要的数据。

Linux hdparm命令适用的Linux版本

hdparm命令适用于大多数的Linux发行版,但是不同的发行版可能会有不同的安装方式和依赖包。一般来说,hdparm命令是作为一个独立的软件包提供的,可以通过包管理器来安装。例如,在基于Debian的发行版中,可以使用如下命令来安装hdparm:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install hdparm

在基于Red Hat的发行版中,可以使用如下命令来安装hdparm:

[linux@bashcommandnotfound.cn ~]$ sudo yum install hdparm

在基于Arch的发行版中,可以使用如下命令来安装hdparm:

[linux@bashcommandnotfound.cn ~]$ sudo pacman -S hdparm

在基于Gentoo的发行版中,可以使用如下命令来安装hdparm:

[linux@bashcommandnotfound.cn ~]$ sudo emerge hdparm

在基于SUSE的发行版中,可以使用如下命令来安装hdparm:

[linux@bashcommandnotfound.cn ~]$ sudo zypper install hdparm

Linux hdparm命令的基本语法

hdparm命令的基本语法格式如下:

hdparm [选项] [设备]

其中,选项是用来指定hdparm命令的功能和参数的,设备是要操作的硬盘驱动器的名称,通常是/dev/sdX或/dev/hdX的形式,其中X是一个字母,表示驱动器的编号。例如,/dev/sda表示第一个SATA或SCSI硬盘,/dev/hda表示第一个IDE硬盘。如果没有指定任何选项,hdparm命令默认会显示设备的一些基本信息,例如型号、序列号、大小、缓存等。

Linux hdparm命令的常用选项说明

hdparm命令有很多选项,可以用来设置和查看硬盘驱动器的各种参数和功能。这里只介绍一些最常用的选项,完整的选项列表可以参考hdparm的手册页³。以下是一些常用选项的说明:

选项说明
-a获取或设置文件系统的预读缓冲区大小,这是一种提高连续读取大文件性能的机制。用法:-a0表示关闭预读,-a1表示开启预读,-a<数字>表示设置预读缓冲区的扇区数。
-A获取或设置硬盘驱动器的读取预测功能,这是一种提高随机读取性能的机制。用法:-A0表示关闭读取预测,-A1表示开启读取预测。
-b获取或设置总线状态,这是一种控制硬盘驱动器与主板接口的电气信号的方式。用法:-b0表示关闭总线,-b1表示开启总线,-b2表示三态总线。
-B获取或设置高级电源管理(APM)功能,这是一种控制硬盘驱动器的功耗和性能的方式。用法:-B<数字>表示设置APM的级别,数字越小表示节能越多,性能越低,数字越大表示节能越少,性能越高,-B255表示关闭APM。
-c获取或设置IDE 32位I/O支持,这是一种提高硬盘驱动器与主板接口的数据传输速度的方式。用法:-c0表示关闭32位I/O支持,-c1表示开启32位数据传输,-c3表示开启32位数据传输并使用特殊的同步序列。
-C检查硬盘驱动器的当前电源模式状态,这是一种查看硬盘驱动器是否处于正常工作、待机或睡眠状态的方式。用法:-C
-d获取或设置DMA功能,这是一种提高硬盘驱动器与主板接口的数据传输速度并减少CPU占用率的方式。用法:-d0表示关闭DMA,-d1表示开启DMA,-dX表示设置DMA的模式,其中X是一个数字,表示DMA的类型和速度。
-D获取或设置硬盘驱动器的缺陷管理功能,这是一种让硬盘驱动器自动检测和修复坏道的方式。用法:-D0表示关闭缺陷管理,-D1表示开启缺陷管理。
-E设置CD/DVD驱动器的速度,这是一种控制光盘的旋转速度和噪音的方式。用法:-E<数字>表示设置CD/DVD驱动器的速度,数字一般是2或4的倍数,表示倍速。
-f同步和清空硬盘驱动器的缓存,这是一种保证数据完整性和安全性的方式。用法:-f
-g显示硬盘驱动器的几何信息,这是一种查看硬盘驱动器的大小、扇区数和偏移量的方式。用法:-g
-h显示帮助信息,这是一种查看hdparm命令的用法和选项的方式。用法:-h
-i显示硬盘驱动器的识别信息,这是一种查看硬盘驱动器的型号、序列号、固件版本等信息的方式。用法:-i
-I直接从硬盘驱动器获取识别信息,这是一种查看硬盘驱动器的更多特性和参数的方式。用法:-I
-k获取或设置硬盘驱动器的保持设置功能,这是一种让硬盘驱动器在重置后不丢失设置的方式。用法:-k0表示关闭保持设置,-k1表示开启保持设置。
-m获取或设置硬盘驱动器的多扇区传输功能,这是一种提高硬盘驱动器与主板接口的数据传输速度的方式。用法:-m<数字>表示设置每次传输的扇区数,数字一般是2的幂,最大为16。
-n获取或设置硬盘驱动器的忽略写入错误功能,这是一种让硬盘驱动器在遇到写入错误时不停止工作的方式。用法:-n0表示关闭忽略写入错误,-n1表示开启忽略写入错误。
-N获取或设置硬盘驱动器的最大可寻址扇区数,这是一种控制硬盘驱动器的容量的方式。用法:-N<数字>表示设置最大可寻址扇区数,数字必须小于或等于硬盘驱动器的物理扇区数。
-p获取或设置硬盘驱动器的PIO模式,这是一种控制硬盘驱动器与主板接口的数据传输速度的方式。用法:-p<数字>表示设置PIO的模式,数字一般是0到5,表示PIO的类型和速度。
-q安静模式,这是一种让hdparm命令不输出任何信息的方式。用法:-q
-r获取或设置硬盘驱动器的只读模式,这是一种保护硬盘驱动器不被写入的方式。用法:-r0表示关闭只读模式,-r1表示开启只读模式。
-S获取或设置硬盘驱动器的待机超时时间,这是一种控制硬盘驱动器在多长时间不活动后进入待机状态的方式。用法:-S<数字>表示设置待机超时时间,数字一般是0到255,表示不同的时间单位和范围。
-t测试硬盘驱动器的读取速度,这是一种评估硬盘驱动器的性能的方式。用法:-t
-T测试硬盘驱动器的缓存读取速度,这是一种评估硬盘驱动器的缓存性能的方式。用法:-T
-u获取或设置硬盘驱动器的卸载模式,这是一种控制硬盘驱动器在断电或重置后是否卸载磁头的方式。用法:-u0表示关闭卸载模式,-u1表示开启卸载模式。
-v显示硬盘驱动器的一些基本信息,这是一种查看硬盘驱动器的型号、序列号、大小、缓存等信息的方式。用法:-v
-w重置硬盘驱动器的写入缓存功能,这是一种清空硬盘驱动器的写入缓存的方式。用法:-w
-W获取或设置硬盘驱动器的写入缓存功能,这是一种提高硬盘驱动器的写入性能的方式。用法:-W0表示关闭写入缓存,-W1表示开启写入缓存。
-y立即让硬盘驱动器进入待机状态,这是一种节省硬盘驱动器的功耗和延长硬盘驱动器的寿命的方式。用法:-y
-Y立即让硬盘驱动器进入睡眠状态,这是一种最大程度地节省硬盘驱动器的功耗和延长硬盘驱动器的寿命的方式。用法:-Y
-Z禁用硬盘驱动器的自动待机功能,这是一种让硬盘驱动器不受待机超时时间的影响的方式。用法:-Z

Linux hdparm命令的实例

以下是一些使用hdparm命令的实例:

  • 显示/dev/sda硬盘驱动器的一些基本信息:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -v /dev/sda

/dev/sda:
 multcount     = 16 (on)
 IO_support    =  1 (32-bit)
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 121601/255/63, sectors = 1953525168, start = 0
  • 显示/dev/sda硬盘驱动器的识别信息:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -i /dev/sda

/dev/sda:

 Model=ST1000DM003-1SB102, FwRev=CC43, SerialNo=Z9A6L7JL
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1953525168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
 AdvancedPM=yes: unknown setting WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 * signifies the current active mode
  • 测试/dev/sda硬盘驱动器的读取速度和缓存读取速度:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   13180 MB in  2.00 seconds = 6595.53 MB/sec
 Timing buffered disk reads: 412 MB in  3.00 seconds = 137.17 MB/sec
  • 设置/dev/sda硬盘驱动器的DMA模式为udma5:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -d1 -X69 /dev/sda

/dev/sda:
 setting using_dma to 1 (on)
 setting xfermode to 69 (UltraDMA mode5)
 using_dma    =  1 (on)
  • 设置/dev/sda硬盘驱动器的电源管理级别为128:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -B128 /dev/sda

/dev/sda:
 setting Advanced Power Management level to 0x80 (128)
 APM_level    = 128
  • 设置/dev/sda硬盘驱动器的声学管理级别为128:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -M128 /dev/sda

/dev/sda:
 setting acoustic management to 128
 acoustic      = 128 (128=quiet ... 254=fast)
  • 设置/dev/sda硬盘驱动器的预读缓冲区大小为64扇区:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -a64 /dev/sda

/dev/sda:
 setting fs readahead to 64
 readahead     = 64 (on)
  • 设置/dev/sda硬盘驱动器的待机超时时间为5分钟:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -S60 /dev/sda

/dev/sda:
 setting standby to 60 (5 minutes)
  • 立即让/dev/sda硬盘驱动器进入待机状态:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -y /dev/sda

/dev/sda:
 issuing standby command
  • 立即让/dev/sda硬盘驱动器进入睡眠状态:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -Y /dev/sda

/dev/sda:
 issuing sleep command
  • 禁用/dev/sda硬盘驱动器的自动待机功能:
[linux@bashcommandnotfound.cn ~]$ sudo hdparm -Z /dev/sda

/dev/sda:
 disabling Seagate auto powersaving mode

Linux hdparm命令的注意事项

使用hdparm命令时,需要注意以下几点:

  • hdparm命令需要root权限或sudo权限才能执行,否则会提示权限不足。
  • hdparm命令有一定的风险,如果使用不当,可能会损坏硬盘或丢失数据,所以在使用之前,必须仔细阅读hdparm的手册页,并且备份重要的数据。
  • hdparm命令不适用于所有的硬盘驱动器,有些硬盘驱动器可能不支持某些选项或参数,或者有不同的行为,所以在使用之前,必须检查硬盘驱动器的识别信息和特性,以确定是否可以使用hdparm命令。
  • hdparm命令的设置可能会在重启后失效,所以如果想要永久保存设置,需要在系统启动时执行hdparm命令,或者将hdparm命令写入系统的配置文件中,例如/etc/hdparm.conf。
  • 如果在执行hdparm命令时,出现bash: hdparm: command not found的错误,表示hdparm命令没有安装,需要根据不同的Linux发行版,使用不同的包管理器来安装hdparm命令,具体的安装方法可以参考上面的Linux hdparm命令适用的Linux版本一节。
0

评论区