third_party_exfatprogs:基于 Linux 系统的 exFAT 文件系统工具项目

exFAT 文件系统用户空间实用程序,包含用于在 linux 系统中创建、修复和调试 exfat 文件系统的所有标准实用程序,支持fsck、mkfs等。

分支268Tags37
文件最后提交记录最后更新时间
3 个月前
3 个月前
3 个月前
3 个月前
3 个月前
3 个月前
3 个月前
3 个月前
3 个月前
3 个月前
3 个月前
3 个月前
1 年前
1 年前
1 年前
1 年前
3 个月前
4 年前
1 年前
3 个月前
3 个月前
3 个月前
2 年前
1 年前
2 年前
3 个月前

exfatprogs 简介

随着新的 exfat 文件系统合并入 linux-5.7 内核,exfatprogs 应运而生,这是一套官方的用户空间工具,包含了在 Linux 系统中创建、修复和调试 exfat 文件系统的所有标准工具。exfatprogs 的目标是提供与 Windows 中 exfat 工具相媲美的高性能与品质。此软件遵循 GNU 通用公共许可证第二版。

编译 exfatprogs

安装必需的依赖包:

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

For Fedora, RHEL:
    sudo yum install autoconf automake libtool

构建步骤:

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

使用 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

性能基准测试

我们对 Samsung 64GB Pro 微型SDXC UHS-I Class 10 存储卡进行了一些 fsck 实现的测试和比较,该存储卡已填充至 35GB,包含 9948 个目录和 16506 个文件,由 fsstress 创建。

每次测试的执行时间差异非常小。

实现 版本 执行时间(秒)
exfatprogs fsck 1.0.4 11.561
Windows fsck Windows 10 1809 11.449
exfat-fuse fsck 1.3.0 68.977

反馈提交

如果您遇到任何问题,请创建 问题 或联系 Namjae JeonHyunchul Lee。我们也欢迎您的 贡献

贡献者信息

  • 请确保您的 pull request 基于分支 exfat-next
  • 请确保在您的提交中添加 'Signed-Off' 信息(例如使用 git commit --signoff)。
  • 请使用内核开发工具脚本 checkpatch 检查您的代码贡献。

项目介绍

exFAT 文件系统用户空间实用程序,包含用于在 linux 系统中创建、修复和调试 exfat 文件系统的所有标准实用程序,支持fsck、mkfs等。

定制我的领域