Saturday, February 4, 2017

Linux How To: Resolve Media Mounting Error "Unknown Filesystem Type 'exfat'"

Media mounting error message while attempting to mount WD MyBook 1TB External HDD
Some years ago, I had bought a Western Digital My Book 1TB external hard drive as a backup storage resource for important data.

The drive had come formatted by default with the FAT file system for use with Windows. It also came with a default onboard partition with proprietary WD software tools and utilities meant to show the composition of the drive contents (photos, videos, files, etc.), available free space, and so on. The idea was for the drive to display this information in the form of numerical data and a progress bar on an LCD display at its front fascia.

Western Digital My Book 1TB External HDD - Front

Western Digital My Book 1TB External HDD - Rear
However, as I like numerous other Linux users have experienced over the years, hardware, software and systems that are built and deployed with the Windows environment in mind, behave like they come from an alien planet several alternate universes removed when they encounter a Linux system. In my case, this happened when I connected said WD My Book to my System76 Pangolin laptop via its USB 2.0 cable. All the software and hardware functionality that was supposed to bring ease and convenience into my life was rendered useless an an instant. The on-board software and utilities wouldn't run, because they were built as .EXE applications for Windows. This, in turn, rendered the built-in LCD display absolutely useless. 

The drive however, did detect and mount. Figuring that the onboard storage capacity was what really mattered, I decided to make use of the drive as it was. Things worked well for a year or so until I migrated to a bigger Seagate drive and had the brilliant idea of formatting the WD as a Linux-only compatible drive. I thus attempted a format to the ext4 file system using a third-party disk utility available at the time from the Ubuntu Software Center, and something went wrong. The disk seemed to have been bricked, and Ubuntu wouldn't recognize or mount it anymore. 

It seemed like there was nothing to do but count it as a lost cause. The drive was set aside and gathered dust for the last two years. Then toward the end of last year, I tried a drive recovery process using a Mac and was able to successfully get the drive to mount and format with an exfat file system. However, when I took it back home and connected it to my System76 Pangolin P8 laptop, I encountered the following error message shown above:

"Error mounting /dev/sdb2 at /media/sage/untitled: Command-line 'mount -t "exfat" -o "uhelper=udisks2,nodev,nosuid,uid1000,gid=1000,iocharset=utf8,namecase=0,errors=
remount-ro,umask=0077" "/dev/sdb2" "/media/sage/Untitled" exited with non-zero exit status 32: mount unknown filesystem type 'exfat'

This was puzzling. What happened?

Some research online provided an answer [1]: The issue lay with the proprietary, i.e. non-open nature of the exfat filesystem. exFAT is developed my Microsoft and falls under a form of restrictive licensing. One online resource states:

"Microsoft has not officially released the complete exFAT file system specification and a restrictive license from Microsoft is required in order to make and distribute exFAT implementations. Microsoft also asserts software patents on exFAT which make it difficult to re-implement its functionality in a compatible way without violating a large percentage of them. This renders the implementation, distribution, and use of exFAT as a part of free or open-source operating systems or of commercial software, for which the vendors could not obtain a license from Microsoft, legally difficult, especially in countries that recognize software patents. Although exFAT is now widely supported, initially Mac OS X and many consumer devices could only handle FAT12, FAT16, and FAT32. The situation had formerly rendered exFAT, and flash memory formatted with it, impractical as a universal exchange format. Native Linux support for exFAT is still limited." [2]

As a result, support for the exfat system is not installed in Ubuntu by default after Ubuntu 13.04 LTS. It was moved to the main repository and needs to be installed. To resolve the issue, I had to run the following command from the terminal: 

sudo apt-get install exfat-fuse exfat-utils 

Once this was done, Ubuntu was able to recognize and mount my WD My Book without any problems. 

While a minor, temporarily perplexing and momentarily frustrating experience that was resolved with some research, it is nonetheless instructive of something important. The caveats and obstacles that occur for users trying to navigate the intersection of the OSS community and the world of proprietary, IP-protected systems can occur in the most innocuous and unexpected of circumstances. Although much progress has been made in the world of the average Linux user compared to when I first adopted Ubuntu 8 years ago, there are still hurdles that can present themselves, and workarounds that need to be built. More of my thoughts on this later.

Until then, have a great weekend!

Regards,
The Sage (湯馬士 凱文)

Multidisciplinary, award-winning and intrepid Systems Engineer with business & sales acumen. Creative systems thinker and skilled problem solver. Achieves win-win solutions and value for all stakeholders. Interested in applying my skill set to deliver value at the intersection of technology and business.

No comments:

Post a Comment