嵌入式 Linux 系统中将 vfat 分区作为 /home 挂载点

嵌入式 Linux 系统中将 vfat 分区作为 /home 挂载点

通常,在我的嵌入式项目中,我会使用以下结构设置 SD 卡:

  • 启动:FAT32(未安装)
  • rootfs:ext4(安装在ro中)
  • 主页:ext4(安装在rw中)

(当前项目使用 RPi 3 - 以防我们需要具体讨论。)

启动和 rootfs 分区尽可能小。相反,主分区占用 SD 卡上的所有可用空间(最大 32 GB)。

主分区将包含应用程序特定文件(可执行文件、配置、日志等)以及用户文件(即多媒体、图标或任何其他属于用户的文件)。

为了让用户访问自己的文件,我在特定文件夹上设置了 Samba 共享。

现在我有了一个新的要求:将主分区设为 FAT32。这样(他说)即使没有网络连接,更新文件也会更容易,只需将 SD 卡插入 Windows PC 即可。

几个问题:

  • 那么使用 VFAT 分区作为/home挂载点怎么样?
  • 如上所述,该分区还包含可执行文件和指向一些配置文件的符号链接,例如/etc/network/interfaces和类似文件。这里有任何注意事项吗?我担心缺乏 GID/UID 支持。
  • 关于如何管理嵌入式系统(无头)中的用户/数据分区以允许最终用户轻松访问文件,有什么建议吗?

答案1

请记住Windows 将仅安装任何可移动磁盘上列出的第一个分区我不知道无论是第一次全部或者第一个带有 Windows 可以理解的文件系统。/boot我想,无论哪种方式,它都会位于您当前的设置中。

我不知道您是否可以将您的/boot分区创建为第二个或更多分区;或者更改其文件系统。我的意思是:我认为使用 Linux 和 GRUB 是可能的,但我对 RPi 上的 Raspbian 有一些经验,它不使用 GRUB。

所以这或许能解决问题。或者不能。阅读关于如何在 Windows 中隐藏分区的答案,它也应该适用于 FAT32。


如果你成功克服了上述问题,还有其他的:

我担心缺乏 GID/UID 支持。

你说得对。

  • 如果有多个用户,则用户将能够读取其他人的文件。但看起来只有一个用户,对吗?我想是的。
  • 比较. 基于 SSH 密钥的身份验证将不起作用。
  • 更多程序可能会受到类似影响。

这个答案据说它可能适用于 NTFS。我认为 Linux 中的 NTFS 支持已经完成保险丝。 读这些安全问题

还:

  • FAT32 设计为不区分大小写。某些程序可能依赖于文件系统的大小写区分性(例如,某个程序同时使用A_filea_file)。
  • 据我所知,FAT32 中没有日志功能。

关于如何管理嵌入式系统(无头)中的用户/数据分区以允许最终用户轻松访问文件,有什么建议吗?

用户是否应在 Windows 上编辑“应用程序特定文件”?vfat仅考虑“多媒体、图标或属于用户的任何其他文件”。这将被单独安装到除 之外的位置/home。另一方面,现在 32 GB 并不多,您可能不想进一步分割它。


还有一个解决方案:让最终用户使用 Linux。

答案2

简单尝试一下,您无法在 vfat 分区中创建符号链接。ln -s说“操作不允许“。因此 VFAT 似乎不适合 /home。但是,您可以拥有一个额外的 VFAT 分区,并从常规 ext4 文件系统拥有指向其上的文件/目录的符号链接。

如果您有 SSH 访问权限,则可以使用 SFTP 管理 RPi 上的文件,找到客户端(即支持 SFTP 的文件浏览器)应该不难。您只需要设置一个 SSH 密钥,但这很简单(并且可以阻止访问您的 RPi 的恶作剧者)。

相关内容