使用hdparm工具可以调整IDE硬盘性能,它设计时专门考虑了使用UDMA驱动器。在缺省情况下,linux使用是最安全的,但是设置访问IDE驱动器是最慢的。缺省模式没有利用UDMA可能的最快的性能。
  使用hdparm工具,通过激活下面的特性可以显著地改善性能:
  ◆ 32位支持 缺省设置是16位;
  ◆ 多部分访问 缺省设置是每次中断单部分传送。
  注意:在使用hdparm之前,确保对系统已经做了完全的备份。使用hdparm改变IDE参数,如果出错可能会引起驱动器上全部数据的丢失。
  hdparm可以提供关于硬盘的大量信息。打开一个终端窗口,输入下面命令获取系统中第一个IDE驱动器的信息(改变设备名获取其它IDE驱动器的信息):
  hdparm -v /dev/hdd

/dev/hdd:
multcount = 0 (off)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 16383/255/63, sectors = 78165360, start = 0

上面命令显示出当系统启动时从驱动器获得的信息,包括驱动器操作在16位或32位模式(I/O Support)下,是否为多部分访问(Multcount)。关于磁盘驱动器的更详细信息的显示可使用-i参数。
测试硬盘参数:
` sudo hdparm -i /dev/hdd
/dev/hdd:
Model=ST340014A, FwRev=8.01, SerialNo=5JXCWWPF
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=off
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360
IORDY=on/off, tPIO={min:240,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
AdvancedPM=no WriteCache=enabled
Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2: ATA/ATAPI-1,2,3,4,5,6

  • signifies the current active mode`

Hdparm也可以测试驱动器传输速率。输入命令测试系统中第一个IDE驱动器:

hdparm -Tt /dev/hdd

/dev/hdd: Timing cached reads: 702 MB in 2.00 seconds = 350.31 MB/sec Timing buffered disk reads: 74 MB in 3.00 seconds = 24.64 MB/sec

改变驱动器设置,激活32位传输,输入下面的命令:

hdparm -c1 /dev/hdd

/dev/hdd:
setting 32-bit IO_support flag to 1
IO_support = 1 (32-bit)

-c1参数可激活32位支持并使用更少的内存开销,但是在很多驱动器下它不工作。-c3参数也可激活32位支持,使用-c0可以取消它。
  大多数新IDE驱动器支持多部分传输,但是linux缺省设置为单部分传输。注意:这个设置在一些驱动器上,激活多部分传输能引起文件系统的完全崩溃。这个问题大多数发生在较老的驱动器上。输入下面的命令激活多部分传输:

hdparm -m16 /dev/hdd

/dev/hdd:
setting multcount to 16
multcount = 16 (on)

-m16参数激活16部分传输。除了西部数据的驱动器外,大多数驱动器设置为16或32部分是最合适的。西部数据的驱动器缓冲区小,当设置大于8部分时性能将显著下降。对西部数据驱动器来说,设置为4部分是最合适的。
``使用X 设定 UtraDMA 的模式。一般来说,UDMA 的模式值加64就可以了。

  • 33 MHz DMA mode 0~2 (X64~X66)
  • 66 MHz DMA mode 3~4 (X67~X68)
  • 100 MHz DMA mode 5 (X69)
    `
    `` hdparm -X69 /dev/hdd

/dev/hdd:
setting xfermode to 69 (UltraDMA mode5)``

至此我设置的命令包括参数是为:
sudo hdparm -c1 -m16 -X69 /dev/hdd

完毕后使用如下命令保存设置:
sudo hdparm -k1 /dev/hdd

再次测试硬盘传输速度:
sudo hdparm -tT /dev/hdd

/dev/hdd:
Timing cached reads: 728 MB in 2.00 seconds = 363.33 MB/sec
Timing buffered disk reads: 84 MB in 3.03 seconds = 27.71 MB/sec

`可以看到,速度有了一定的改善了。