Why can other computers write to this memory stick, but mine can’t?

Because the memory stick is not formatted for your computer’s native filesystem.

Assigning meaning to the numbers that assign meaning to other numbers

Back in What is a file extension? Why does it matter?, we learnt the importance of file names and file extensions.  However, even file and directory names are stored as a sequence of numbers.  The filesystem is a set of rules about how to turn that sequence into folders and files.

It would be nice if all computers used the same filesystem.  As usual, they don’t.

Windows favours NTFS (New Technology FileSystem) ((Wikipedia entry on NTFS)), while Mac OS favours HFS (Hierarchical FileSystem) ((Wikipedia entry on HFS)).  Both filesystems are very efficient, but this is achieved through terrifying complexity in the underlyng rules.  If you try to write a single file to a filesystem without a complete understanding of its rules, you could corrupt every single existing file.  So, it is hardly surprising that operating system programmers do not include write drivers for all filesystems by default.  Third party software does exist to give you write access to these filesystems if you really need it.

Many other filesystems exist, both old and new.  Many Linux distributions use ext (Extended FileSystem) ((Wikipedia entry on ext)).  Serious database servers may be formatted with ZFS ((Wikipedia entry on ZFS)), which may one day also appear on desktop computers.

File Allocation Table: Slow but reliable

Before Windows NT introduced NTFS, Windows computers used FAT (File Allocation Table) ((Wikipedia entry on FAT)).  By modern standards, this was very limited.

  • It was not indexed (necessary when searching for filenames and file contents).
  • Each partition could only store up to 4 gigabytes.  Even modern smartphones have more storage than that.
  • It became fragmented after repeated changes to stored files.

The simplicity of FAT also made it easy to write to.  Even back in the days of 3.5-inch floppy discs, Mac OS computers could read and write to FAT-formatted discs, and they can still do so in the days of memory sticks.  Most Unix and Linux distributions also have FAT drivers.

This has made FAT a “common language” among modern operating systems.  It is an unfortunate compromise, but it works.  The drives inside your computer should never be formatted as FAT, but any memory stick or other removable device you use to share files between different computers probably should be.

FAT16, FAT32, FATX or exFAT?

The File Allocation Table has been around since 1977, making it older than the IBM Personal Computer ((Wikipedia entry on FAT, Original 8-bit FAT)).  It has a few variants.  The most widely understood as of 2012 is “FAT32”.  If you are offered a choice when formatting a device, you should choose it.  More often, you will just be offered the choice of “FAT”, and you should use it.

How do I find the current filesystem on my memory stick?

Windows

  1. Open “My Computer” or otherwise show your device in an Explorer window.
  2. Right-click on the device and select “Properties”.

    Windows "Properties" dialog showing "File system: FAT32".

    How to show file properties in Windows

  3. Look under “File system:”.

    Windows "Properties" dialog for a removeable drive with "File system: FAT32" circled.

    Device properties on Windows

Mac OS

  1. Select the device on your Desktop, or in a Finder window.
  2. Go to the “File” menu and select “Get Info”.
  3. Look under “Format:”.

    Mac OS Device Info window with "Format: MS-DOS (FAT32)" circled.

    Device info on Mac OS

I found that my device has the wrong format.  How do I change it?

Before you proceed, know that changing a filesystem involves formatting your memory stick – permanently erasing its contents ((Computer forensics people can still recover your old files, so don’t rely on formatting to protect confidential data)).  Make sure you have copied any files you need off the device, and you know which device you are erasing.  It is easy to accidentally wipe all the documents of your 2 terabyte hard drive instead of your 4 gigabyte memory stick.
To be sure that you are erasing the right device, remove it from your computer and check the list of devices appearing in “My Computer” (Windows) or “Disk Utility” (Mac OS). Then plug the device back in. Whichever new device appears is the one you want to format.

Windows

  1. Open “My Computer” or otherwise show your device in an Explorer window.
  2. Right-click on the device and select “Format…”.
  3. Make sure the “File system” drop-down list is set to “FAT32” (or whatever other filesystem you need).

    Windows "Format" dialog showing "File system" set to "FAT32".

    Formatting on Windows

  4. If you want your device to appear in Explorer with a name that will help you recognise it, type the name into the “Volume label” field.
  5. Click on the “Start” button.

Mac OS

  1. Open the “Disk Utility” application.  It’s in your “Applications” folder, in the “Utilities” subfolder.  Or open Launchpad and type “Disk”.

    Icon showing "Disk Utility.app".

  2. Select your device from the list on the left.
  3. Select the “Erase” tab on the right.
  4. Change the “Format” option to “MS-DOS (FAT)”.

    Mac OS Disk Utility settings with "Format:" set to "MS-DOS (FAT)".

    Formatting on Mac OS

  5. If your want your device to appear on the Desktop with a name that will help you recognise it, type the name into the “Name:” field.
  6. Click on the “Erase…” button.

Ancient history supplement

Mac OS likes to label FAT-formatted drives as “MS-DOS”.  This is technically correct, as the command-line operating system of that name was using FAT before Windows even existed.  However, labelling these drives as “Windows” would be more meaningful to most people, and this has been the case for at least two decades.

Leave a Reply

Your e-mail address will not be published or shared with third parties.

First comments from new name/e-mail combinations will be held in moderation.