위에서 제안한 것과 매우 유사한 모드를 사용하지만이 스크립트는 필요한 스크립트를 만들고 다음 스크립트를 사용하여 공유 폴더를 마운트하거나 마운트 해제합니다.
#!/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
그리고 그게 전부입니다!