projects:linux:manual_backup_scripts:mount_usb
Mount USB
Входит в набор rPi Seal
- select_target.sh
#!/bin/bash export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 # ==DIS/AUTOEXEC== # === Select === # 01_select_target.sh — выбор целевого диска или каталога, монтирование и экспорт пути # set -euo pipefail TARGET_FILE=".rpi_seal_target" # Очистка старого пути при запуске [[ -f "$TARGET_FILE" ]] && rm -f "$TARGET_FILE" # Поиск и выбор устройства для монтирования mapfile -t DEVICES < <(lsblk -nrpo NAME,SIZE,MOUNTPOINT,TYPE | grep -E "/dev/sd|/dev/nvme" | awk '$4 == "part" {print $1":"$2":"$3}') if [[ ${#DEVICES[@]} -eq 0 ]]; then echo "❌ Нет доступных устройств-разделов." exit 1 fi echo "💾 Выберите раздел устройства для сохранения образа:" i=1 for dev in "${DEVICES[@]}"; do IFS=":" read -r name size mnt <<< "$dev" status="" [[ -z "$mnt" ]] && status="🔌 не примонтировано" echo "$i - $name ($size) $mnt $status" ((i++)) done echo "0 - Отмена" read -rp "👉 Ваш выбор: " choice # Проверка на отмену или некорректный ввод if [[ "$choice" == "0" || -z "$choice" ]]; then echo "❎ Отменено." exit 0 fi if ! [[ "$choice" =~ ^[0-9]+$ ]] || (( choice < 1 || choice > ${#DEVICES[@]} )); then echo "❌ Неверный выбор." exit 1 fi # Выбранный раздел SEL_DEV="${DEVICES[$((choice-1))]}" IFS=":" read -r DEV_NAME DEV_SIZE DEV_MNT <<< "$SEL_DEV" # Проверка: примонтирован ли раздел MOUNTED_PATH=$(lsblk -nrpo NAME,MOUNTPOINT "$DEV_NAME" | awk '$2!="" {print $2; exit}') if [[ -n "$MOUNTED_PATH" ]]; then echo "⚠️ Раздел уже примонтирован." echo "✅ Используем: $MOUNTED_PATH" echo "$MOUNTED_PATH" > "$TARGET_FILE" chmod 600 "$TARGET_FILE" exit 0 fi # Если не примонтировано — монтируем в свободную точку i=0 while true; do MNT_PATH="/mnt/rpi_target$i" if ! mountpoint -q "$MNT_PATH"; then break fi ((i++)) done sudo mkdir -p "$MNT_PATH" if sudo mount "$DEV_NAME" "$MNT_PATH"; then echo "✅ Раздел примонтирован в $MNT_PATH" echo "$MNT_PATH" > "$TARGET_FILE" chmod 600 "$TARGET_FILE" else echo "❌ Не удалось примонтировать $DEV_NAME" exit 1 fi
*******
projects/linux/manual_backup_scripts/mount_usb.txt · Последнее изменение: 2025/04/11 17:40 —