51

I am running a Ubuntu 11 guest on a Windows XP host with VMware. I want to format an SD card in Ubuntu, but I can't figure out which /dev/xxx device the SD card is.

I plug the card into the built-in socket of my laptop. I "safely remove" the device in Windows. Then, I "connect" the PCMCIA reader in VMware. Now, I was supposed to see a new device like /dev/sdx, but it doesn't appear.

How can I find what the name of my USB device's name and mount it?

/var/log/message is empty.

Here is the output of dmesg:

[ 5268.927308] usb 2-1: new full speed USB device number 12 using uhci_hcd

And, here are the last lines of /var/log/syslog:

Oct 31 18:51:21 ubuntu kernel: [ 5268.927308] usb 2-1: new full speed USB device number 12 using uhci_hcd

Oct 31 18:51:21 ubuntu mtp-probe: checking bus 2, device 12: "/sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1"

Oct 31 18:51:21 ubuntu mtp-probe: bus: 2, device: 12 was not an MTP device

2

13 Answers 13

72

Try lsblk. This is the output from my current setup:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0 195.3G  0 part 
├─sda2   8:2    0     4G  0 part [SWAP]
└─sda3   8:3    0 266.5G  0 part /
sdb      8:16   0 465.8G  0 disk 
└─sdb1   8:17   0 460.8G  0 part /home
sr0     11:0    1  1024M  0 rom  

I'm using Ubuntu 12.10.

1
  • For Mac users: >> diskutil list – user185160 May 5 at 16:54
27
ls -1 /dev > ~/before.txt

plug it in, then

ls -1 /dev > ~/after.txt

diff ~/before.txt ~/after.txt
1
  • 2
    Like a true programmer solution. +1 – GeneCode Aug 10 '18 at 0:15
3

lsblk seems to work:

rishi@rishi-Inspiron-1018:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 232.9G  0 disk 
├─sda1   8:1    0 230.9G  0 part /
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0     2G  0 part [SWAP]
sdb      8:16   1   7.4G  0 disk 
└─sdb1   8:17   1   7.4G  0 part /media/3765-3233

So now I know my SD card is in /dev/sdb1.

2
  • Suspect. When using Debian live, I saw sdc (my usb device) listed in lsblk output but not in /dev. – user982671 Oct 28 '14 at 18:47
  • 1
    It'll appear in /dev only if udev is present (or an equivalent), and as a rule to create the node in it. Does not mean it can't be used, you can create the node where you want, since you have the Major/Minor number in lsblk. – xryl669 Jun 3 '16 at 11:34
2

Try using lsusb to see if the sd card reader is picked up in virtualbox. Another option would be to use palimpsest (also known by its menu entry, Disk Utility.)

Don't be afraid to use the GUI programs - they do work! If palimpsest sees your device, it will tell you the device node, so you can use the CLI utilities.

1

If it has a label use /dev/disk/by-label/[USB label] to format the disk

EDIT: Try /dev/disk/by-id/usb*

3
  • no, it doesn't have :( – mustafa Oct 31 '11 at 17:30
  • aren't there any other methods? – mustafa Oct 31 '11 at 20:35
  • USBs are usually /dev/sb followed by a number, or something along thoses lines if I'm not completely correct, it might be /dev/sdb followed by a number but not normally /dev/sda, so if there's only one plugged in that should do it – Will03uk Oct 31 '11 at 23:32
1

Open a terminal and run ls /dev before you enable that USB device in vmware. Run ls /dev/ again after you enabled it and look for what pops up

1
  • 1
    this is the most painful way of doing it, not to mention, many devices have numerous instances in /dev/ once they get initialized. – j0h Dec 9 '16 at 2:19
1

You could use bootiso utility, which has a flag to do exactly that:

> bootiso -l
Listing USB drives available in your system:
NAME                HOTPLUG   SIZE STATE   TYPE
sdd                       1  14,7G running disk
sde                       1   961M running disk

To install it:

curl -L https://rawgit.com/jsamr/bootiso/latest/bootiso -O
chmod +x bootiso
0

sudo fdisk -l will list the partition table on all available hard disks; it uses the Linux naming scheme for disks, handy for troubleshooting and remembering which partition is where.

Use man fdisk for more information on the parameters of fdisk.

0
# dir /dev/disk/by-path/
total 0
drwxr-xr-x. 2 root root 180 Aug 26 15:51 .
drwxr-xr-x. 6 root root 120 Aug 25 17:20 ..
lrwxrwxrwx. 1 root root   9 Aug 25 17:12 pci-0000:00:03.2-usb-0:3:1.0-scsi-0:0:0:0 -> ../../sr0
lrwxrwxrwx. 1 root root   9 Aug 26 15:51 pci-0000:00:03.2-usb-0:4.1.1:1.0-scsi-0:0:0:0 -> ../../sdb
lrwxrwxrwx. 1 root root  10 Aug 26 15:51 pci-0000:00:03.2-usb-0:4.1.1:1.0-scsi-0:0:0:0-part1 -> ../../sdb1
lrwxrwxrwx. 1 root root  10 Aug 26 15:51 pci-0000:00:03.2-usb-0:4.1.1:1.0-scsi-0:0:0:0-part2 -> ../../sdb2
lrwxrwxrwx. 1 root root  10 Aug 26 15:51 pci-0000:00:03.2-usb-0:4.1.1:1.0-scsi-0:0:0:0-part3 -> ../../sdb3
lrwxrwxrwx. 1 root root   9 Aug 25 17:12 pci-0000:07:00.0-scsi-0:2:0:0 -> ../../sda
lrwxrwxrwx. 1 root root  10 Aug 25 17:12 pci-0000:07:00.0-scsi-0:2:0:0-part1 -> ../../sda1

