我们有 Linux(Debian)和 MacOS 笔记本电脑。我有一个 4 TB 的外部 USB 机械旋转驱动器,我想用它来备份。我不想为每个操作系统使用不同的文件系统对驱动器进行分区,因为我不知道每个操作系统需要多少空间。所以我需要一个可以在两个系统上运行的文件系统,并且还允许一个系统读取从另一个系统备份的文件(例如,如果 Debian 笔记本电脑无法访问,我希望另一个使用 Mac 的人能够从备份中获取关键文件)。
研究表明,exFAT 通常被推荐为跨平台文件系统。Mac 上的 Time Machine 不支持非 Apple 格式,但我正在使用 Get Backup Pro,它应该可以正常工作。
只针对 SSD?
我还读到 exFAT 针对闪存/SSD 进行了优化。APFS 也针对 SSD 进行了优化,在旋转驱动器上使用时性能不佳。exFAT 也是这种情况吗?究竟是什么让 exFAT 针对闪存进行了优化,将其与旋转驱动器一起使用会有什么影响?
日记
我知道 exFAT 没有日志功能。在备份用例中,日志可能每天甚至每周写入一次,但几乎从未读取过,这还是个问题吗?我想,如果出于某种原因备份过程失败,我可以重新运行它吗?
许可和所有者数据
我认为 exFAT 无法处理它们?如果从 exFAT 备份恢复,Linux 文件将具有哪些权限和所有者?
答案1
我还读到 exFAT 针对闪存/SSD 进行了优化。APFS 也针对 SSD 进行了优化,在旋转驱动器上使用时性能不佳。exFAT 也是这种情况吗?究竟是什么让 exFAT 针对闪存进行了优化,将其与旋转驱动器一起使用会有什么影响?
exFAT 实际上无法与 APFS 相比 - 主要是它不是“写时复制”文件系统(这意味着文件数据和文件系统元数据都是就地更新的)。虽然写时复制使文件系统更具弹性,但它也自然会导致数据碎片化,而碎片化会损害 HDD 的性能;Btrfs 也有同样的问题。但 exFAT 的工作原理实际上与 FAT32 相同,具有就地更新和相对简单的线性结构。
关于我在 exFAT 中看到的唯一“闪存优化”的事情是,它允许数据和元数据更好地与闪存的内部块边界对齐(如果我理解正确的话,它可以比单个扇区大得多 - 而 HDD 并不关心,因为它们长时间处理单个扇区)。
我知道 exFAT 没有日志功能。在备份用例中,日志可能每天甚至每周写入一次,但几乎从不读取,这还是个问题吗?
是的,如果正在执行写入操作(正在创建文件等),并且这些写入操作有可能被中断(例如断电、USB 电缆不稳定),那么文件系统就有损坏的可能。(虽然这实际上与拔出的 USB 棒并没有什么不同。)
通常损坏程度很轻,以至于 fsck/scandisk/chkdsk 可以轻松恢复不一致,例如将松散的数据收集到 FOUND.000 或“lost+found”中,但我宁愿不依赖它。
我认为,如果备份过程因某种原因失败,我可以重新运行它吗?
这根本不是重点。如果是仅有的问题,那么是的,你可以重新运行备份——但非日志文件系统的问题在于它们容易元数据损坏,文件系统本身变得不一致(例如,分配了集群但不属于任何文件,或反之亦然)。
虽然在通常情况下这很小;但每次挂载磁盘时您都会运行 chkdsk/fsck,最终只会得到部分创建的文件成为 chkdsk 收集的松散数据,然后您再次重新运行备份。
我认为 exFAT 无法处理它们?如果从 exFAT 备份恢复,Linux 文件将具有哪些权限和所有者?
备份软件在创建备份时存储的那些。任何值得使用的备份软件都会使用一些档案格式将元数据保存在档案文件内部,与档案所在的外部文件系统无关。
Tar 和 Zip 档案将把存档文件的所有权和权限作为档案的一部分进行存储;例如,Borg 和 Restic 使用的专有格式也将如此。
(RAR 可以存储 NTFS 权限,但我不记得它能够存储 Unix 权限。)
但是如果您只是将文件复制粘贴或“cp -av”直接复制到 exFAT 卷上,那么权限将是“系统在恢复时构成的”,例如,所有文件都可能归安装该卷的用户所有,并且所有内容都将具有通用的 0644/0755 或类似的权限。
请记住,恢复文件所有权通常需要 root 权限;非 root 用户恢复的备份将具有正确的权限,但无法更新恢复文件的所有权,导致所有文件都归该用户所有。