我们正在尝试构建一个定制的安装棒,以便将 Linux 安装在我们的嵌入式产品上。我们希望每次都从头开始构建它——也就是说,从(本地)存储库中提取 RPM。
我们迄今为止使用的所有机制都要求我们在构建时在构建系统中拥有一个物理 USB 记忆棒。由于多种原因,这是痛苦的。
我们真正想做的是构建一个图像(即文件),稍后可以将其复制到物理设备(例如,laDD到 USB 记忆棒)。
我们尝试过使用虚拟机(Virtual Box)来进行欺骗,但一直无法弄清楚如何让虚拟 USB 记忆棒出现在那里。
在没有棍子的情况下创建棍子图像的好方法是什么?可以接受的是,作为“最后的修饰”,一些魔法区域必须被挠痒痒——这是可以在棍子填充时间快速完成的事情。但等待完整的系统生成对于我们的场景来说太长了。
[如果重要的话,我们使用 FC 7 作为我们的基础——它很稳定,更重要的是,我们的驱动程序都可以与该内核一起工作]
答案1
最简单的方法是使用环回设备。制作一个与 USB 记忆棒大小相同的文件,然后用于losetup
将其映射到循环设备。那么循环设备是一个块设备,因此它的行为与 USB 记忆棒完全相同。
唯一的例外是分区。但是您可以通过更多的lostup调用来修复这个问题,以使用offset(-o
)参数将您的分区映射到其他循环设备。如果将整个设备映射到loop0,将第一个分区映射到loop1,第二个分区映射到loop2,等等,那么事情几乎会按预期进行。您始终可以将loop0符号链接到循环,然后名称与可分区块设备完全相同(有是可分区环回设备的补丁,所以您甚至可能不需要这样做)。