| #!/sbin/runscript |
| # |
| # 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 $? |
| } |