मैं इसके ऊपर एक बहुत ही समान मोड का प्रस्ताव रखता था, लेकिन ये स्क्रिप्ट आवश्यक बनाते हैं और निम्न स्क्रिप्ट के साथ साझा फ़ोल्डर को माउंट या अनमाउंट करते हैं:
#!/bin/bash
#
# Mount automatically even shared folder on startup and unmount it at shutdown.
#
# VirtualBox (c) 2015 by Oracle Systems Inc.
#
####
# Check user privileges.
if [[ $EUID -ne 0 ]]; then
echo -e "This script must run at ROOT user!" \
"\nPlease, use 'sudo', 'visudo' or any other to run it."
exit 1
fi
# Check paramas from caller.
if [[ $# -eq 0 ]]; then
echo -e "Auto-Mount selected shared folder of VirtualBox machine." \
"\nUsage:" \
"\n VBoxShared <drive_one> <drive_two> <...>"
exit 2
fi
declare EVENT= # This set the ACTION: -m OR -u
declare -a DRIVES=()
# Processing each param:
for arg in "$@"; do
case "$arg" in
"-m"|"--mount")
if [[ -z ${EVENT} ]]; then
EVENT=-m
else
exit 318 # parameters at conflict!
fi
;;
"-u"|"--umount")
if [[ -z ${EVENT} ]]; then
EVENT=-u
else
exit 318 # parameters at conflict!
fi
;;
*)
DRIVES=("${DRIVES[@]}" "${arg}")
;;
esac
done
unset arg
[[ -z ${EVENT} ]] && exit 1 # ERROR: No se ha establecido la acción a realizar.
[[ "${#DRIVES[@]}" -gt 0 ]] || exit 1 # ERROR: No se han indicado las unidades a manejar.
# Process each shared folder stored on '${DRIVES}' array
for drive in "${DRIVES[@]}"; do
DEST="/media/sf_${drive}"
case "${EVENT}" in
"-m")
[[ -d ${DEST} ]] || (mkdir ${DEST} && chown root:vboxsf ${DEST} && chmod 770 ${DEST})
mount -t vboxsf ${drive} ${DEST}
;;
"-u")
if [[ `df --output=target | grep "${DEST}"` > /dev/null ]]; then
umount -f ${DEST}
rm -rf "${DEST}"
fi
;;
esac
unset DEST
done
unset drive
unset EVENT
unset DRIVES
exit 0
इसे इस रूप में सहेजें /opt/.scripts/VBoxShared.sh
।
सुनिश्चित करें कि यह चलाया जा सकता है। शेल प्रकार पर:
sudo chmod a+x /opt/.scripts/VBoxShared.sh
अब, हम इस स्क्रिप्ट को चलाने वाली एक पंक्ति जोड़ते हैं rc.local
:
sudo nano /etc/rc.local
और हम अंतिम पंक्ति ( exit 0
) से पहले इन रेखाओं को जोड़ते हैं :
. /opt/.scripts/VBoxShared.sh --mount <SharedFolder1> [<SharedFolder2> <SharedFolder3> ...]
सहेजें ( CtrlO) और इसे बंद करें ( CtrlX)
इस बिंदु पर, हम <SharedFolder>
स्टार्टअप पर सूचीबद्ध सभी साझा किए गए फ़ोल्डर को स्वचालित रूप से माउंट करते हैं ।
इसे अनमाउंट करने के लिए, हमें केवल प्रकार की आवश्यकता है:
sudo nano /etc/rc6.d/K99-vboxsf-umount.sh
#!/bin/bash
. /opt/.scripts/VBoxShared --umount <SharedFolder1> [<SharedFolder2> <SharedFolder3> ...]
exit 0
सहेजें ( CtrlO) और पास ( CtrlX)
sudo chmod a+x /etc/rc6.d/K99-vboxsf-auto.sh
और बस यही!