萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux下的硬盤提速方案

Linux下的硬盤提速方案

class="22333"> 目前很多朋友都用上了大容量的DMA或UDMA-33標准的硬盤。在微軟的Windows98下為了使得DMA或UDMA-33標准的硬盤提高數據傳輸速率,可以在計算機的CMOS或操作系統中打開IDE硬盤的DMA(直接存儲器存取)這項功能。但是在Linux平台中,Linux是不會自動的打開DMA模式,所以在Linux中使用這些IDE接口的UDMA-33標准的硬盤感覺數據傳輸遠遠沒有在Windows中快。事實上,Linux平台中也可以通過軟件來打開DMA模式,以下就是Linux下的硬盤提速的具體做法。;


  首先,在Linux下打開DMA模式之前,最重要的事情就是備份硬盤上的數據。因為在開啟DMA模式之後誰也無法預料到硬盤是否還能正常工作,數據是否還完整。把Linux下所有的重要數據備份到其他硬盤或是CD-R等存儲媒介上是最好的選擇,請不要把數據備份在同一塊硬盤上,更不能把數據備份到同一個硬盤分區。
第二步需要修改hdparm目錄下的一些設備節點參數。但是修改這些參數必須以超級用戶(ROOT)的身份登陸Linux系統才行。普通Linux用戶沒有這個權限修改hdparm目錄下的東西。下面就是一個修改硬盤設備節點參數的例子,注意,不同型號,不同容量的硬盤可能列出的參數不太一樣,但是修改的過程和方法大體上是一樣的。;

#;/sbin/hdparm;/dev/hda
/dev/hda:
multcount;=;0;(off)
I/O;support;=;0;(default;16-bit)
unmaskirq;=;0;(off)
using_dma;=;0;(off)
keepsettings;=;0;(off)
nowerr;=;0;(off)
readonly;=;0;(off)
readahead;=;8;(on)
geometry;=;629/240/63,;sectors;=;9514260,;start;=;0
#;

  要注意的是,OFF代表此參數不起作用,ON表示打開此功能或模式。上面的參數列表寫的非常清楚,Multcount(多扇區讀);沒有打開;此硬盤格式為16位格式;DMA數據傳輸模式沒有打開。很顯然,這樣的參數並沒有使硬盤達到最佳的優化,沒有能完全發揮當今高速IDE硬盤的性能。
為了優化硬盤,提高硬盤的數據傳輸速率,首先還是要了解以下這些參數的含義:;

c3;:就是把硬盤的16位格式轉換為32位模式。
m16;:改變硬盤的多路扇區的讀功能,-m16可以使得硬盤一次讀入16個扇區的數據。但是不是所有的硬盤都支持這個功能。使用hdparm;-i;/dev/hda;可以察看您的硬盤最大能讀寫的扇區數目。
d1X34;在支持DMA-capable的硬盤中,這個參數可以支持雙DMA通道的數據傳輸模式。
d1X66;在支持UDMA-capable的硬盤中,這個參數可以支持雙DMA通道的數據傳輸模式。
  了解以上參數的作用和含義之後,現在請您仔細檢查硬盤上面上的標簽,看看您的硬盤是否支持DMA;或者;UDMA模式,然後才對照這些參數來優化您的硬盤,以防出現不可預見的錯誤。
優化硬盤的參數,也可以參考下面的例子,注意,不是所有的硬盤都適用一下的優化參數,請按照實際情況來設置參數:;


#;hdparm;-d1X66;-m16;-c3;/dev/hda
#;hdparm;/dev/hda
/dev/hda:
multcount;=;16;(on)
I/O;support;=;3;(32-bit;w/sync)
unmaskirq;=;0;(off)
using_dma;=;1;(on)
keepsettings;=;0;(off)
nowerr;=;0;(off)
readonly;=;0;(off)
readahead;=;8;(on)
geometry;=;629/240/63,;sectors;=;9514260,;start;=;0;

  修改完這些參數之後,有時候並不能一次性把硬盤優化成功。如果在硬盤還在正常工作的時候修改這些數據,硬盤會進入“休眠”狀態。這就需要等硬盤燈會熄滅,硬盤不處於繁忙狀態下優化硬盤參數比較容易成功。;

  hdparm的改變是一個臨時的狀態,下次再次啟動Linux系統的時候hdparm將會消失。所以要想永久的保存修改後的信息,就必須把修改後的參數和數據寫入/etc/rc.d/rc.local或者/etc/rc.local文件,甚至比啟動過程要早運行的程序中。;

  最後要提醒大家的是,如果您的主板的芯片組或Linux內核kernel(比如內核kernel版本過於陳舊,2.2版以前)如果不支持UDMA模式,那就沒有必要去修改硬盤設備的參數了。升級主板或者kernel是解決這個問題的較好選擇。
copyright © 萬盛學電腦網 all rights reserved