我正在用 Raspberry Pi 替换 Mac mini 作为文件服务器。驱动器已经转移,大部分工作正常。在设置一些作业时,我注意到rsync
有人抱怨文件消失。最初,我以为文件名称中包含泰语字符或变音符号(重音符号、变音符号等 - 是的,我必须查找!)是导致问题的原因。但rsync
并没有为每个这样的文件抛出错误。
不过,有许多文件(据我所知,它们的名称都包含泰语字符)被报告消失rsync
。此外,当我在 MacBook 上安装 Pi 托管的驱动器时,这些文件不会显示,并且在 Pi 的控制台上,它们显示“?”表示权限、所有者、大小、日期等。问题不在于。rsync
例如ls
,也在抱怨它无法访问该文件。问题似乎更根本。
那么,也许文件只是被搞坏了?不。当我拿起驱动器并将其直接插入 Mac mini 时,这些文件可用,我可以正常访问它们。
我认为这可能与文件名的编码有关,但这并不能解释为什么这些文件对 Debian 来说成了完全的谜。
文件系统似乎井然有序,我已经运行
fsck.hfsplus
并且报告一切正常。当我将驱动器连接到 Mac mini、共享它(smb)、将它安装在 Pi 上时,该文件在 Pi 上也显示正常。
我不知道下一步该怎么做才能进一步解决此问题。有人有什么想法吗?
[Mac mini 运行 macOS 10.13.6,Pi 运行 ARMBIAN 5.46 实验版 Debian GNU/Linux 9 (stretch) 4.14.52-v7+]
答案1
以下是我解决这个问题的方法:
- 在 Mac 上安装原始 HFS+ 文件系统
- 在 Pi 上安装一个大小相同的空驱动器,ext4 格式
- 在 Mac 上打开文件共享,将此共享挂载到 Pi 上
- 用于
rsync
通过网络将所有文件从 Mac 移动到 Pi
报告为消失的文件已同步到 ext4 文件系统,没有任何问题,可以正常使用。问题解决了!
但是,这并不能解释问题的根源。我进一步排除故障的唯一线索是,每个报告为消失的文件的名称都包含泰语“sara am”字符(Unicode U+0E33)。这个字符的唯一特殊之处在于它不是独立的,而是总是与另一个字符组合在一起。也许 Debian 中的 HFS+ 实现会因此而受阻?不过对我来说太技术化了,我的问题已按上述方法解决。