I have an external USB drive that is normally assigned to /dev/sdc1 and mounted at /media2 when the system starts.. But when the laptop is bumped, it disconnects, and then /media2 is unreachable. Furthermore, the system then re-mounts it as /dev/sdd1 instead of /dev/sdc1 so even if you have a script to remount it manually, it won’t work. Using systemd under Fedora 36, I was able to auto-re-mount it as /media2 even if it’s disconnected an re-connected. Here is how:
1) Find the UUID of the drive..
and note the UUID of your drive. We will need this later on.
2) Learn the vendor and product ID’s of your USB drive.
Plug in your USB drive and run this. From the long list, fish out your USB drive’s line:
Bus 001 Device 009: ID 1f75:0621 Innostor Technology Corporation IS621 SATA Storage Controller
In my case, the 1f75 is the vendor ID, and 0621 is the product ID.
3) Now create a new UDEV rule — this gets executed when the USB is attached:
You need to change the idVendor and idProduct to the ones you found in step 2. Likewise you can give it a better filename 🙂 I like to keep my changes obvious so I remember it later on.
4) Write the systemd service
Now create a file like this:
# nano /etc/systemd/system/remount-media2.service
It should contain:
5) Creating the executable
Now we need to create the actual script that will be run every time that USB is added to the system. Replace the UUID you see below to what your drive is.. Mine looks like this, you can change it to anything you like:
echo "Remount-media2 running" >> /var/log/remount-media2.log
umount -f /dev/sdc1
umount -f /dev/sdd1
mount -o rw,noexec,nosuid,nodev,sync,data=ordered UUID="daa01b07-430d-40f0-8fa6-4e0a83e856c1" /media2
That’s it! Now reboot your computer and check the /var/log/remount-media2.log file.. try unplugging your drive and re-plugging it back.. a new line should be added to that log file, and the drive should be remounted to the same path.