2017-04-02 03:02:00 +00:00
|
|
|
#!/bin/sh
|
|
|
|
# Mount a USB device
|
2017-12-06 08:04:27 +00:00
|
|
|
. /etc/functions
|
|
|
|
|
2023-02-20 16:01:17 +00:00
|
|
|
TRACE "Under /bin/mount-usb"
|
2023-02-18 17:58:43 +00:00
|
|
|
|
2017-12-06 08:04:27 +00:00
|
|
|
enable_usb
|
2017-04-02 03:02:00 +00:00
|
|
|
|
2017-04-05 23:20:53 +00:00
|
|
|
if ! lsmod | grep -q usb_storage; then
|
2020-01-14 23:07:53 +00:00
|
|
|
timeout=0
|
|
|
|
echo "Scanning for USB storage devices..."
|
|
|
|
insmod /lib/modules/usb-storage.ko >/dev/null 2>&1 \
|
2019-04-15 22:05:03 +00:00
|
|
|
|| die "usb_storage: module load failed"
|
2022-11-02 15:03:30 +00:00
|
|
|
while [[ $(list_usb_storage | wc -l) -eq 0 ]]; do
|
|
|
|
[[ $timeout -ge 8 ]] && break
|
2020-01-14 23:07:53 +00:00
|
|
|
sleep 1
|
|
|
|
timeout=$(($timeout+1))
|
|
|
|
done
|
2017-04-03 21:09:54 +00:00
|
|
|
fi
|
2017-04-02 03:02:00 +00:00
|
|
|
|
|
|
|
if [ ! -d /media ]; then
|
2019-04-15 22:05:03 +00:00
|
|
|
mkdir /media
|
2017-04-02 03:02:00 +00:00
|
|
|
fi
|
|
|
|
|
2022-11-02 15:03:30 +00:00
|
|
|
list_usb_storage > /tmp/usb_block_devices
|
2019-04-15 22:05:03 +00:00
|
|
|
if [ -z `cat /tmp/usb_block_devices` ]; then
|
|
|
|
if [ -x /bin/whiptail ]; then
|
2021-09-23 17:56:17 +00:00
|
|
|
whiptail $BG_COLOR --title 'USB Drive Missing' \
|
2019-04-15 22:05:03 +00:00
|
|
|
--msgbox "Insert your USB drive and press Enter to continue." 16 60
|
|
|
|
else
|
|
|
|
echo "+++ USB Drive Missing! Insert your USB drive and press Enter to continue."
|
|
|
|
read
|
|
|
|
fi
|
|
|
|
sleep 1
|
2022-11-02 15:03:30 +00:00
|
|
|
list_usb_storage > /tmp/usb_block_devices
|
2019-04-15 22:05:03 +00:00
|
|
|
if [ -z `cat /tmp/usb_block_devices` ]; then
|
|
|
|
if [ -x /bin/whiptail ]; then
|
2020-10-23 23:07:34 +00:00
|
|
|
whiptail $BG_COLOR_ERROR --title 'ERROR: USB Drive Missing' \
|
2019-04-15 22:05:03 +00:00
|
|
|
--msgbox "USB Drive Missing! Aborting mount attempt.\n\nPress Enter to continue." 16 60
|
|
|
|
else
|
|
|
|
echo "!!! ERROR: USB Drive Missing! Aborting mount. Press Enter to continue."
|
|
|
|
fi
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2019-04-16 19:55:00 +00:00
|
|
|
USB_MOUNT_DEVICE=""
|
2019-04-15 22:05:03 +00:00
|
|
|
# Check for the common case: a single USB disk with one partition
|
|
|
|
if [ `cat /tmp/usb_block_devices | wc -l` -eq 1 ]; then
|
2022-11-02 15:03:30 +00:00
|
|
|
USB_MOUNT_DEVICE=`cat /tmp/usb_block_devices`
|
2019-04-16 19:55:00 +00:00
|
|
|
fi
|
2019-04-15 22:05:03 +00:00
|
|
|
# otherwise, let the user pick
|
2019-04-16 19:55:00 +00:00
|
|
|
if [ -z ${USB_MOUNT_DEVICE} ]; then
|
2019-04-15 22:05:03 +00:00
|
|
|
> /tmp/usb_disk_list
|
|
|
|
for i in `cat /tmp/usb_block_devices`; do
|
2022-11-02 15:03:30 +00:00
|
|
|
echo $i $(blkid | grep $i | grep -o 'LABEL=".*"' | cut -f2 -d '"') >> /tmp/usb_disk_list
|
2019-04-15 22:05:03 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
if [ -x /bin/whiptail ]; then
|
|
|
|
MENU_OPTIONS=""
|
|
|
|
n=0
|
|
|
|
while read option
|
|
|
|
do
|
|
|
|
n=`expr $n + 1`
|
|
|
|
option=$(echo $option | tr " " "_")
|
|
|
|
MENU_OPTIONS="$MENU_OPTIONS $n ${option}"
|
|
|
|
done < /tmp/usb_disk_list
|
|
|
|
|
|
|
|
MENU_OPTIONS="$MENU_OPTIONS a Abort"
|
2022-11-15 20:11:58 +00:00
|
|
|
whiptail $BG_COLOR --title "Select your USB disk" \
|
2022-11-09 16:51:27 +00:00
|
|
|
--menu "Choose your USB disk [1-$n, a to abort]:" 0 80 8 \
|
2019-04-15 22:05:03 +00:00
|
|
|
-- $MENU_OPTIONS \
|
|
|
|
2>/tmp/whiptail
|
|
|
|
|
|
|
|
option_index=$(cat /tmp/whiptail)
|
|
|
|
else
|
|
|
|
echo "+++ Select your USB disk:"
|
|
|
|
n=0
|
|
|
|
while read option
|
|
|
|
do
|
|
|
|
n=`expr $n + 1`
|
|
|
|
echo "$n. $option"
|
|
|
|
done < /tmp/usb_disk_list
|
|
|
|
|
|
|
|
read \
|
|
|
|
-p "Choose your USB disk [1-$n, a to abort]: " \
|
|
|
|
option_index
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$option_index" = "a" ]; then
|
2020-07-10 18:00:13 +00:00
|
|
|
exit 5
|
2019-04-15 22:05:03 +00:00
|
|
|
fi
|
2020-06-24 07:44:50 +00:00
|
|
|
USB_MOUNT_DEVICE=`head -n $option_index /tmp/usb_disk_list | tail -1 | sed 's/\ .*$//'`
|
2019-04-15 22:05:03 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" = "rw" ]; then
|
|
|
|
mount -o rw $USB_MOUNT_DEVICE /media
|
2017-07-17 16:24:15 +00:00
|
|
|
else
|
2019-04-15 22:05:03 +00:00
|
|
|
mount -o ro $USB_MOUNT_DEVICE /media
|
2017-07-17 16:24:15 +00:00
|
|
|
fi
|