3 As new exfat filesystem is merged into linux-5.7 kernel, exfatprogs is
4 created as an official userspace utilities that contain all of the standard
5 utilities for creating and fixing and debugging exfat filesystem in linux
6 system. The goal of exfatprogs is to provide high performance and quality
7 at the level of exfat utilities in windows. And this software is licensed
8 under the GNU General Public License Version 2.
10 ## Building exfatprogs
11 Install prerequisite packages:
14 sudo apt-get install autoconf libtool pkg-config
17 sudo yum install autoconf automake libtool
22 cd into the exfatprogs directory:
32 Build a exfat filesystem on a device or partition(e.g. /dev/hda1, dev/sda1).
35 1. No option(default) : cluster size adjustment as per device size, quick format.
37 2. To change cluster size(KB or MB or Byte) user want
38 mkfs.exfat -c 1048576 /dev/sda1
39 mkfs.exfat -c 1024K /dev/sda1
40 mkfs.exfat -c 1M /dev/sda1
41 3. For full format(zero out)
42 mkfs.exfat -f /dev/sda1
43 4. For set volume label, use -l option with string user want.
44 mkfs.exfat -L "my usb" /dev/sda1
45 5. To change boundary alignment(KB or MB or Byte) user want
46 mkfs.exfat -b 16777216 /dev/sda1
47 mkfs.exfat -b 16384K /dev/sda1
48 mkfs.exfat -b 16M /dev/sda1
51 Check the consistency of your exfat filesystem and optionally repair a corrupted device formatted by exfat.
54 1. check the consistency.
56 2. repair a corrupted device and create files in /LOST+FOUND, which have clusters allocated but not belonged to any files when reparing the device.
57 fsck.exfat -p -s /dev/sda1
58 3. repair a corrupted device in the same way above, but answering yes to all questions.
59 fsck.exfat -y -s /dev/sda1
62 Adjust tunable filesystem parameters on an exFAT filesystem
65 1. print current volume label.
66 tune.exfat -l /dev/sda1
67 2. set new volume label.
68 tune.exfat -L "new label" /dev/sda1
69 3. print current volume serial.
70 tune.exfat -i /dev/sda1
71 4. set new volume serial.
72 tune.exfat -I 0x12345678 /dev/sda1
75 Get or Set volume label or serial
78 1. get current volume label.
80 2. set new volume label.
81 exfatlabel /dev/sda1 "new label"
82 3. get current volume serial.
83 exfatlabel -i /dev/sda1
84 4. set new volume serial.
85 exfatlabel -i /dev/sda1 0x12345678
88 Show on-disk information
94 Dump metadata of an exFAT filesystem
97 exfat2img -o sda1.dump /dev/sda1
103 Some fsck implementations were tested and compared for Samsung 64GB Pro
104 microSDXC UHS-I Class 10 which was filled up to 35GB with 9948 directories
105 and 16506 files by fsstress.
107 The difference in the execution time for each testing is very small.
110 | Implementation | version | execution time (seconds) |
111 |----------------------|-----------------|--------------------------|
112 | **exfatprogs fsck** | 1.0.4 | 11.561 |
113 | Windows fsck | Windows 10 1809 | 11.449 |
114 | [exfat-fuse fsck] | 1.3.0 | 68.977 |
116 [exfat-fuse fsck]: https://github.com/relan/exfat
119 If you have any issues, please create [issues][1] or contact to [Namjae Jeon](mailto:linkinjeon@kernel.org) and
120 [Hyunchul Lee](mailto:hyc.lee@gmail.com).
121 [Contributions][2] are also welcome.
123 [1]: https://github.com/exfatprogs/exfatprogs/issues
124 [2]: https://github.com/exfatprogs/exfatprogs/pulls
126 ## Contributor information
127 * Please base your pull requests on the `exfat-next` branch.
128 * Make sure you add 'Signed-Off' information to your commits (e.g. `git commit --signoff`).
129 * Please check your code contribution using kernel dev-tool script [checkpatch](https://docs.kernel.org/dev-tools/checkpatch.html).