]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | ||
3 | [ -f /etc/sysconfig/hdparm ] || exit 0 | |
4 | ||
5 | blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/hdparm) | |
6 | if [ -z "$blockdevs" ]; then | |
7 | exit 0 | |
8 | fi | |
9 | ||
10 | # Source function library | |
11 | . /etc/rc.d/init.d/functions | |
12 | ||
13 | # Source hdparm configuration. | |
14 | . /etc/sysconfig/hdparm | |
15 | ||
16 | for var in $blockdevs; do | |
17 | drive=${var#HDPARM_} | |
18 | ||
19 | # check if it is some ID | |
20 | if [ -L /dev/disk/by-id/ata-$drive ]; then | |
21 | dev=$(readlink -f /dev/disk/by-id/ata-$drive) | |
22 | elif [ -L /dev/disk/by-id/scsi-$dev ]; then | |
23 | dev=$(readlink -f /dev/disk/by-id/scsi-$drive) | |
24 | else | |
25 | dev=$drive | |
26 | fi | |
27 | ||
28 | # strip /dev | |
29 | dev=${dev#/dev/} | |
30 | ||
31 | if [ -L "/proc/ide/$dev" -o -d "/sys/block/$dev" ]; then | |
32 | eval PARAMS=\$$var | |
33 | if [ -n "$PARAMS" ]; then | |
34 | show "Setting parameters for drive %s (%s)" "$drive" "$PARAMS" | |
35 | busy | |
36 | /sbin/hdparm $PARAMS /dev/$dev | |
37 | ok | |
38 | fi | |
39 | fi | |
40 | done | |
41 | ||
42 | exit 0 |