是否存在 FUSE 覆盖文件系统,即: * 解析其自身对于底层文件系统的“太长文件名” * 否则(对于适合底层文件系统限制的文件名)仅代理 1:1 ?
这是如何工作的示例:对于fabc...yxz
给定底层文件系统的文件名太长的每个文件,将其转换为较短的名称,并使用第二个文件作为具有完整文件名详细信息的元数据。
使用案例:EncFS 或 ecryptfs 等加密文件系统的限制。在加密文件名时,它们能够存储比底层文件系统短的文件名,从而导致您无法将需要更长文件名的内容同步到其中。 (例如,Ext4 有 255B,ext4 上的 ecryptfs 允许 143B 文件名)。
问题rsync
报告示例:
rsync: mkstemp "/mnt/naswaw2016/ext4/asusm2n1934/enc/home/gwpl/dane/cs/reed-solomon/.CS-05-569 - reed-solomon [vg][vgvg] - Optimizing Cauchy Reed-Solomon Codes for Faul
t-Tolerant Storage Applications - by James S. Plank.pdf.CwyPQH" failed: File name too long (36)
一些参考:
- 之前提出的相同想法:https://github.com/vgough/encfs/issues/7#issuecomment-160678136
- ecryptfs 错误描述问题:https://bugs.launchpad.net/ecryptfs/+bug/344878
- SE 关于 ecryptfs 文件名限制的回答:https://unix.stackexchange.com/a/32834/9689
- rsync 用例的 escryptfs 错误:https://bugs.launchpad.net/ubuntu/+source/rsync/+bug/592303
(PS,是的 - 我知道使用 LUKS 在块层上进行加密,但是在 fs 层之上进行加密对我的用例来说要好得多,所以我宁愿坚持下去)