Improve setup_usb.sh with automatic fstab updates

- Added automatic /etc/fstab modification option
  - Creates timestamped backup before modifying
  - Checks if UUID entries already exist
  - Appends new entries only if not present
  - Provides clear feedback for each step

- Enhanced user prompts with better guidance
- Added test instructions after fstab update

Previously the script only displayed the fstab entries
for manual addition. Now it can automatically add them
with a single confirmation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-27 13:23:25 +07:00
parent 7cce795a43
commit ad34461d27

View File

@@ -104,31 +104,72 @@ ls -la /media/usb0 /media/usb1 2>/dev/null | grep -E "^d|^total" || echo "No mou
echo ""
# Offer to add to fstab
read -p "Add these mounts to /etc/fstab for automatic mounting? (y/n) " -n 1 -r
echo ""
FSTAB_ENTRIES=""
if [[ $REPLY =~ ^[Yy]$ ]]; then
if [ ! -z "$USB0_DEVICE" ]; then
UUID0=$(blkid -s UUID -o value "$USB0_DEVICE")
if [ ! -z "$UUID0" ]; then
FSTAB_ENTRIES+="UUID=$UUID0 /media/usb0 vfat defaults,nofail,uid=$REAL_UID,gid=$REAL_GID 0 0"$'\n'
fi
fi
if [ ! -z "$USB1_DEVICE" ]; then
UUID1=$(blkid -s UUID -o value "$USB1_DEVICE")
if [ ! -z "$UUID1" ]; then
FSTAB_ENTRIES+="UUID=$UUID1 /media/usb1 vfat defaults,nofail,uid=$REAL_UID,gid=$REAL_GID 0 0"$'\n'
fi
fi
if [ ! -z "$FSTAB_ENTRIES" ]; then
echo ""
echo "Add the following lines to /etc/fstab:"
echo "Suggested /etc/fstab entries:"
echo ""
echo "$FSTAB_ENTRIES"
read -p "Automatically add these to /etc/fstab? (y/n) " -n 1 -r
echo ""
if [ ! -z "$USB0_DEVICE" ]; then
UUID0=$(blkid -s UUID -o value "$USB0_DEVICE")
if [[ $REPLY =~ ^[Yy]$ ]]; then
# Backup fstab
cp /etc/fstab /etc/fstab.backup.$(date +%Y%m%d_%H%M%S)
echo -e "${GREEN}✓ Backed up /etc/fstab${NC}"
# Check if entries already exist
ADDED=0
if [ ! -z "$UUID0" ]; then
echo "UUID=$UUID0 /media/usb0 vfat defaults,nofail,uid=$REAL_UID,gid=$REAL_GID 0 0"
if ! grep -q "$UUID0" /etc/fstab; then
echo "UUID=$UUID0 /media/usb0 vfat defaults,nofail,uid=$REAL_UID,gid=$REAL_GID 0 0" >> /etc/fstab
echo -e "${GREEN}✓ Added USB0 to /etc/fstab${NC}"
ADDED=1
else
echo -e "${YELLOW}⚠ USB0 already in /etc/fstab${NC}"
fi
fi
fi
if [ ! -z "$USB1_DEVICE" ]; then
UUID1=$(blkid -s UUID -o value "$USB1_DEVICE")
if [ ! -z "$UUID1" ]; then
echo "UUID=$UUID1 /media/usb1 vfat defaults,nofail,uid=$REAL_UID,gid=$REAL_GID 0 0"
if ! grep -q "$UUID1" /etc/fstab; then
echo "UUID=$UUID1 /media/usb1 vfat defaults,nofail,uid=$REAL_UID,gid=$REAL_GID 0 0" >> /etc/fstab
echo -e "${GREEN}✓ Added USB1 to /etc/fstab${NC}"
ADDED=1
else
echo -e "${YELLOW}⚠ USB1 already in /etc/fstab${NC}"
fi
fi
fi
echo ""
echo "To add automatically, run:"
echo " sudo nano /etc/fstab"
if [ $ADDED -eq 1 ]; then
echo ""
echo -e "${GREEN}✓ fstab updated successfully${NC}"
echo "Drives will auto-mount on reboot"
echo ""
echo "To test now, run:"
echo " sudo umount /media/usb0 /media/usb1 2>/dev/null"
echo " sudo mount -a"
fi
else
echo ""
echo "To add manually, run:"
echo " sudo nano /etc/fstab"
fi
fi
echo ""