我想在本地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
支持这一点。