New upstream version 1.0.4
[sven/exfatprogs.git] / README.md
1
2 ## exfatprogs
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.
9
10 ## Building exfatprogs
11 Install prerequisite packages:
12 ```
13 For Ubuntu:
14     sudo apt-get install autoconf libtool pkg-config
15
16 For Fedora, RHEL:
17     sudo yum install autoconf automake libtool
18 ```
19
20 Build steps:
21 ```
22     cd into the exfatprogs directory:
23     ./autogen.sh
24     ./configure
25     make
26     make install
27 ```
28
29 ## Using exfatprogs
30 ```
31 - mkfs.exfat:
32     Build a exfat filesystem on a device or partition(e.g. /dev/hda1, dev/sda1).
33
34 Usage example:
35     1. No option(default) : cluster size adjustment as per device size, quick format.
36         mkfs.exfat /dev/sda1
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
49
50 - fsck.exfat:
51     Check the consistency of your exfat filesystem and optionally repair a corrupted device formatted by exfat.
52
53 Usage example:
54     1. check the consistency.
55         fsck.exfat /dev/sda1
56     2. repair and fix.(preparing)
57
58 - tune.exfat:
59     Adjust tunable filesystem parameters on an exFAT filesystem
60
61 Usage example:
62     1. print current volume label.
63         tune.exfat -l /dev/sda1
64     2. set new volume label.
65         tune.exfat -L "new label" /dev/sda1
66 ```
67
68 ## Benchmarks
69
70 Some fsck implementations were tested and compared for Samsung 64GB Pro
71 microSDXC UHS-I Class 10 which was filled up to 35GB with 9948 directories
72 and 16506 files by fsstress.
73
74 The difference in the execution time for each testing is very small.
75
76
77 | Implementation       | version         | execution time (seconds) |
78 |----------------------|-----------------|--------------------------|
79 | **exfatprogs fsck**  | 1.0.4           | 11.561                   |
80 | Windows fsck         | Windows 10 1809 | 11.449                   |
81 | [exfat-fuse fsck]    | 1.3.0           | 68.977                   |
82
83 [exfat-fuse fsck]: https://github.com/relan/exfat
84
85 ## Sending feedback
86 If you have any issues, please create [issues][1] or contact to [Namjae Jeon](mailto:linkinjeon@kernel.org) and
87 [Hyunchul Lee](mailto:hyc.lee@gmail.com).
88 [Contributions][2] are also welcome.
89
90 [1]: https://github.com/exfatprogs/exfatprogs/issues
91 [2]: https://github.com/exfatprogs/exfatprogs/pulls
92
93 ## Contributor information
94 * Please base your pull requests on the `exfat-next` branch.
95 * Make sure you add 'Signed-Off' information to your commits (e. g. `git commit --signoff`).