First commit
This commit is contained in:
commit
aee895f1dd
2 changed files with 110 additions and 0 deletions
36
README.md
Normal file
36
README.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
Mount_FreeBSD_encimg
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
A small script utility to mount encrypted image disk in FreeBSD / FreeNAS then
|
||||||
|
execute desired services
|
||||||
|
|
||||||
|
this script is inspired by one you can find [here][L_nlsr]
|
||||||
|
# Customize
|
||||||
|
|
||||||
|
First you'll need to customize a little for your need, there 3 variables to
|
||||||
|
modify :
|
||||||
|
|
||||||
|
* IMAGE_DISK : full path to your disk image
|
||||||
|
* MOUNT_PATH : full path to your mount point
|
||||||
|
* SERVICES : services you want to start after mounting image.
|
||||||
|
|
||||||
|
# Example
|
||||||
|
|
||||||
|
I want to mount my image ``/data/backup_drive.img`` to ``/var/spool/burp/``
|
||||||
|
then start burp service. Here is all three variables :
|
||||||
|
|
||||||
|
~~~sh
|
||||||
|
DISK_IMAGE="/data/backup_drive.img"
|
||||||
|
MOUNT_POINT="/var/spool/burp/"
|
||||||
|
SERVICES="burp"
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Then, i just need to launch the script then prey there is no bug ;-)
|
||||||
|
|
||||||
|
~~~
|
||||||
|
#mount.sh mount
|
||||||
|
~~~
|
||||||
|
|
||||||
|
done!
|
||||||
|
|
||||||
|
[L_nlsr]:http://www.nlrs.fr/2011/09/17/encrypted-share-geli/
|
74
mount.sh
Executable file
74
mount.sh
Executable file
|
@ -0,0 +1,74 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Script to mount encrypted disk image in FreeBSD
|
||||||
|
|
||||||
|
DISK_IMAGE="/test.img"
|
||||||
|
MOUNT_POINT="/mnt/test"
|
||||||
|
SERVICES=""
|
||||||
|
|
||||||
|
if [ -e $DISK_IMAGE ]
|
||||||
|
then
|
||||||
|
echo "Image disk not found, exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $0 in
|
||||||
|
m|mount)
|
||||||
|
echo "mount $MOUNT_POINT"
|
||||||
|
mdconfig -a -t vnode -f $DISK_IMAGE -u 0 > /dev/null
|
||||||
|
geli attach -d /dev/md0 > /dev/null
|
||||||
|
if [ $? -eq 0 ]
|
||||||
|
then
|
||||||
|
mount /dev/md0.eli $MOUNT_POINT
|
||||||
|
if [ $? -neq 0 ]
|
||||||
|
then
|
||||||
|
for i in $SERVICES
|
||||||
|
do
|
||||||
|
service $i one start
|
||||||
|
if [ $? -neq 0 ]
|
||||||
|
then
|
||||||
|
echo something gone wrong when starting $i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "I can't mount..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Something wrong happen, did you give me the good password?"
|
||||||
|
mdconfig -d -u 0
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
u|unmount)
|
||||||
|
for i in $SERVICES
|
||||||
|
do
|
||||||
|
echo "stop $i service ..."
|
||||||
|
service $i onestop
|
||||||
|
if [ $? -neq 0 ]
|
||||||
|
then
|
||||||
|
echo "can't stop $i service then unmount $MOUNT_POINT exiting ..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "unmount $MOUNT_POINT ..."
|
||||||
|
umount $MOUNT_POINT > /dev/null
|
||||||
|
mdconfig -d -u 0 > /dev/null
|
||||||
|
if [ $? ] && [ ! -e /dev/md0 ] && [ ! -e /dev/md0.eli ] && [ `ls $clear | wc -l` ]
|
||||||
|
then
|
||||||
|
echo 'Everything clean'
|
||||||
|
else
|
||||||
|
echo 'Some ressources are still present, please check'
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "what is this argument? We don't speak the same language..."
|
||||||
|
echo "USAGE"
|
||||||
|
echo "mount.sh [mount|umount]"
|
||||||
|
echo "mount / umount an encrypted image and axecute dependent services"
|
||||||
|
echo "modify MOUNT_POINT and IMAGE_DISK variables then add services"
|
||||||
|
echo "to SERVICES."
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit 0
|
Reference in a new issue