I have a QNAP TS-653A NAS Drive that I use for storing most of my files, including terabytes of images, iTunes collection, etc, etc. Basically, lots of data. But, how do load it up quickly from all of these external drives full of jpgs I have still lying around. It is quicker to copy the data directly from the external drive to the NAS and bypass the network. However, many drives are in ExFAT format and the Qnap does not support the ExFAT file system by default. So, let’s hack in some ExFAT support into the Qnap.

On the Qnap forums, user kupy123 gave some great advice for getting ExFAT running on a Qnap SAN. Qnap will offer ExFAT as a paid purachse in a latter version, but I needed it now to move data off of old hard drives. It is much quicker to plug the drive in directly for data archival than trying to put it all over a network.

Much of the software is already on the Qnap, you just need a few extra libraries and some SSH skills.

Much of the original advice involved a local Linux machine, but I don’t have Ubuntu or another machine with dpkg or deb processing software installed. So, I used MacOS/OSX to extract the files I needed. These instructions will work on any minimalistic Unix machine that doesn’t use dpkg and this will even Windows with Cygwin. As the Qnap firmware 4.2.1 does not have the Unix command ar installed, so you cannot run this directly on the NAS.

  1. Download ExFAT Fuse from somewhere; I used:
    • http://packages.ubuntu.com/trusty/i386/exfat-fuse/download (v1.0.1)
    • http://packages.ubuntu.com/trusty/i386/exfat-utils/download
    • Note that this version may also work: http://packages.ubuntu.com/xenial/i386/exfat-fuse/download (v1.2.3)
  2. In a temporary folder, run ar -x exfat-fuse_1.0.1-1_i386.deb
  3. You will now see data.tar.gz, control.tar.gz, and delian-binary
  4. Rename the data file using mv data.tar.gz fuse.tar.gz
  5. Now, for the utils deb, run ar -x exfat-utils_1.0.1-1_i386.deb
  6. Then mv data.tar.gz utils.tar.gz
  7. Now, copy the utils.tar.gz & fuse.tar.gz files into the NAS. Remember, many system directories are reset between reboots, so placing the files in a normal user’s directory instead of /root is wise.
  8. ssh into the NAS as admin.
  9. Now, install the software onto the NAS in the correct file system locations. The easiest way is to extract from the NAS root level directory with cd /
  10. Then, run tar -zxvf /path/to/fuse.tar.gz
  11. And finally, run tar -zxvf /path/to/utils.tar.gz

Congratulations, ExFAT Fuse is installed. Just run mount.exfat-fuse and you should see the usage instructions. Now, to mount your disk:

  1. Plug the hard drive into the NAS’ USB port and wait 10 seconds.
  2. Run dmesg and look for the /dev device which should be of the form sd*# – the letters s and d followed by a letter and a number. For me, it looked like:
    • [122449.491447] sd 20:0:0:0: [sde] Assuming drive cache: write through
    • [122449.530756] sde: sde1
    • In this case, sde1 is the device.
  3. mkdir /mnt/{nice-drive-name}
  4. mount.exfat-fuse /dev/{device} /mnt/{nice-drive-name}

And there you go. ExFAT support without the need to install Ubuntu. You can only see the drive from ssh since it isn’t in the raid share area. So, I sometimes mount the drive inside of the /share/raid-share-name to also read contents from the network. It wouldn’t be wise to copy the whole drive, as there is a great deal of network thrash, but is does help finding files.

I ended up doing cp -a ExFAT-files /share/Pictures/whatever to move the data. The data was saved and without the network overhead. And now, one less external drive in the house.