.. _exfat: ================ ExFAT文件系统 ================ 有时候我需要在不同操作系统间通过U盘或移动硬盘交换文件,此时U盘/移动硬盘的文件系统选择就需要考虑跨平台以及是否支持大文件,长文件名等。我最初选择的是 ``VFST/FAT32`` ,但是发现现代系统中,超过4GB的文件比比皆是,会导致兼容性问题。 ExFAT优势 ========== ``ExFAT`` 文件系统是目前跨操作系统兼容的选择: - macOS支持ExFAT文件系统 - Linux内核早期通过FUSE支持,而内核5.7之后原生支持,所以使用非常方便 - 超越 ``FAT32/VFAT`` ,已经 **没有单个文件4G限制** ,这对现代的大文件交换非常有利(不过FAT32兼容性更好,被更多操作系统和设备支持,且适合小型设备,因为FAT32简单而轻量级) - ``ExFAT`` 性能比 ``FAT32`` 好,特别是大文ä¶传输 - ``ExFAT`` 为移动设备(USB设备,SD卡等)设计,但ä建议用于内部存储(内置硬盘或SSD) Gentoo使用ExFAT ================= - 内核5.7及以上,可以直接安装 ``sys-fs/exfatprogs`` 软件包,包含了维护工具: .. literalinclude:: exfat/gentoo_install_exfatprogs :caption: 在 :ref:`gentoo_linux` 上安装 ``sys-fs/exfatprogs`` 文件复制 ============ tar ----- 当采用 ``tar`` 结合管道来同步数据,我通常使用: .. literalinclude:: ../zfs/admin/zfs_nfs/copy_docs :caption: 使用 ``tar`` 结合管道复制文件 但是 ``ExFAT`` 文件系统不支持 ``uid/gid`` 这样的属主属性,此时会大量报错: .. literalinclude:: exfat/tar_ownership_err :caption: ``ExFAT`` 文件系统不支持 ``uid/gid`` 这样的属主属性 解决的方法是在使用 ``tar`` 归档时将 ``owner`` 和 ``group`` 都设置成 ``0`` ,并且使用 ``--no-same-owner --no-same-permissions`` 参数 .. literalinclude:: exfat/copy_docs :caption: ``tar`` 命令归档时忽略文件属主 参考 ====== - `tar without preserving user [duplicate] `_ - `File system formats available in Disk Utility on Mac `_