Linux 为外部(嵌入式)系统创建具有不存在所有者/组的文件系统

Linux 为外部(嵌入式)系统创建具有不存在所有者/组的文件系统

我想在本地Linux上为外部Linux系统创建文件系统映像。

首先,国外的系统可能和我的本地PC Linux主机不一样,CPU架构可能不同,比如ARM,MIPS,而且目前不支持virtualbox仿真。

其次,外部系统可能有与我的本地主机不同的用户,并且可能具有相同的用户 ID,但名称可能不同,或者可能用户 ID 仅存在于外部系统中,而不存在于本地主机中。

组 ID 也类似。

正常的文件系统创建过程,包括创建一个空的文件系统映像、挂载它、将文件复制到其中,然后将其卸载。

问题是,由于用户 ID 在我的本地主机中不存在,我如何在复制文件阶段在我的本地文件系统中创建它?

我们知道,如果我们tar在外部系统中打开某个文件夹,然后在本地主机上解压,可以得到一些不存在用户/组的文件。这证明了不存在用户/组的文件可以存在于 Linux 系统中。

答案1

文件系统中存储了 UID 和 GID。也可以chown UID:GID使用chown user:group来为不存在的本地用户/组设置文件权限。因此创建文件应该很容易。

更好的方法是在本地系统上创建具有与两个系统匹配的特定 UID/GID 的用户/组。useradd & groupadd支持这一点。

相关内容