Linux 在C中从物理内存装载文件系统映像

Linux 在C中从物理内存装载文件系统映像,linux,memory,embedded,filesystems,mount,Linux,Memory,Embedded,Filesystems,Mount,我用自己的init可执行文件启动linux,该文件是用C编写的。 作为init过程的一部分,我想挂载一个预加载到物理内存中的自定义文件系统映像(比如地址0xFFFF0000) 只要有POSIX(如ext4),文件系统映像的类型可以更改为任何可以工作的类型 如何使用C代码完全从物理内存成功装载映像 我所尝试的: 从/dev/mem(如下所示:)装载时,虽然没有失败,但我在目标目录中的映像中没有看到想要的文件。此外,该方法使用char设备,因此ext4无法工作,因为它需要一个块设备 在rootfs

我用自己的
init
可执行文件启动linux,该文件是用C编写的。 作为init过程的一部分,我想挂载一个预加载到物理内存中的自定义文件系统映像(比如地址0xFFFF0000)

只要有POSIX(如ext4),文件系统映像的类型可以更改为任何可以工作的类型

如何使用C代码完全从物理内存成功装载映像

我所尝试的:

  • 从/dev/mem(如下所示:)装载时,虽然没有失败,但我在目标目录中的映像中没有看到想要的文件。此外,该方法使用char设备,因此ext4无法工作,因为它需要一个块设备
  • 在rootfs中构建另一个映像文件,并使用0xFFFF0000中的原始数据填充它,然后装载它。它是哑的,在重新启动时不会保存对映像本身的更改

注意:如果需要,我已经为我的系统启用了循环设备

您可以针对/dev/mem为我们设置一个循环设备吗?不确定,还没有找到相关的规范,您可以在
man losetup
中的文件中阅读关于在特定偏移处创建块设备的内容。您是否建议在/dev/mem中的特定偏移处创建块设备(哪个应该是实际地址)?