Create a FAT file system image on Linux

How to create the image file

  1. Create a file filled with zeros:
    $ dd if=/dev/zero of=test.img count=50 bs=1M

    This command makes a 50 MB image file. Change the “count” argument for different size.

  2. Create the partition (and partition table):
    $ fdisk test.img
    
    Command (m for help): o
    Building a new DOS disklabel with disk identifier 0x46ac6035.
    
    Command (m for help): n
    Partition type:
      p primary (0 primary, 0 extended, 4 free)
      e extended
    Select (default p): <Enter>
    Using default response p
    Partition number (1-4, default 1): <Enter>
    First sector (2048-99999, default 2048):
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-99999, default 99999): <Enter>
    Using default value 99999
    Partition 1 of type Linux and of size 47.8 MiB is set
    
    Command (m for help): t
    Selected partition 1
    Hex code (type L to list all codes): c
    
    Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'
    
    Command (m for help): w
    The partition table has been altered!
    
    Syncing disks
  3. Create the FAT file system in the image
    $ mkfs.vfat test.img 
    mkfs.fat 3.0.22 (2013-07-19)

 How to mount the image and copy files

  1. Create a directory for mounting
    $ sudo mkdir /mnt/test
  2. Mount the image
    $ sudo mount test.img /mnt/test

    Now you can copy/delete files in /mnt/test directory which will be written into the image file.

  3. After file operations unmount the image
    $ sudo umount /mnt/test
  4. Delete the directory
    $ sudo rmdir /mnt/test

2 thoughts on “Create a FAT file system image on Linux

Leave a Reply

Your email address will not be published. Required fields are marked *