As a newbie, one of the many things you should master in Linux is identification of devices attached to your system. It may be your computer’s hard disk, an external hard drive or removable media such USB drive or SD Memory card.
Using USB drives for file transfer is so common today, and for those (new Linux users) who prefer to use the command line, learning the different ways to identify a USB device name is very important, when you need to format it.
Suggested Read: 3 Ways to Delete All Files in a Directory
Once you attach a device to your system such as a USB, especially on a desktop, it is automatically mounted to a given directory, normally under /media/username/device-label and you can then access the files in it from that directory. However, this is not the case with a server where you have to manually mount a device and specify its mount point.
Linux identifies devices using special device files stored in /dev
directory. Some of the files you will find in this directory include /dev/sda
or /dev/hda
which represents your first master drive, each partition will be represented by a number such as /dev/sda1
or /dev/hda1
for the first partition and so on.
$ ls /dev/sda*
Now let’s find out device names using some different command-line tools as shown:
Find Out Plugged USB Device Name Using df Command
To view each device attached to your system as well as its mount point, you can use the df command (checks Linux disk space utilization) as shown in the image below:
$ df -h
Use lsblk Command to Find USB Device Name
You can also use the lsblk command (list block devices) which lists all block devices attached to your system like so:
$ lsblk
Identify USB Device Name with fdisk Utility
fdisk is a powerful utility which prints out the partition table on all your block devices, a USB drive inclusive, you can run it will root privileges as follows:
$ sudo fdisk -l
Determine USB Device Name with dmesg Command
dmesg is an important command that prints or controls the kernel ring buffer, a data structure which stores information about the kernel’s operations.
Run the command below to view kernel operation messages which will as well print information about your USB device:
$ dmesg
That is all for now, in this article, we have covered different approaches of how to find out a USB device name from the command line. You can also share with us any other methods for the same purpose or perhaps offer us your thoughts about the article via the response section below.
the only useful tip is to look at dmesg.
When i plug in USB device in Linux, its not detecting anything. Can we have solution for this?
I still have no idea how to make sure by winchester external drive is the right one. I thought I had it and then formatted my main computer drive by mistake. That was a problem.
@Jim
You can always identify drives or partitions by their file system type, size as well mount points, however, taking some time to understand naming of storage media under /dev virtual file system will help you avoid such mistakes in the future.
What I need is a name like /dev/somename for a device that is NOT a mass storage device. No luck yet.
I did try lsusb, ls /dev/*, df -h, lsblk, sudo fdisk -l.
These are all for mass storage devices like memory sticks, camera card readers or external HD
Then I tried also usb-devices which lists other devices too, like mouse, printer etc, But it gives some bus number and some device number, no /dev name
The reason is that I tried to install the “Samsung unified linux driver” which asks me for the device name of my printer. Unfortunately the names it proposes are crap since they do not exist on my machine !
They propose /dev/mft4 up to /dev/mft11. None of these do exist…
I let it do with /dev/mft4 with a bad presentiment.
So finally the installation software affirmed that the driver has been successfully installed and when I click on “testprint” it says that the device can not be found. Of course…
Still no solution in sight !
@Daniel
Try to contact the developers of Samsung unified linux driver for any assistance. However, once we find a solution, we will share it with you.
Some of us use external USB-connected drives as system-wide storage. I, for one, would like to mount those file systems elsewhere than /media/{username}. Also, I’d like to use a standard name for some “media” drives instead of a changing label or UUID identifier.
For example, the flash storage from my digital camera, I’d like to mount as “…/camera” regardless of the label/UUID.
Consider an article that explains how to accomplish that.
@Dan St-Andre
We’ll work on an article concerning such a scenario. Thanks for the feedback.
What about USB devices that are not for data storage? Cameras, humidity sensors, A-D converters, all kinds of tools for monitoring the physical world.
@Joe
Very good question, as of now, we can not tell how that can be done, since we have not dealt with the devices you are talking about. However, we will definitely look for more information concerning this question and find relevant ways or command line tools for listing or identifying such(Cameras, humidity sensors, A-D converters, all kinds of tools for monitoring the physical world) USB devices.
Thanks for getting in touch.
consider ‘lsusb {options}’
@Dan St-Andre
Cool, we’ll test this for the above purpose. Thanks.
We can also use lsblk and parted.
Fix typo: lsblk => blkid
Typo noted, we shall check out blkid and include it in the article. Many thanks for the info.
@Ren
lsblk has been included in the article, we shall test parted and include it in the article as well.Thanks for the useful feedback.
This commands listed will only deal with block devices.
For simplicity and to find ALL USB devices try “lsusb -v”. This will tell you everything you need to know about any USB device.
@Bruce
lsusb -v is a good command, however, it can work well for advanced users. Newbies may not find its output easy to understand, but it offers more in-depth information about USB devices. Above all. thanks for informing us, we will add it to the list above.