热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hdparm-获取/设置硬盘参数

总览hdparm[-a[扇区数]][-A[0|1]][-c[芯片组模式]][-C][-d[0|1]][-f][-g][-i][-k[0

总览

hdparm [ -a [扇区数] ] [ -A [0|1] ] [ -c [芯片组模式] ] [ -C ] [ -d [0|1] ] [ -f ] [ -g ] [ -i ] [ -k [0|1] ] [ -K [0|1] ] [ -L [0|1] ] [ -m [扇区数] ] [ -p [0|1|2|3|4|5] ] [ -P [扇区数] ] [ -q ] [ -r [0|1] ] [ -S [超时] ] [ -T ] [ -t ] [ -u [0|1] ] [ -v ] [ -W [0|1] ] [ -X [传输模式] ] [ -y ] [ -Y ] [ -Z ] [设备] ..

描述

hdparm 提供一个实现各种硬盘控制动作的命令行接口,它由内建 Linux IDE/ST-506设备驱动程序支持.要实现这种功能需要Linux 核心版本为1.2.13或更高.在早期的核心下有一些选项可能不能正常工作.另外,一些选项只是为包含了新的IDE设备驱动程序的核心所支持,像2.0.10版或者更高版本的核心.如果hdparm程序是在使用旧的核心文件(在目录usr/include/linux下)的机器上被编译的,这些选项将无法获得.

选项

当未给出标记时, -acdgkmnru 被作为假设值 (除非一个给定的设备是SCSI设备或某种老式 XT型MFM/RLL,在这种情况下 -gr-adgr 分别是默认值).

-a
为文件系统提前获得/设置扇区号,可以用来改善连续读取大文件时的系统性能,具体方式为提前读取额外的预期中正在运行的任务所需要的数据块.在当前核心版本(2.0.10版)中默认设置为8个扇区(4KB).对于大多数用途,这个值看起来不错,但在一个大多数文件访问行为是随机搜索的系统中,设置一个小一些的值可能效果会更好.当然,很多 IDE驱动器也有一个独立的内建的预读功能,这在很多情况下可以缓解对文件系统预读功能的需求.
-A
关闭/打开IDE驱动器预读功能(通常默认为打开).
-c
查询/打开(E)IDE 32-bit I/O 支持.一个数字的参数可以被用来打开/关闭32-bit I/O 支持.当前支持的值包括 0 关闭 32-bit I/O 支持, 1 打开 32-bit 数据传输, 和 3 以一个芯片组要求的特殊的 sync 流程打开 32-bit data 传输. 值 3 几乎对所有的32-bit IDE 芯片组起作用,但导致稍微多一些的系统开销. 注意,32-bit数据传输仅仅用于通过PCI或VLB总线与接口卡的连接; 所有的IDE驱动器通过排线从接口卡获得的连接仅为16-bit.
-C
检查当前IDE能耗模式状态, 结果将是下面几种之一 未知 (驱动器不支持此命令), 活动/闲置 (普通操作), 待机 (低能耗模式,驱动器待机), or 睡眠 (最低能耗模式, 驱动器被完全关闭). 选项 -S, -y, -Y, and -Z 用来操纵能耗模式.
-d
为驱动器关闭/打开 "using_dma" 标志. 此选项仅对一些支持 DMA并且对于IDE驱动程序来说是已知的驱动器-接口组合 (包括所有被支持的XT接口).特别的,Intel Triton 芯片组能和很多驱动器一起实现总线控制 DMA 操作.(根据实验).使用 -X34 选项与 -d1 选项组合确保驱动器自身是为多字DMA模式2设计的. 使用DMA不一定对吞吐量或系统性能有改进,但很多人信赖它.
-E
设置光盘驱动器速度.对于一般性操作这不是必须的,因为驱动器将自动地自行选择自己的速度.如果你想要使用它,就在选项后提供一个数字,通常是2或4.
-f
当设备退出时同步并刷新指针高速缓存.此操作也作为选项 -t-T 定时的一部分被执行
-g
显示驱动器物理位置(柱面,磁头,扇区),设备的大小(以扇区为单位), 以及相对于驱动器起始的设备偏移量(以扇区为单位).
-h
显示简要使用信息(帮助).
-i
显示引导驱动器时获得的识别信息,如果有的话. 这是一种现代IDE驱动器特性,可能不被较老式的设备支持. 返回的数据可能是或不是当前的,这取决于自系统引导后的行为. 然而,当前的复合模式的扇区计数始终被给出. 要获得更多的关于识别信息的详细阐释,请查阅 AT Attachment Interface for Disk Drives (ANSI ASC X3T9.2 working draft, revision 4a, April 19/93).
-I
直接从驱动器获取识别信息, 并以原始的,未经过修改和更正的形式显示. 否则便与选项 -i 相同.
-k
获得/设置驱动器 keep_settings_over_reset 标志. 当此标志被设置,驱动程序将在一个软性的重置后保护选项 -dmu (如同在出错恢复流程中完成的那样) 此标志默认值为关 , 以防止可能由与 -dmu 组合设置导致的驱动器重置循环. 选项 -k 应该仅在你确信用一组选定的设置进行正确的系统操作之后被设置. 实际中,校验驱动器能够读/些并且在此过程中没有出错记录(核心消息, 大多数系统上/var/adm/messages中),是测试一个配置(在用-k之前)必须的.
-K
设置驱动器的 keep_features_over_reset 标志. 此项设置使驱动器在软性重置后保留 -APSWXZ 标志的设置 (如同在出错恢复流程中完成的那样). 并非所有的驱动器都支持此项特性.
-L
设置驱动器的doorlock标志. 设置为 将锁住一些移动式硬驱动器(像 Syquest,ZIP,Jazz..)的门锁机构.设置为 一般Linux根据驱动器用法自动维护门锁机构.(当安装一个文件系统时锁住).但在系统关闭时,如果根分区在一个移动式磁盘上, 可能会有麻烦,因为在关闭后根分区仍在处在安装状态(只读). 所以,使用这个命令在根文件系统以只读的方式重新被安装 ,用户可以在关闭后从驱动器中移走磁盘.
-m
获得/设置驱动器多重扇区I/O的扇区数.设置为 0 关闭这项特性.多重扇区模式(aka IDE Block 模式),是大多数现代硬盘驱动器的一项特性,它允许每次I/O中断传输多个扇区, 而不是通常的一次中断一个.当这项特性被打开时,操作系统处理磁盘I/O的开销降低30-50%.在许多系统上,它也会在任何地方增加5% - 50% 的数据流量大多数驱动器支持最小的设置为2,4,8或,16个(扇区).较大的设置也可能存在,这取决于驱动器.在许多系统上设置为16或32看起来是最理想的. Western Digital在他们的许多驱动器上推荐设置为4或8. 归因于微小的(32kB)磁盘缓冲和非最优化的缓冲算法. 选项 -i 被用来查出一个已安装驱动器支持的最大设置 (在输出中查找 MaxMultSect 值).一些驱动器声称支持多重扇区模式, 但在某些设置下丢失数据.在极少的情况下,这样的失败会导致 严重的文件系统损坏.
-p
尝试为指定的PIO模式对IDE接口芯片重编程,或者尝试为驱动器支持的最佳的PIO模式进行自动调整.核心中仅针对于一些"知名"的芯片组支持这项特性,甚至这种支持不一定是最好的.一些IDE芯片组不能为一个单一的驱动器改变PIO模式,在这种情况下此选项可能导致PIO 模式的设置影响到 两个 驱动器.许多IDE芯片组支持少于或多于标准的六个(0到5)PIO模式, 所以实际实现的精确速度设置将由芯片组和驱动器复杂的配合改变. 谨慎使用. 这项特性不包含任何针对不谨慎的保护措施,一个不成功的结果可能导致 严重的文件系统损坏.
-P
为驱动器的内部预读机制设置最大扇区数. 不是所有的驱动器都支持这项特性.
-q
安静的操作下一个标志,压制正常输出. 当从/etc/rc.c/rc.local运行时,可用来减轻屏幕混乱程度. 不适用于 -i-v-t-T 标志.
-r
获得/设置驱动器的只读标志.当被设置时,设备上的写操作被禁止.
-R
登记一个IDE接口. 危险. 参见 -U 选项获取更多信息.
-S
设置驱动器待机(低速运转)超时值. 驱动器根据此值决定在关闭主轴电机以节约能耗之前等待多长时间(没有磁盘操作).在这种状态下,驱动器可能需要来响应一个接下来的磁盘访问,虽然大多数驱动器要快很多.超时值的编码有些特别.值0表示"关".值1到240被指定为5秒的倍数, 也就是超时可以从5秒到20分钟.值241到251指定30分钟的1到11倍, 也就是超时可以从30分钟到5.5个小时.值252表示超时21分钟, 253设置一个销售商定义的超时,255表示21分15秒.
-T
用于以基准测试和比较为目的的缓存读取计时.要得到有意义的结果, 应该在内存不少于2M,系统没有其它活动(没有其它活动的程序) 的条件下,重复操作2-3次.它显示了不存取磁盘直接从Linux缓存读取数据的速度.这项测量实际上标示了被测系统的处理器,缓存和内存的吞吐量. 如果标志 -t 也被指定,那么一个基于 -T 输出结果的修正量将被综合到 -t 操作报告的结果中.
-t
用于以基准测试和比较为目的的缓存读取计时.要得到有意义的结果, 应该在内存不少于2M,系统没有其它活动(没有其它活动的程序) 的条件下,重复操作2-3次.它显示了不使用预先的数据缓冲从磁盘这项测量标示了Linux下没有任何文件系统开销时磁盘可以支持多快的连续数据读取.为确保测量的精确,缓存在 -t 的过程中通过BLKFLSBUF控制被刷新. 如果标志 -T 也被指定,那么一个基于 -T 数促结果的修正量将被综合到 -t 操作报告的结果中.
-u
获得/设置驱动器"不屏蔽中断"标志.设置为 1 允许驱动器在磁盘中断处理过程中不屏蔽别的中断, 它极大改善了Linux的响应性能,并排除了"串行端口溢出"错误. 谨慎使用: 一些驱动器/控制器组合不能承受可能是潜在的 I/O 增长, 而导致 严重的文件系统损坏. 特别, CMD-640BRZ1000 (E)IDE 接口可能是 不可靠的 (由于某种硬件缺陷),当在早于 2.0.16 版本的核心下使用此选项时. 关闭这些接口的(通常通过设置BIOS/CMOS) IDE 预读 特性可以安全的解决这个问题.
-U
注销一个IDE接口. 危险. -R 的对应选项. 是为特别设计用来做热交换的硬件准备的(很罕见!). 使用时要有充分的知识和 非常的谨慎 ,因为它很容易终止或破坏你的系统. hdparm 的源代码包括一个 'contrib' 目录,里面有一些用户捐赠的在一台 ThinkPad 600E的UltraBay上作热交换的记录. 自己去冒险吧.
-v
显示所有的设置, 除了 -i (像 -acdgkmnru 对于 IDE, -gr 对于 SCSI 或 -adgr 对于 XT). 这也是未指定任何标志时的默认操作.
-W
关闭/打开 IDE 驱动器的写缓存特性 (通常默认为 OFF ).
-X
为较新的 (E)IDE/ATA2 驱动器设置 IDE 传输模式 . 特别是当在一个被支持的接口芯片组(像 Intel 430FX Triton) 上打开通向一个驱动器的DMA时与选项 -d1 组合使用,在这里用 -X34 来选择多字 DMA 模式2 传输. 对于支持 UltraDMA burst timings 的系统,用 -X66 来选择 UltraDMA mode2 传输 (你需要在这之前为 UltraDMA 准备好被支持的芯片组). 另外, 几乎没有必要 使用此标志,因为大多数/全部现代 IDE 驱动器默认它们最快的
 PIO 传输模式为打开. 所以摆弄它是没有必要的也是冒险的. 在支持 alternate 传输模式的驱动器上, -X 可以被 用来选择模式. 在改变传输模式之前, 应该为新模式的设置给 IDE 接口跳线或编程(见 -p 标志) 以防止数据的丢失或损坏. 请非常小心地使用它! 对于 Linux 使用的 PIO 传输模式,此值就是要求的 PIO 模式号加 8. 这样, 值 09 设置 PIO mode1, 10 设置 PIO mode2,
 11 设置 PIO mode3. 设置为 00 还原驱动器的默认 PIO 模式, 01 关闭 IORDY. 对于多字 DMA, 使用的值时要求的 DMA 模式号加 32. 对于 UltraDMA ,相应的值是要求 UltraDMA 模式号加64.
-y
迫使一个 IDE 驱动器立即进入低能耗 待机 模式, 通常使它低速运转. 当前能耗模式状态可以用 -C 标志来检查.
-Y
迫使一个 IDE 驱动器立即进入最低能耗 睡眠 模式, 使它完全关闭. 一个来自硬件或软件的重置可以重新唤醒驱动器. ( 如果需要,Linux IDE 驱动器将自动产生一个重置 ).
-Z
关闭某些 Seagate 驱动器(STxxx 型?)的自动节能功能, 以防止它们在不适当的时候空转或低速运转.

BUGS

像上面提到的, -m 扇区数-u 1 选项尤其要小心使用, 最好在一个只读文件系统上使用. 大多数驱动器和这些特性配合得很好,但有一些驱动器/控制器组合不是100%兼容的.使用可能导致文件系统损坏. 请在实验之前给所有的数据作备份!

某些选项 (例如: -r 对于 SCSI) 可能在旧的核心下因为核心不支持必要的 icctl() 而不能工作.

虽然这个命令只是为使用 (E)IDE 硬盘设备准备的,但有几个选项也能够(允许)用于带有 XT 接口的 SCSI 硬盘设备和 MFM/RLL 硬盘.  


推荐阅读
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
author-avatar
beauty360尜囡囡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有