and

# dir /dev/disk/by-id/
total 0
drwxr-xr-x. 2 root root 280 Aug 27 01:20 .
drwxr-xr-x. 6 root root 120 Aug 25 17:20 ..
lrwxrwxrwx. 1 root root  10 Aug 25 17:20 dm-name-VG_RAID_201010081812-LV_RAID_201010081617 -> ../../dm-0
lrwxrwxrwx. 1 root root  10 Aug 27 01:20 dm-name-top4 -> ../../dm-2
lrwxrwxrwx. 1 root root  10 Aug 25 17:20 dm-uuid-LVM-XCQXKaPB3snmEgx9ZNGRssIxGmJPje6TXKMLyop5meKH3x3KiJ1H1q3aoqgXpci1 -> ../../dm-0
lrwxrwxrwx. 1 root root   9 Aug 25 17:12 scsi-36842b2b04963f900144207e1091bf90c -> ../../sda
lrwxrwxrwx. 1 root root  10 Aug 25 17:12 scsi-36842b2b04963f900144207e1091bf90c-part1 -> ../../sda1
lrwxrwxrwx. 1 root root   9 Aug 25 17:12 usb-ASUS_SBW-06D2X-U_3248433031354B4A30303030-0:0 -> ../../sr0
lrwxrwxrwx. 1 root root   9 Aug 26 15:51 usb-ST916041_2AS_579FFFFFFFFF-0:0 -> ../../sdb
lrwxrwxrwx. 1 root root  10 Aug 26 15:51 usb-ST916041_2AS_579FFFFFFFFF-0:0-part1 -> ../../sdb1
lrwxrwxrwx. 1 root root  10 Aug 26 15:51 usb-ST916041_2AS_579FFFFFFFFF-0:0-part2 -> ../../sdb2
lrwxrwxrwx. 1 root root  10 Aug 26 15:51 usb-ST916041_2AS_579FFFFFFFFF-0:0-part3 -> ../../sdb3
lrwxrwxrwx. 1 root root   9 Aug 25 17:12 wwn-0x6842b2b04963f900144207e1091bf90c -> ../../sda
lrwxrwxrwx. 1 root root  10 Aug 25 17:12 wwn-0x6842b2b04963f900144207e1091bf90c-part1 -> ../../sda1
0

I am new to linux, but so far I have found 3 ways to find out a device name:

1) lsblk (already mentioned above, lists device names and the folder they are mounted on)

2) sudo fdisk -l (lists device names, here you can also see the names of partitions)

3) dmesg immediately after you have inserted an usb stick (a lot of output, don't really know yet what they are for, but the last entries show the name of the inserted name somewhere)

0

It is important to differentiate between two scenarios:

  1. The USB stick is plugged in, and recognized and accessible in the file browser, then it got automatically mounted;
  2. After the device was plugged in and got mounted, you have ejected/unmounted the device, and now it is safe to unplug.

In the first case, using lsblk will list all the mounted devices. Under the MOUNTPOINT column you should see your USB device listed being mounted somewhere under /run/media/.

In the second case (after you have ejected the device), even though lsblk will not list anything, the dev file should be still the same as when it was mounted. You can verify it is still there with lsblk --all. But as it is unmounted now, the MOUNTPOINT column will be empty.

For example, suppose you want to dd an iso image to a USB stick. First plug in the stick, then look with lsblk for the associated dev file (based on the MOUNTPOINT), then unmount/eject the mounted device and use dd if=stuff.iso of=/dev/sdX to write your image. These steps are important, as it is not a good idea to overwrite a mounted device.

0

For types like me, I strongly suggest adding:

status=progress

to dd's list of arguments, so you can see it's working

1
  • This has no effect or value to finding the /dev name of a device. – linuxdev2013 Dec 6 '20 at 11:26
0

Using lsblk with some custom output columns I was able to find a more precise solution. See:

$ lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,MOUNTPOINT,VENDOR,HOTPLUG
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT                     VENDOR   HOTPLUG
sda      8:0    0 223.6G  0 disk                                ATA            0
├─sda1   8:1    0   512M  0 part /boot/efi                                     0
└─sda2   8:2    0 223.1G  0 part /                                             0
sdb      8:16   1 238.3G  0 disk                                SanDisk        1
└─sdb1   8:17   1 238.3G  0 part /media/my-host/AAAA-BBBB                      1
sdc      8:32   1  59.5G  0 disk                                SanDisk        1
└─sdc1   8:33   1  59.5G  0 part /media/my-host/AAAA-BBBB                      1

Using lsblk -h it's possible to see all available output columns, and I added the VENDOR and HOTPLUG columns.

Looking at my output it's easy to see that I have 2 HOTPLUG devices (usb devices in my case) from SanDisk

Tested on Ubuntu 18.04.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.