ฉันทำในโหมดที่คล้ายกันมากที่ถูกเสนอไว้ด้านบน แต่สคริปต์เหล่านี้สร้างสิ่งที่ต้องการและติดตั้งหรือยกเลิกการต่อเชื่อมโฟลเดอร์ที่ใช้ร่วมกันด้วยสคริปต์ต่อไปนี้:
#!/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>
เริ่มต้น
สำหรับ unmount มันเราต้องการเพียงประเภท:
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
และนั่นคือทั้งหมด!