Skip to content

Instantly share code, notes, and snippets.

@rafzei
Last active July 2, 2020 16:51
Show Gist options
  • Save rafzei/b8233946185a8881bdec558da56f9bf8 to your computer and use it in GitHub Desktop.
Save rafzei/b8233946185a8881bdec558da56f9bf8 to your computer and use it in GitHub Desktop.
Easy mount/umount Bitlocker encrypted disk with bash script
#!/bin/bash
vars(){
echo "Setting up vars"
dir_bitlocker="/media/bitlocker"
file_dislocker="dislocker-file"
dir_bitlocker_mount="/media/bitlocker_mount"
dislocker="/usr/bin/dislocker"
}
ensure_dislocker(){
echo "Ensuring dislocker is in place, if not exit"
[[ -e $dislocker ]] || exit 1
}
creating_dirs(){
echo "Creating dirs"
[[ ! -d "$dir_bitlocker" ]] && sudo mkdir -p "$dir_bitlocker"
[[ ! -d "$dir_bitlocker_mount" ]] && sudo mkdir -p "$dir_bitlocker_mount"
}
find_encrypted_parition(){
echo "Partitions:"
/usr/bin/lsblk
echo "Please provide partition to decrypt:"
read -r selected_partition
}
decrypt_bitlocker(){
echo "Decrypting.."
sudo dislocker "/dev/${selected_partition}" -u"$password" -- $dir_bitlocker
local return=$?
echo "Return code: $return"
}
mount_disk(){
echo "Mounting disk.."
sudo mount -o loop ${dir_bitlocker}/${file_dislocker} $dir_bitlocker_mount
local return=$?
echo "Return code: $return"
}
umount_all(){
if [[ $(mount -v | grep "^dislocker") ]]; then
if [[ $(mount -v | grep "^${dir_bitlocker}/${file_dislocker}") ]]; then
echo "Umount encrypted disk"
sudo umount ${dir_bitlocker}/${file_dislocker}
fi
echo "Umount dislocker"
sudo umount $dir_bitlocker
local return=$?
echo "Return code: $return"
fi
}
cleanup(){
echo "Removing dir used for decrypt"
[[ -d $dir_bitlocker ]] && sudo rm -rf $dir_bitlocker
local return=$?
echo "Return code: $return"
}
####################################
case "$1" in
mount)
vars
ensure_dislocker
creating_dirs
find_encrypted_parition
decrypt_bitlocker
mount_disk
;;
umount)
vars
umount_all
cleanup
;;
*)
echo $"Usage: $0 {mount|umount}"
exit 1
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment