HDPARM(8)

NAME
hdparm - 獲取/設定硬碟引數

總覽
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標誌. 設定為 1 將鎖住一些移動式硬驅動器(像 Syquest,ZIP,Jazz..)的 門鎖機構.設定為 0 將解鎖.一般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-640B 和 RZ1000 (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 硬碟.

作者
hdparm 是由 Mark Lord <mlord@pobox.com>, Linux (E)IDE 驅動程式 的主要開發者和維護者編寫的,並聽取了很多網友的建議.

關閉 Seagate 自動節能的程式碼是徵得
 Tomi Leppikangas(tomilepp@paju.oulu.fi)允許使用的.

另見
AT Attachment Interface for Disk Drives, ANSI ASC X3T9.2 working draft, revision 4a, April 19, 1993.

AT Attachment Interface with Extensions (ATA-2), ANSI ASC X3T9.2 working draft, revision 2f, July 26, 1994.

Western Digital Enhanced IDE Implementation Guide, by Western Digital Corporation, revision 5.0, November 10, 1993.

Enhanced Disk Drive Specification, by Phoenix Technologies Ltd., version 1.0, January 25, 1994.

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh