Fix 'mount: /mnt: special device /dev/sdb1 does not exist'
Gets you past the 'special device does not exist' error when mounting drives on Linux. Covers wrong device names, missing drivers, and partition table issues.
When This Error Hits
You plug in an external USB drive, fire up the terminal, and type:
sudo mount /dev/sdb1 /mnt
And you get slapped with:
mount: /mnt: special device /dev/sdb1 does not exist.
This usually happens right after inserting a USB stick, an SD card, or a SATA drive that you expect to show up as /dev/sdb1. Maybe you've been swapping drives a lot and the naming got scrambled. Or you're on a laptop that just came out of suspend mode and the kernel lost track of the device.
I've seen this on Ubuntu 22.04, Fedora 38, and even on a crusty old CentOS 7 server. The fix isn't complicated, but you need to know where to look.
Root Cause: It's Not There Yet
The error is brutally honest: the device file /dev/sdb1 doesn't exist. Could be one of three things:
- Wrong device name — you assumed
sdb1, but the system actually named itsdc1orsda1. - Missing kernel driver — the USB mass storage driver isn't loaded, so the device never appears.
- Hardware not detected — bad cable, dead port, or the drive itself isn't spinning up.
I'll walk you through each one.
Step 1: Check What's Actually Connected
Run this command to list all block devices:
lsblk
You'll see something like:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 512M 0 part /boot
├─sda2 8:2 0 237.9G 0 part /
sdb 8:16 0 14.9G 0 disk
└─sdb1 8:17 0 14.9G 0 part
If you don't see sdb or any new device, skip to Step 3. If you see sdc or sdd, your device got a different letter. Use that instead:
sudo mount /dev/sdc1 /mnt
Also check /dev/disk/by-id/ for more stable names:
ls -l /dev/disk/by-id/ | grep -v loop
Pick the one ending in -part1 — it won't change when you plug the drive into a different port.
Step 2: Try a Different Port (Seriously)
USB ports on same hub share the same controller. If one port is flaky, try the port on the other side of the laptop, or a port directly on the motherboard (not the front panel of a desktop). I've fixed dozens of "no device" issues just by moving from a USB 3.0 port to a USB 2.0 port.
After swapping, run lsblk again. If it shows up now, you found the culprit — bad port or hub.
Step 3: Load the USB Storage Module
If lsblk shows nothing and you've tried different ports, the kernel module might be missing. Check it:
lsmod | grep usb_storage
If you see nothing, load it manually:
sudo modprobe usb-storage
Then re-run lsblk. On older kernels (pre-3.x), you might instead need usbhid or ehci_hcd. On modern distros, usb_storage covers most mass storage devices.
If the module loads but the device still doesn't appear, check kernel messages:
dmesg | tail -20
Look for lines like usb 2-1: new high-speed USB device number 5 or sd 6:0:0:0: [sdb] No Caching mode page found. If you see device descriptor read/64, error -110, that means the drive itself isn't responding — try a powered USB hub or a different cable.
Step 4: Check for Partitions (The Sneaky One)
Sometimes the device appears in lsblk but has no partitions. You'll see just sdb without sdb1. That means the drive is raw (no partition table) or the partition table is corrupt. Run:
sudo fdisk -l /dev/sdb
If it says Disk /dev/sdb doesn't contain a valid partition table, you can't mount a partition — there's nothing to mount. In that case, you'd need to create a partition first (that's a separate article). But if you expected an existing filesystem, try mounting the whole disk:
sudo mount /dev/sdb /mnt
Some external drives (especially older thumb drives) present the filesystem directly on the disk, not a partition. It's worth a shot.
Still Failing? Check These
- Power delivery — USB 3.0 ports can deliver 900mA. Some external 2.5" drives need 500mA but older USB 2.0 ports only give 500mA. Use a powered hub.
- Filesystem support — NTFS drives need
ntfs-3ginstalled. exFAT needsexfat-utilsorfuse-exfat. If the kernel doesn't have the driver,mountmay fail silently or with a different error. - Read-only media — Some SD cards have a physical lock switch. Flip it.
- VM passthrough — If you're in a virtual machine (VirtualBox, VMware), make sure the USB device is attached to the guest, not the host. In VirtualBox, click Devices > USB > select your device.
If none of that works, the drive itself might be dead. Try it on another computer. If it also fails there, replace it.
Was this solution helpful?