使用 USB 记忆棒或存储卡上的文件系统的问题ext4
是,当将其安装到另一个系统中时,磁盘的 UID/GID 可能不存在。
可以通过安装选项修复此问题吗?
答案1
我假设您希望找到Linux命令所了解的其他一些文件系统所支持的uid=N
和选项的等效项。抱歉,ext4 没有该选项。gid=N
mount
这些其他文件系统有这样的选项,以便给对可能没有有用的 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 也可能有效。