mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-16 11:36:19 +07:00
[PATCH] raid-devfs.sh: devfs names for hardware RAID controllers
This commit is contained in:
parent
fd3eeb7502
commit
882b97455b
50
extras/raid-devfs.sh
Normal file
50
extras/raid-devfs.sh
Normal file
@ -0,0 +1,50 @@
|
||||
#!/bin/sh -e
|
||||
#
|
||||
# Copyright (c) 2004 Marco d'Itri <md@linux.it>
|
||||
# Copyright (c) 2004 Piotr Roszatycki <dexter@debian.org>
|
||||
#
|
||||
# Usage:
|
||||
# KERNEL="cciss!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", NAME="%c{1}", SYMLINK="%k"
|
||||
# KERNEL="ida!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", NAME="%c{1}", SYMLINK="%k"
|
||||
# KERNEL="rd!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", NAME="%c{1}", SYMLINK="%k"
|
||||
|
||||
get_dev_number_cciss() {
|
||||
grep '^cciss/' /proc/driver/cciss/* | cat -n | \
|
||||
sed -n "/cciss\/$1:/s/cciss.*//p"
|
||||
}
|
||||
|
||||
get_dev_number_ida() {
|
||||
grep '^ida/' /proc/driver/cpqarray/* | cat -n | \
|
||||
sed -n "/ida\/$1:/s/ida.*//p"
|
||||
}
|
||||
|
||||
get_dev_number_rd() {
|
||||
grep '^ */dev/rd/' /proc/rd/*/initial_status | cat -n | \
|
||||
sed -n "/rd\/$1:/s/\/dev\/rd.*//p"
|
||||
}
|
||||
|
||||
get_dev_number() {
|
||||
dev=$1
|
||||
num=$(eval $(echo get_dev_number_$TYPE $dev))
|
||||
[ "$num" ] || exit 1
|
||||
echo $(($num - 1))
|
||||
}
|
||||
|
||||
TYPE=${1%%/*}
|
||||
NAME=${1#*/}
|
||||
|
||||
# abort if there was no match
|
||||
[ "$TYPE" != "$1" ] || exit 1
|
||||
|
||||
case "$NAME" in
|
||||
*p*)
|
||||
LONG_NAME=disc$(get_dev_number ${NAME%%p*})/part${NAME##*p}
|
||||
;;
|
||||
*)
|
||||
LONG_NAME=disc$(get_dev_number $NAME)/disc
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "$TYPE/$LONG_NAME"
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user