USB storage devices
This document describes how to use the popular USB memory sticks with Linux. However, it is also valid for other devices such as digital cameras that act as if they were just a USB storage device.
If you have an up-to-date system with the standard Arch kernel and a modern Desktop environment your device should just show up on your desktop, with no need to open a console.
Auto-mounting with udisks
This is the easiest and most frequently used method. It is used by many desktop environments, but can be used separately too.
See Udisks for detailed information, including list of mount helpers.
Manual mounting
Getting a kernel that supports usb_storage
If you do not use a custom-made kernel, you are ready to go, for all Arch Linux stock kernels are properly configured. If you do use a custom-made kernel, ensure it is compiled with SCSI-Support, SCSI-Disk-Support and usb_storage. If you use the latest udev, you may just plug your device in and the system will automatically load all necessary kernel modules.
Identifying device
The first thing one needs to access a storage device is its identifier assigned by kernel. See fstab#Identifying file systems for details.
lsblk -f
(explained in the linked article) when the USB device is connected and when it is unconnected.Mounting USB memory
You need to create the directory in which you are going to mount the device:
# mkdir /mnt/usbstick
As root
Mount the device as root with this command (do not forget to replace device_node by the path you found e.g. /dev/sdbX
):
# mount device_node /mnt/usbstick
or
# mount -U UUID /mnt/usbstick
If mount
does not recognize the file system of the device you can try to use the -t
argument, see mount(8) for details. If mounting does not work, you can try to recreate the file system or even repartition the disk.
Allow writing by regular users
If you want non-root users to be able to write to the USB stick, you can issue the following command:
# mount -o gid=users,fmask=113,dmask=002 /dev/sda1 /mnt/usbstick
If it does not work, make sure that the file system is mountable and writable as root, see the previous section for details.
As normal user with fstab
See FAT#Writing to FAT32 as normal user if you want normal user to do the mount/unmount action.
Mount tools
Multiple mount tools facilitate mounting as a regular user.
Troubleshooting
No USB storage devices are acknowledged by the system
If you have connected your USB storage device to the computer and it is not listed by lsblk or dmesg, ensure that your BIOS has both XHCI Handoff and EHCI Handoff enabled.
USB device detected but not mountable
If you recently upgraded you kernel, the modules for USB storage for your currently running kernel were removed and replaced with modules for the newly installed kernel. These modules will not be loaded until you reboot and run the new kernel or downgrade the kernel package to one which corresponds with kernel version you are currently running.
Device not shutting down after unmounting all partitions
Failure to power off a device might result in:
- a hard disk drive not parking its head, making a faint scratching sound while spinning out and degrading the device [2], or
- a solid-state drive (especially older) not flushing its cache buffers or updating its mapping tables, and losing data [3].
When you unmount the partitions, the device is still powered on. You should ask the system to turn it off first in order to safely remove it: [4]
# echo 1 > /sys/block/disk_name/device/delete
If you use udisks, you can use these commands: [5]
$ udisksctl unmount -b /dev/sdXY $ udisksctl power-off -b /dev/sdX