#!/bin/bash # Hdparm initscript - Turn on harddisk optimization # Copyright (C) 2004-2005 Silvan Calarco # Copyright (C) 2004-2005 Davide Madrisan # # hdparm: Set hard disk parameters # chkconfig: 2345 09 93 # description: Set hard disk parameters . /etc/sysconfig/rc . $rc_functions # There is only one file /etc/sysconfig/harddisks for all disks after # installing the hdparm package. # If you need different hdparm parameters for each of your disks, copy # /etc/sysconfig/harddisks to /etc/sysconfig/harddiskhda (hdb, hdc...) # and modify it. # Each disk which has no special parameters will use the defaults. # For each cdrom only the 'EIDE_32BIT' parameter will be used case "$1" in start) [ -x /sbin/hdparm ] || exit 0 for device in $(find /dev/hd[a-z] -printf "%f " 2>/dev/null); do unset MULTIPLE_IO USE_DMA EIDE_32BIT LOOKAHEAD EXTRA_PARAMS if [ -r /etc/sysconfig/harddisk${device} ]; then . /etc/sysconfig/harddisk${device} else # use default values [ -r /etc/sysconfig/harddisks ] && . /etc/sysconfig/harddisks fi unset HDFLAGS if [ -r "/proc/ide/$device/media" ]; then case "$(cat /proc/ide/$device/media)" in "disk") [ "$MULTIPLE_IO" ] && HDFLAGS="-q -m$MULTIPLE_IO" [ "$USE_DMA" ] && HDFLAGS="$HDFLAGS -q -d$USE_DMA" [ "$EIDE_32BIT" ] && HDFLAGS="$HDFLAGS -q -c$EIDE_32BIT" [ "$LOOKAHEAD" ] && HDFLAGS="$HDFLAGS -q -A$LOOKAHEAD" [ "$EXTRA_PARAMS" ] && HDFLAGS="$HDFLAGS $EXTRA_PARAMS" ;; "cdrom") [ "$EIDE_32BIT" ] && HDFLAGS="$HDFLAGS -q -c$EIDE_32BIT" ;; esac fi [ "$HDFLAGS" ] && action $"Setting hard drive parameters for $device: " \ /sbin/hdparm $HDFLAGS /dev/$device done ;; restart) $0 start ;; stop) exit 0 ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac