•   使用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

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