ExFAT文件系统
有时候我需要在不同操作系统间通过U盘或移动硬盘交换文件,此时U盘/移动硬盘的文件系统选择就需要考虑跨平台以及是否支持大文件,长文件名等。我最初选择的是 VFST/FAT32
,但是发现现代系统中,超过4GB的文件比比皆是,会导致兼容性问题。
ExFAT优势
ExFAT
文件系统是目前跨操作系统兼容的选择:
macOS支持ExFAT文件系统,Linux内核早期铜鼓FUSE支持,而内核5.7之后原生支持,所以使用非常方便
超越
FAT32/VFAT
,已经 没有单个文件4G限制 ,这对现代的大文件交换非常有利
Gentoo使用ExFAT
内核5.7及以上,可以直接安装
sys-fs/exfatprogs
软件包,包含了维护工具:
emerge --ask sys-fs/exfatprogs
文件复制
tar
当采用 tar
结合管道来同步数据,我通常使用:
sudo chown huatai:staff /data/docs
(cd /home/huatai/docs && tar cf - .)|(cd /data/docs && tar xf -)
但是 ExFAT
文件系统不支持 uid/gid
这样的属主属性,此时会大量报错:
...
tar: ./ebook/xxx.epub : Cannot change ownership to uid 502, gid 20: Operation not permitted
tar: ./ebook/xxy.epub : Cannot change ownership to uid 502, gid 20: Operation not permitted
tar: ./ebook/xxz.epub : Cannot change ownership to uid 502, gid 20: Operation not permitted
...
解决的方法是在使用 tar
归档时将 owner
和 group
都设置成 0
,并且使用 --no-same-owner --no-same-permissions
参数
(cd /home/huatai/docs && tar --owner=0 --group=0 --no-same-owner --no-same-permissions -cf - .)|(cd /data/docs && tar -xf -)