Many useful OpenWrt utilities and packages rely on external storage to hold data files. This guide describes how to add a single USB stick or drive to your OpenWrt device.
Note: If you have a memory limited router (say with 4MBytes Flash internal storage), and want to be able to install more packages, you should instead read the Extroot Configuration page.
Note: For NTFS disks, refer to Writable NTFS
1. Use your laptop/desktop computer to format your USB device. Use the default name and format options. This prepares the USB drive for the process below, which will erase those settings (again). Warning: This initial formatting will erase the entire USB drive.
3. Get the required packages: More...
opkg update && opkg install block-mount e2fsprogs kmod-fs-ext4 kmod-usb-storage kmod-usb2 kmod-usb3
ls -al /dev/sd* to show the name of all attached USB devices. The list may be empty if there are no USB devices. More...
5. Insert the USB drive into your router. Enter
ls -al /dev/sd* again, and this time you should see a new /dev/sdXX device. sdXX is the device name of your new USB device.
root@OpenWrt:~# ls -al /dev/sd* brw------- 1 root root 8, 0 Feb 4 15:13 /dev/sda brw------- 1 root root 8, 1 Feb 4 14:06 /dev/sda1
6. Make an ext4 filesystem on the USB device using the device name you just discovered. Note: Be certain you enter the proper device name - this step will completely erase the device. More...
7. Create the fstab config file based on all the block devices found. More...
block detect | uci import fstab
8. Update the fstab config file to mount all drives at startup. More...
uci set fstab.@mount.enabled='1' && uci set fstab.@global.anon_mount='1' && uci commit
9. Mount the device (now) and enable the fstab service so the device will be mounted after a reboot.
/sbin/block mount && service fstab enable
10. You're done! This procedure mounts the drive at /mnt/sdXX (whatever the device name was.) The drive is ready to save data at that part of the filesystem.
If you want more information about this procedure: