Auto mounted external disk on linux (ubuntu)

computesta
Arief Siswanto
2026-05-28 12:29:05

Create a small bash script + systemd service + timer.

1. Create the check script

sudo nano /usr/local/bin/check-disk3.sh

Paste this:

#!/bin/bash

DEVICE="/dev/sdc1"
MOUNTPOINT="/mnt/disk3"
LOGFILE="/var/log/check-disk3.log"

echo "[$(date)] Checking $DEVICE" >> $LOGFILE

# Make sure mount directory exists
mkdir -p $MOUNTPOINT

# Check if mounted
if mountpoint -q $MOUNTPOINT; then
    echo "[$(date)] $MOUNTPOINT already mounted" >> $LOGFILE
    exit 0
fi

echo "[$(date)] $MOUNTPOINT is NOT mounted" >> $LOGFILE

# Try normal mount
mount $DEVICE $MOUNTPOINT

# Check again
if mountpoint -q $MOUNTPOINT; then
    echo "[$(date)] Mount success" >> $LOGFILE
    exit 0
fi

echo "[$(date)] Normal mount failed, attempting repair..." >> $LOGFILE

# Try filesystem repair
fsck -y $DEVICE >> $LOGFILE 2>&1

# Try mount again
mount $DEVICE $MOUNTPOINT

# Final verification
if mountpoint -q $MOUNTPOINT; then
    echo "[$(date)] Mount success after fsck" >> $LOGFILE
else
    echo "[$(date)] FAILED to mount $DEVICE" >> $LOGFILE
fi

Save and exit.


2. Make it executable

sudo chmod +x /usr/local/bin/check-disk3.sh

3. Create systemd service

sudo nano /etc/systemd/system/check-disk3.service

Paste:

[Unit]
Description=Check and mount /dev/sdc1

[Service]
Type=oneshot
ExecStart=/usr/local/bin/check-disk3.sh

Save.


4. Create hourly timer

sudo nano /etc/systemd/system/check-disk3.timer

Paste:

[Unit]
Description=Run disk check every hour

[Timer]
OnBootSec=2min
OnUnitActiveSec=1h
Unit=check-disk3.service

[Install]
WantedBy=timers.target

Save.


5. Reload systemd

sudo systemctl daemon-reload

6. Enable and start timer

sudo systemctl enable --now check-disk3.timer

7. Check timer status

systemctl list-timers

8. Manual test

Run manually first:

sudo systemctl start check-disk3.service

Check logs:

cat /var/log/check-disk3.log

Optional: Auto mount on boot via fstab

Get UUID:

sudo blkid /dev/sdc1

Example result:

UUID="abcd-1234"

Edit fstab:

sudo nano /etc/fstab

Add:

UUID=abcd-1234 /mnt/disk3 ext4 defaults,nofail 0 2

Replace ext4 with your actual filesystem type. This helps mount automatically during boot, while the service acts as a recovery checker if the mount disappears later.

No reply found.