在另一台计算机上使用 ext4 格式的 USB 驱动器时不同的 UID/GID

在另一台计算机上使用 ext4 格式的 USB 驱动器时不同的 UID/GID

使用 USB 记忆棒或存储卡上的文件系统的问题ext4是,当将其安装到另一个系统中时,磁盘的 UID/GID 可能不存在。

可以通过安装选项修复此问题吗?

答案1

我假设您希望找到Linux命令所了解的其他一些文件系统所支持的uid=N和选项的等效项。抱歉,ext4 没有该选项。gid=Nmount

这些其他文件系统有这样的选项,以便对可能没有有用的 POSIX 权限的文件系统的文件的权限。您希望取消权限 - 或者至少重新分配它们 - 从安全角度来看这是一个坏主意,这无疑是这些选项不存在的原因。

当您在可移动媒体上使用像 ext4 这样的文件系统时,您就表示您关心 POSIX 权限之类的事情。这意味着您必须采取与 NFS 相同的步骤来同步用户和组 ID。

如果您实际上并不关心权限,则可能有更适合您情况的文件系统。

在下面的评论之后,我尝试使用 UDF 作为此类文件系统的候选者,但可惜的是,它不起作用:

  • 如果您在一个 Linux 机器上创建 UDF 文件系统,向其中添加文件,更改其权限,然后将它们安装到另一台 Linux 机器上,它将遵循在那里找到的权限,即使您授予uid=N,gid=N.您必须在此处同步 UID 和 GID,就像 NFS 一样。

  • Mac OS X 的行为正如所希望的那样:它相信自己拥有 Linux 机器上创建的 UDF 文件系统上的所有内容。但是,向磁盘添加一个文件,它会设置该文件的 UID 和 GID,然后 Linux 机器将遵循该 UID 和 GID。

  • 如果您随后尝试将该文件系统挂载到 FreeBSD 机器上,它会大喊invalid argument。我认为这是因为内核开发人员没有意识到 UDF 可以出现在非光学介质上,仅仅是因为我在网上找不到任何成功的报告。也许我错过了一个神奇的咒语。

  • 据报道,UDF 硬盘可以在 Windows 上工作,但它对其创建方式非常挑剔。如果您需要此功能,最好在 Windows 中进行格式化。从命令行:

    format /fs:udf x:

    不要使用/q: 来创建不太可能挂载在其他操作系统上的文件系统。

    请注意,UDF 只能在 Vista 及更高版本上读/写。 XP 将安装在 Vista 上创建的 UDF 硬盘驱动器,但无法对其进行写入。

某种形式的 FAT 可能是最好的选择。如果您由于 FAT32 4 GB 文件大小限制而避免这样做,您可能希望研究一下外FAT。有一个免费保险丝版本可用的。

如果您使用的 Linux 发行版足够新且包含对 NTFS 的可靠读/写支持,则 NTFS 也可能有效。

相关内容