|
|
|
#!/sbin/openrc-run
|
|
|
|
#
|
|
|
|
# bestcrypt Encrypted File Systems.
|
|
|
|
#
|
|
|
|
# Version: 1.2
|
|
|
|
#
|
|
|
|
# Revision: $Id$
|
|
|
|
#
|
|
|
|
# Author: Jetico Inc. (support@jetico.com)
|
|
|
|
#
|
|
|
|
# Modified by Stefan Tittel (with thanks to steveb) to work around
|
|
|
|
# the "xargs: environment too large for exec"-error occuring in
|
|
|
|
# the gentoo 1.4 linux distribution.
|
|
|
|
|
|
|
|
# chkconfig: 2345 85 98
|
|
|
|
# description: BestCrypt init script
|
|
|
|
|
|
|
|
|
|
|
|
# Source function library.
|
|
|
|
#. /etc/rc.d/init.d/functions
|
|
|
|
|
|
|
|
# See how we were called.
|
|
|
|
|
|
|
|
KERNEL_VERSION=`uname -r|sed 's/\(.\..\).*/\1/'`
|
|
|
|
|
|
|
|
start() {
|
|
|
|
ebegin "Initializing BestCrypt"
|
|
|
|
declare -i status=0
|
|
|
|
rm -rf /dev/bcrypt?* 2>/dev/null
|
|
|
|
if [ $KERNEL_VERSION = "2.2" ]; then
|
|
|
|
mknod -m 666 /dev/bcrypt0 b 7 128
|
|
|
|
mknod -m 666 /dev/bcrypt1 b 7 129
|
|
|
|
mknod -m 666 /dev/bcrypt2 b 7 130
|
|
|
|
mknod -m 666 /dev/bcrypt3 b 7 131
|
|
|
|
mknod -m 666 /dev/bcrypt4 b 7 132
|
|
|
|
mknod -m 666 /dev/bcrypt5 b 7 133
|
|
|
|
mknod -m 666 /dev/bcrypt6 b 7 134
|
|
|
|
mknod -m 666 /dev/bcrypt7 b 7 135
|
|
|
|
mknod -m 666 /dev/bcrypt8 b 7 136
|
|
|
|
mknod -m 666 /dev/bcrypt9 b 7 137
|
|
|
|
mknod -m 666 /dev/bcrypt10 b 7 138
|
|
|
|
mknod -m 666 /dev/bcrypt11 b 7 139
|
|
|
|
mknod -m 666 /dev/bcrypt12 b 7 140
|
|
|
|
mknod -m 666 /dev/bcrypt13 b 7 141
|
|
|
|
mknod -m 666 /dev/bcrypt14 b 7 142
|
|
|
|
mknod -m 666 /dev/bcrypt15 b 7 143
|
|
|
|
else
|
|
|
|
if [ ! -c /dev/.devfsd ] && [ ! -e /dev/.udev ];
|
|
|
|
then
|
|
|
|
mknod -m 666 /dev/bcrypt0 b 188 0
|
|
|
|
mknod -m 666 /dev/bcrypt1 b 188 1
|
|
|
|
mknod -m 666 /dev/bcrypt2 b 188 2
|
|
|
|
mknod -m 666 /dev/bcrypt3 b 188 3
|
|
|
|
mknod -m 666 /dev/bcrypt4 b 188 4
|
|
|
|
mknod -m 666 /dev/bcrypt5 b 188 5
|
|
|
|
mknod -m 666 /dev/bcrypt6 b 188 6
|
|
|
|
mknod -m 666 /dev/bcrypt7 b 188 7
|
|
|
|
mknod -m 666 /dev/bcrypt8 b 188 8
|
|
|
|
mknod -m 666 /dev/bcrypt9 b 188 9
|
|
|
|
mknod -m 666 /dev/bcrypt10 b 188 10
|
|
|
|
mknod -m 666 /dev/bcrypt11 b 188 11
|
|
|
|
mknod -m 666 /dev/bcrypt12 b 188 12
|
|
|
|
mknod -m 666 /dev/bcrypt13 b 188 13
|
|
|
|
mknod -m 666 /dev/bcrypt14 b 188 14
|
|
|
|
mknod -m 666 /dev/bcrypt15 b 188 15
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
modprobe bc || status=1
|
|
|
|
modprobe bc_blowfish || status=1
|
|
|
|
modprobe bc_des || status=1
|
|
|
|
modprobe bc_gost || status=1
|
|
|
|
modprobe bc_twofish || status=1
|
|
|
|
modprobe bc_bf448 || status=1
|
|
|
|
modprobe bc_bf128 || status=1
|
|
|
|
modprobe bc_3des || status=1
|
|
|
|
modprobe bc_idea || status=1
|
|
|
|
modprobe bc_rijn || status=1
|
|
|
|
modprobe bc_cast || status=1
|
|
|
|
modprobe bc_rc6 || status=1
|
|
|
|
modprobe bc_serpent || status=1
|
|
|
|
eend ${status}
|
|
|
|
}
|
|
|
|
|
|
|
|
stop() {
|
|
|
|
ebegin "Unmounting encrypted filesystems"
|
|
|
|
|
|
|
|
# The original line causing the "xargs: environment too large for exec error".
|
|
|
|
# grep BestCrypt /etc/mtab |awk '{print $2}'|xargs -r -n 1 bctool umount
|
|
|
|
|
|
|
|
# The line for which it work's fine now.
|
|
|
|
for i in $(grep BestCrypt /etc/mtab | awk '{print $2}') ; do bctool umount ${i} ; done
|
|
|
|
|
|
|
|
eend $?
|
|
|
|
ebegin "Shutting down BestCrypt modules"
|
|
|
|
for i in `lsmod |egrep "^bc_.*" |awk '{print $1}' `; do
|
|
|
|
rmmod $i
|
|
|
|
done
|
|
|
|
if [ ! -c /dev/.devfsd ] && [ ! -e /dev/.udev ];
|
|
|
|
then
|
|
|
|
rm -f /dev/bcrypt?* 2>/dev/null
|
|
|
|
fi
|
|
|
|
rmmod bc
|
|
|
|
eend $?
|
|
|
|
}
|