Novell Home

Manually Mounting a USB Flash Drive in Linux

Novell Cool Solutions: Feature
By Jason Jones

Rate This Page

Reader Rating  stars  from 75 ratings

Digg This - Slashdot This

Posted: 16 Feb 2005
 

*note* Before you begin trying to do this manually, make sure Linux has not all ready mounted your drive to your Desktop automatically.

There are two ways to manually mount your flash drive in Linux.

The first way we'll describe should be used if you are going to rarely mount your drive, or only mount it once.

The second way we'll explain should be used if you plan on using your flash drive on a more regular basis.

procedure to manually mount drive once

Plug in the flash drive into one of the USB ports on your computer.

These usually are found on the back-side of your computer. Some newer models also have some ports on the front panel.

After you've plugged it in, you'll want to open a terminal window and become the "root" user. This user is the only one which can access the commands to manually mount your drive. To become the root user, type in the following commands.

[jason@linux:~> su
Password:
linux:/home/jason #


When it asks for your password, enter the root password. (You won't see any typing on the screen when you enter your password. This is normal, and makes your computer more secure.)

After you've become root, enter the following command into the same terminal window to see if your computer has recognized the flash drive you plugged in.

linux:/home/jason # lsusb
Bus 002 Device 003: ID 08ec:0010 M-Systems Flash Disk Pioneers DiskOnKey
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
linux:/home/jason #


This information tells me that the system recognized one USB device named "M-Systems Flash Disk Pioneers DiskOnKey" That is good. Yours will most likely have a different name, so look for the name of your flash disk's manufacturer in the output.

*note* My system only has one USB device plugged in. If you have multiple devices plugged in, it will recognize them as well as your flash device, so your output will most likely look very differently than mine.

If your output doesn't list anything that looks like your flash drive, I'd recommend trying different USB ports on your computer to see if it can get listed. You must get your computer to recognize your flash drive in order to continue with this tutorial.

After successful recognition of your USB drive, you'll want to create a directory where your USB drive will be mounted. I entered the following commands into the same terminal window to do this.

linux:/home/jason # cd Desktop/
linux:/home/jason/Desktop # mkdir flash
linux:/home/jason/Desktop #
  • The "cd Desktop" command tells the computer to go into the Desktop directory (this is where I want to make the directory, so I can access the flash drive directly from my Desktop)
  • The "mkdir flash" command makes a directory named "flash" which we're going to use to mount the flash drive.
With that done, we need to get the appropriate device which is attached to your flash drive.

To do this, simply issue the following command in the same terminal window.

dmesg | grep -i "SCSI device"

linux:/home/jason/Desktop # dmesg | grep -i "SCSI device"
SCSI device sda: 31520 512-byte hdwr sectors (16 MB)
SCSI device sda: 31520 512-byte hdwr sectors (16 MB)
SCSI device sda: 31520 512-byte hdwr sectors (16 MB)
linux:/home/jason/Desktop #


As you can see, there are three lines of output, but they are all the same. The information we're interested in is the output immediately after "SCSI device". On my machine it's sda.

This is the device we're looking for. On most machines this will be the case. If you've got a newer machine with an SATA drive or a SCSI drive in it, the output will most likely be quite different. The words you'll be looking for will probably be sdb or sdc. To make sure you select the correct device, simply look for some information that describes your flash drive. For example, my flash drive has 16 megabytes of storage on it. On the output, the words (16 MB) would be a good indicator of that being my flash drive.

When you've found the correct device (sda, sdb, sdc, etc...) enter the following command into the same terminal window:

linux:/home/jason/Desktop # pwd
/home/jason/Desktop
linux:/home/jason/Desktop # mount -t vfat -o uid=jason,gid=users /dev/sda /home/jason/Desktop/flash
linux:/home/jason/Desktop #


There's quite a bit there, so let's break it down.
  • "pwd" is used to see where the path is to your Desktop, so we can accurately mount the flash drive. You'll use the line after it later.
  • The next command is the command to mount your flash drive to the flash directory. Let's break that down so we can understand it.
    • "mount" is the command used.
    • "-t vfat" tells the command to mount the "vfat" filesystem (which most flash drives are).
    • "-o uid=jason,gid=users" makes the mount accessible by the "jason" user. You'll want to change this to the user with which you use to log in. Example: if you use the username "jhamilton" to log in, you'd use "-o uid=jhamilton,gid=users" instead.
    • "/dev/sda" points to the correct device. Make sure you use the same device you found earlier. Example: If you found your correct device to be "sdc" earlier, you'd use "/dev/sdc" instead.
    • "/home/jason/Desktop/flash" is the directory to which you want the device to be mounted. You'll want to use the results of the "pwd" command here. Example: If the line after the "pwd" command was "/home/jhamilton/Desktop" you'd use "/home/jhamilton/Desktop/flash" instead.
Your flash drive is now mounted and ready to use. If you followed the instructions exactly, there is a new folder on your desktop named "flash" which can be used to put files, images, music, or anything else you want!

When you're done copying, simply pop out the drive and you're on your way.

procedure to manually mount drive for repeated use

This is the way you should mount your drive if you plan on using it often.

Plug in the flash drive into one of the USB ports on your computer.

These usually are found on the back-side of your computer. Some newer models also have some ports on the front panel.

After you've plugged it in, you'll want to open a terminal window and become the "root" user. This user is the only one which can access the commands to manually mount your drive. To become the root user, type in the following commands.

[jason@linux:~> su
Password:
linux:/home/jason #


When it asks for your password, enter the root password. (You won't see any typing on the screen when you enter your password. This is normal, and makes your computer more secure.)

After you've become root, enter the following command into the same terminal window to see if your computer has recognized the flash drive you plugged in.

linux:/home/jason # lsusb
Bus 002 Device 003: ID 08ec:0010 M-Systems Flash Disk Pioneers DiskOnKey
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
linux:/home/jason #


This information tells me that the system recognized one USB device named "M-Systems Flash Disk Pioneers DiskOnKey" That is good. Yours will most likely have a different name, so look for the name of your flash disk's manufacturer or name in the output.

*note* My system only has one USB device plugged in. If you have multiple devices plugged in, it will recognize them as well as your flash device, so your output will most likely look very differently than mine.

If your output doesn't list anything that looks like your flash drive, I'd recommend trying different USB ports on your computer to see if it can get listed. You must get your computer to recognize your flash drive in order to continue with this tutorial.

After successful recognition of your USB drive, you'll want to create a directory where your USB drive will be mounted. I entered the following commands into the same terminal window to do this.

linux:/home/jason # cd Desktop/
linux:/home/jason/Desktop # mkdir flash
linux:/home/jason/Desktop #
  • The "cd Desktop" command tells the computer to go into the Desktop directory (this is where I want to make the directory, so I can access the flash drive directly from my Desktop)
  • The "mkdir flash" command makes a directory named "flash" which we're going to use to mount the flash drive.
With that done, we need to get the appropriate device which is attached to your flash drive.

To do this, simply issue the following command in the same terminal window.

dmesg | grep -i "SCSI device"

linux:/home/jason/Desktop # dmesg | grep -i "SCSI device"
SCSI device sda: 31520 512-byte hdwr sectors (16 MB)
SCSI device sda: 31520 512-byte hdwr sectors (16 MB)
SCSI device sda: 31520 512-byte hdwr sectors (16 MB)
linux:/home/jason/Desktop #


As you can see, there are three lines of output, but they are all the same. The information we're interested in is the output immediately after "SCSI device". On my machine it's sda.

This is the device we're looking for. On most machines this will be the case. If you've got a newer machine with an SATA drive or a SCSI drive in it, the output will most likely be quite different. The words you'll be looking for will probably be sdb or sdc. To make sure you select the correct device, simply look for some information that describes your flash drive. For example, my flash drive has 16 megabytes of storage on it. On the output, the words (16 MB) would be a good indicator of that being my flash drive.

Now, enter the simple command as follows:

linux:/home/jason/Desktop # pwd
/home/jason/Desktop
linux:/home/jason/Desktop #


This command is simply to tell us what the path is to your Desktop. We'll be using this later.

After that is done, the first thing to do is make a backup of a *very* important file named "/etc/fstab" by issuing the following command:

linux:/home/jason # cp /etc/fstab /etc/fstab.bak
linux:/home/jason #


Now, we're going to need to tell your computer to set itself up to mount your flash drive every time your computer is turned on. To do this you'll need to add something like the following line to the "/etc/fstab" file. (yours might vary a little bit depending on the information you've received previously)

/dev/sda /home/jason/Desktop/flash vfat users,noauto,uid=jason,gid=users 0 0

Some of the information might be different for you. If you didn't find sda for your device before, you'll have to enter the appropriate device. Example: If you found "sdc" for your device, you would change the "/dev/sda" line to "/dev/sdc".

You will also change the /home/jason/Desktop/flash line to the appropriate directory. Example: If the line after the "pwd" command was "/home/jhamilton/Desktop" you'd use "/home/jhamilton/Desktop/flash" instead of "/home/jason/Desktop/flash".

Also, you'll need to change the "uid=jason" line to reflect the username you enter when you start Linux. Example: If you type in "JHamilton" when you log into NLD, you'll want to change "uid=jason" to "uid=JHamilton".

With that, you should be good to go.

Now we're gonna enter the command to alter the /etc/fstab file. To do this issue the following command in your terminal window:

*note* Be sure to use your own info from above!

linux:/home/jason/Desktop # echo "/dev/sda /home/jason/Desktop/flash vfat users,noauto,uid=jason,gid=users 0 0" >> /etc/fstab
linux:/home/jason/Desktop #


Now your /etc/fstab file has been altered, and you're ready to mount your flash drive.

to do so, simply enter the following commands:

linux:/home/jason/Desktop # exit
linux:/home/jason/Desktop # mount flash
linux:/home/jason/Desktop #


And your flash drive should be mounted! You can now drag 'n' drop things into your "flash" folder on your Desktop!

When you turn your computer off, in order to mount it again, simply go to your Desktop directory in a new terminal by typing "cd Desktop" and then type in "mount flash" and it'll be mounted again.

Reader Comments

  • Good article. Works for me though I figured it out already. Can't believe in 2005 still have to do this for a USB devicce that I carry around and plug/unplug. Giotta be a better way. No way Linux/Suse will take over desktoip until they get things like this automated.
  • In Xubuntu's recovery/alternative boot, I needed to use "sda1" instead of "sda", or else mount reported an "Invalid argument"
  • Very usefull, but don't tell me in 2005 users still can't use a gui for this and are forced to use the shell. No wonder SuSE and other Linux distro's are still not massmaket accepted by normal home users.
  • Good article, easy to understand, but isn't there an update from SuSE that once installed, allows flash drives to be automatically mounted?
  • On SuSE 9.2 Pro this works once after a reboot, then USB access is dead. "lsub" hangs, mount hangs.
  • Most USB devices are plug-n-play. When I plug my memory stick into the computer (SuSE 9.2) the OS "sees" it and mounts it. If there is a problem, it comes when I use two memory sticks, one after the other. But even there, a new subdirectory is created for that second memory stick. dj tuchler
  • Right : why not mention the"automount" facility, which "makes appear" any USB key like on Windows, especially when it is already available on SUSE (it is the case on my SUSE 8.2 with KDE desktop). In this case, introducing command line for normal user is like shooting in the foot.
  • Great article. I think my grandmother could have figured out how to use a USB Flash drive with that article.
  • Oh yes, it's actually a proper hint but in fact, it only disguises the inability (or lack of interest) of the developers to implement working drivers into Linux (especially SuSE: "plug in and use your data at once"....). I spent lots of most annoying hours trying to get different memory sticks running - but mostly unsuccessful Arnd Graf-Beilfuss
  • For situations where hotplug is not used, it simpler to use sg_map -i to determine which /dev special file the the USB device has been assigned to
  • awesome
  • For someone using KDE on SuSE 10.1, all this advice is unnecessary. The USB drive should automagically show up in KDE's "My Computer" folder, much as it does in Windows (only KDE's version is actually clearer than the Windows version.).
  • Very useful. FYI, pretty much every current Linux distro automagically mounts your USB drive and makes it available withing the GUI, but older systems are still out there (which is why I needed to look this up)>
  • newbie went bonkers looking for this info googling all over the place.... this is the one and only sensible page on this subject
  • Excellent! Exactly what I was looking for. Obviously my file server has no X but I need to connect a flash drive from time to time.
  • Exactly the info I needed Easy to understand It worked Thanks very much
  • Extemely helpful page, thanks. I had an external HDD on which I had made 2 partitions. Unfortunately I was not being able to mount it in Mandriva. The problem was that I was using /dev/sdc as suggested on this page, I had to choose /dev/sdc5 for one partition and /dev/sdc6 for the other one. The number after the "sdc" can be obtained by "dmesg | grep -i "SCSI"; which will have something like p1:
  • Exactly what i have been looking for. Some of us still love the terminal
  • Excellent - just what I was looking for.
  • thanks a lot, that's what i wanted to know, i'm amazed!!!
  • On Redhat the device is /dev/sda1 rather than /dev/sda.
  • Excellent! Just what I was looking for, and easy to understand for a mere man like me. Thanks a lot.
  • Use use "fdisk -l /dev/sda" to list the partitons and mount the correct partition. "dmesg | grep ..." seems to list only the drive and doesn't work.

Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

Novell® Making IT Work As One

© 2009 Novell, Inc. All Rights Reserved.