openharmony_ci 8ef43c5a79 !33 merge master into master
exfatprogs 升级到1.3.2

Created-by: jiangqianrong
Commit-by: jiangqianrong
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/third_party_exfatprogs!33
2026-04-17 19:28:30 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2024-12-19 15:46:35 +08:00
2024-12-19 15:46:35 +08:00
2024-12-19 15:46:35 +08:00
2024-12-19 15:46:35 +08:00
2024-12-19 15:46:35 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2021-08-17 21:20:58 +00:00
2024-12-19 15:46:35 +08:00
2026-04-11 10:48:59 +08:00
2026-04-11 10:48:59 +08:00
2023-12-21 14:29:14 +08:00
2026-04-11 10:48:59 +08:00

exfatprogs

As new exfat filesystem is merged into linux-5.7 kernel, exfatprogs is created as an official userspace utilities that contain all of the standard utilities for creating and fixing and debugging exfat filesystem in linux system. The goal of exfatprogs is to provide high performance and quality at the level of exfat utilities in windows. And this software is licensed under the GNU General Public License Version 2.

Building exfatprogs

Install prerequisite packages:

For Ubuntu:
    sudo apt-get install autoconf libtool pkg-config

For Fedora, RHEL:
    sudo yum install autoconf automake libtool

Build steps:

    cd into the exfatprogs directory:
    ./autogen.sh
    ./configure
    make
    make install

Using exfatprogs

- mkfs.exfat:
    Build a exfat filesystem on a device or partition(e.g. /dev/hda1, dev/sda1).

Usage example:
    1. No option(default) : cluster size adjustment as per device size, quick format.
        mkfs.exfat /dev/sda1
    2. To change cluster size(KB or MB or Byte) user want
        mkfs.exfat -c 1048576 /dev/sda1
        mkfs.exfat -c 1024K /dev/sda1
        mkfs.exfat -c 1M /dev/sda1
    3. For full format(zero out)
        mkfs.exfat -f /dev/sda1
    4. For set volume label, use -l option with string user want.
        mkfs.exfat -L "my usb" /dev/sda1
    5. To change boundary alignment(KB or MB or Byte) user want
        mkfs.exfat -b 16777216 /dev/sda1
        mkfs.exfat -b 16384K /dev/sda1
        mkfs.exfat -b 16M /dev/sda1

- fsck.exfat:
    Check the consistency of your exfat filesystem and optionally repair a corrupted device formatted by exfat.

Usage example:
    1. check the consistency.
        fsck.exfat /dev/sda1
    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.
        fsck.exfat -p -s /dev/sda1
    3. repair a corrupted device in the same way above, but answering yes to all questions.
        fsck.exfat -y -s /dev/sda1

- tune.exfat:
    Adjust tunable filesystem parameters on an exFAT filesystem

Usage example:
    1. print current volume label.
        tune.exfat -l /dev/sda1
    2. set new volume label.
        tune.exfat -L "new label" /dev/sda1
    3. print current volume serial.
        tune.exfat -i /dev/sda1
    4. set new volume serial.
        tune.exfat -I 0x12345678 /dev/sda1

- exfatlabel:
    Get or Set volume label or serial

Usage example:
    1. get current volume label.
        exfatlabel /dev/sda1
    2. set new volume label.
        exfatlabel /dev/sda1 "new label"
    3. get current volume serial.
        exfatlabel -i /dev/sda1
    4. set new volume serial.
        exfatlabel -i /dev/sda1 0x12345678

- dump.exfat:
    Show on-disk information

Usage example:
    dump.exfat /dev/sda1

- exfat2img:
    Dump metadata of an exFAT filesystem

Usage example:
    exfat2img -o sda1.dump /dev/sda1

Benchmarks

Some fsck implementations were tested and compared for Samsung 64GB Pro microSDXC UHS-I Class 10 which was filled up to 35GB with 9948 directories and 16506 files by fsstress.

The difference in the execution time for each testing is very small.

Implementation version execution time (seconds)
exfatprogs fsck 1.0.4 11.561
Windows fsck Windows 10 1809 11.449
exfat-fuse fsck 1.3.0 68.977

Sending feedback

If you have any issues, please create issues or contact to Namjae Jeon and Hyunchul Lee. Contributions are also welcome.

Contributor information

  • Please base your pull requests on the exfat-next branch.
  • Make sure you add 'Signed-Off' information to your commits (e.g. git commit --signoff).
  • Please check your code contribution using kernel dev-tool script checkpatch.
S
Description
exFAT 文件系统用户空间实用程序,包含用于在 linux 系统中创建、修复和调试 exfat 文件系统的所有标准实用程序,支持fsck、mkfs等。
Readme 2.5 MiB
Languages
C 93.6%
Roff 4.3%
Shell 1.3%
Makefile 0.6%
M4 0.2%