My 5TB Seagate external drive—the one with literally years of backups— all of a sudden decided to play hide and seek with Ubuntu Linux. Windows? No problem, worked like a charm. Ubuntu? Complete radio silence.
If you’re reading this, you’re probably in the same boat. Good news: I cracked it, and it’s actually a pretty interesting problem once you dig into it.
What Went Wrong
Picture this: You plug in your external drive, hear that satisfying USB connection sound, but then… nothing. No pop-up, no drive in the file manager, nada. That was me last Sunday.
The weird part? The drive was perfectly fine. Windows could read it, write to it, everything. But Ubuntu Linux acted like it didn’t exist. Classic Linux moment, right? Wrong. Turns out, there’s actual logic behind this madness.
Let’s Get Our Hands Dirty
The first thing I did was fire up the terminal. Yeah, I know, GUI would be nice, but sometimes you gotta go old school. Here’s how the investigation went down:
Round 1: Where’s My Drive?
lsblk -f
Ran this bad boy expecting to see my drive. Got everything BUT my external drive. Internal NVMe? Check. Every snap loop known to mankind? Check. My 5TB lifesaver? MIA.
Round 2: Okay, But Is It Even Connected?
lsusb
Boom! There it was:
Bus 004 Device 002: ID 0bc2:ab8c Seagate RSS LLC One Touch w/PW
So Ubuntu could SEE the drive, it just didn’t know what to do with it. Like when you meet someone at a party and forget their name immediately—awkward, but fixable.
Round 3: What’s the Kernel Saying?
sudo dmesg | grep -i "seagate"
Kernel was like “Yeah, I see it, but ¯_(ツ)_/¯”. No errors, no warnings, just… nothing. That’s when I knew something deeper was going on.
The “Aha!” Moment
This is where things got interesting. I decided to dig deeper into the USB device info:
sudo usb-devices | grep -A 5 -B 5 "Seagate"
And there it was, staring me in the face:
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
See that Driver=(none) part? That’s the problem right there. Ubuntu knew it was a storage device, but had absolutely no clue which driver to use. It’s like having a Ferrari but no keys.
Why This Drama?
Here’s the thing most people don’t know: modern big-boy drives (we’re talking 4TB+ territory) don’t use the old USB storage protocol anymore. They’ve moved on to something called UAS—USB Attached SCSI.
Think of it this way:
- Old USB storage = Taking the stairs one at a time
- UAS = Taking the elevator
UAS is faster, smarter, and doesn’t hog your CPU like the old protocol. But here’s the kicker—Ubuntu doesn’t always load the UAS driver automatically. Why? Who knows. Linux gonna Linux.
The Fix That Actually Works
Alright, enough theory. Here’s how I got my drive back from the dead:
Step 1: Wake Up the UAS Driver
sudo modprobe uas
This basically tells Ubuntu, “Hey, remember that fancy USB driver you forgot about? Yeah, load it up.”
Step 2: Introduce Your Drive to the Driver
echo '0bc2 ab8c' | sudo tee /sys/bus/usb/drivers/uas/new_id
Translation: “Dear UAS driver, meet Seagate. Seagate, meet UAS. You two are going to be best friends.”
Step 3: Give the USB a Little Kick
sudo usbreset 0bc2:ab8c
Sometimes you just need to turn it off and on again. But fancy-like, through the terminal.
Step 4: Did It Work?
lsblk -f | grep -v loop
And just like that, my drive showed up at /media/mac/One Touch. Magic? Nope. Just Linux being Linux.
But Why Does This Even Happen?
Look, I’ve been using Linux for years, and stuff like this still catches me off guard. Here’s the deal:
It’s not a bug, it’s a… well, okay, it’s kind of a bug. But also:
- Drive manufacturers don’t always follow standards
- Linux plays it safe—if it’s not sure, it won’t load a driver
- Windows has deals with manufacturers; Linux developers reverse-engineer everything
- Your specific drive model might be too new or too weird for the default config
Make This Fix Stick (So You Don’t Have to Do This Again)
I’m lazy. I don’t want to run these commands every time I plug in my drive. Here’s how to make Ubuntu remember:
sudo nano /etc/udev/rules.d/99-seagate-uas.rules
Paste this line (yeah, it’s long and ugly, but it works):
ACTION=="add", ATTRS{idVendor}=="0bc2", ATTRS{idProduct}=="ab8c", RUN+="/sbin/modprobe uas", RUN+="/bin/sh -c 'echo 0bc2 ab8c > /sys/bus/usb/drivers/uas/new_id'"
Then reload the rules:
sudo udevadm control --reload-rules
Done. Your drive will now work every time you plug it in. You’re welcome.
Pro Tips from Someone Who’s Been There
After spending way too many late nights fighting with external drives, here’s what I’ve learned:
The USB Port Matters
Not all USB ports are created equal. That blue USB 3.0 port? Use it. The ancient USB 2.0 on the side? That’s for your mouse. Big drives need big bandwidth.
Cable Quality Is Real
That sketchy cable you got for ₹50 / $5 at the station? Yeah, throw it away. Get a decent cable. Your data deserves better.
Format Wars Are Stupid (But Real)
- exFAT: The Switzerland of file systems. Works everywhere, handles big files
- NTFS: Windows’ favorite child. Linux can read it, but you might need
ntfs-3g - ext4: Linux native. Windows will pretend it doesn’t exist
When All Else Fails
Sometimes the drive is just having a bad day. Try:
- Different USB port (seriously, this fixes 30% of problems)
- Different cable (another 20%)
- Restart (yes, even on Linux)
- Different computer (to check if it’s the drive or your system)
The Quick and Dirty Checklist
Having issues? Run through this:
- Can you see it? →
lsusb - Is there a driver? →
sudo usb-devices | grep Driver - Load UAS →
sudo modprobe uas - Tell UAS about your drive →
echo 'vendor_id product_id' | sudo tee /sys/bus/usb/drivers/uas/new_id - Reset USB →
sudo usbreset vendor_id:product_id - Check again →
lsblk
If that doesn’t work, the problem is probably:
- Dead drive (RIP) – My backup of the backup – a 4TB is in this state. I can hear the drive spinning up and then .. it just dies.
- Dead cable (easy fix)
- Dead USB port (try another)
- Filesystem corruption (time for
fsck)
What I Learned
This whole adventure taught me something: Linux isn’t trying to be difficult. It’s just really, really careful. Windows will load any driver and hope for the best. Linux wants to be absolutely sure before it touches your hardware.
Is it annoying? Sure. But it’s also why Linux servers run for years without crashing. It’s the price we pay for stability.
Plus, once you fix it, you feel like a wizard. And that’s worth something.
Your Turn
Got a similar story? Fixed it differently? Think I’m doing it wrong? Drop a comment. The best part about the Linux community is we all learn from each other’s pain… I mean, experiences.
And hey, if this saved your bacon, share it. There’s someone out there right now, at 2 AM, googling “external drive not showing ubuntu help please god why” who needs this.
The Commands You’ll Actually Use
Save this somewhere. You’ll need it again:
# See what's connected
lsusb
# Get details
sudo usb-devices | grep -A 5 -B 5 "YourDriveBrand"
# The fix
sudo modprobe uas
echo 'vendor_id product_id' | sudo tee /sys/bus/usb/drivers/uas/new_id
sudo usbreset vendor_id:product_id
# Check it worked
lsblk
That’s it. No fluff, no BS, just what works.
Tags: #Linux #Ubuntu #ExternalDrive #RealWorldFix #TechStories #LinuxLife #StorageSolutions #TechSupport #SeagateFix #UbuntuTips