Home » Questions » Computers [ Ask a new question ]

How do I figure out which /dev is a USB flash drive?

How do I figure out which /dev is a USB flash drive?

I want to mount a USB drive, two of them and I need two different mount points. Unfortunately, the Linux kernel underwent a name change and I can't figure out which /dev location is the right one. Is there a way to look through dmesg or /proc or somewhere else to find out which device node is a USB drive.

Asked by: Guest | Views: 292
Total answers/comments: 5
bert [Entry]

Easiest way: Look at the output of dmesg after connecting the USB device. It should show you what /dev node was assigned to it.
bert [Entry]

"As long as you are running udev, you can do this easily by referencing /dev/disk/by-id/usb-manufacturername_serialnumber. These appear as symbolic links which you can either directly reference within your fstab, or which you can dereference using readlink -e to determine the associated block device.

Here's a real world example. On my machine, I have 3 USB hard drives connected. These each show up in /dev/disk/by-id with unique serial numbers (although they share a common manufacturer string). I have created symbolic links to each of these three unique entries, and can now quickly determine which drive is which (and which device is associated with each drive) by running readlink -e linkname. For example, running readlink -e /root/disk2 on my machine currently displays ""/dev/sde"", while readlink -e /root/disk3 produces no output whatsoever."
bert [Entry]

"sudo fdisk -l

And just analyse the result."
"sudo fdisk -l

And just analyse the result."
bert [Entry]

"/dev/disk/by-* is the easiest way in this case, if for some reason you want to make life more interesting you can use HAL.

To list all devices you use:

hal-device

To get a specific property you use (this will return /dev/sd* on a USB storage device):

hal-get-property --udi $UDI --key block.device

There is also:

hal-find-by-capability
hal-find-by-property

If you want to make it even more complicated you can relatively easy write yourself a HAL based auto mounter, which can be quite handy if you want to automate things completly.

And just for completeness there are also:

lsusb -v
lshw

Which provides some general information about USB and your hardware in general."
bert [Entry]

"Use

ls -l /dev/disk/by-id/usb*

Under the default udev rules, that will show you most usb devices and it will show you the symlink to their block-device name on the system.

If that doesn't work, look at /dev/disk/by-id/ directly."