直接将 Ramdisk 映像复制到 Ramdisk 设备
是的,所以我在已安装的设备上有一个 Ramdisk 映像,例如 /mnt/sda1/Ramdisk.img 。我想将原始数据直接复制到位于 /dev/ram0 的 ramdisk 设备,这样就不需要使用 mke2fs:我可以挂载映像和设备并发现两者是相同的。
理想情况下,这将仅使用 Linux 命令。
到目前为止,我的想法是:将映像安装在环回上,并使用基本 IO 将数据从一个设备放入另一个设备中。我也许可以用 C 来做到这一点。 另外,以某种方式找到 ramdisk 设备的物理地址并使用 linux 或 C 命令将文件直接放入内存中。
提前致谢。
PS:我知道内核以某种方式标记了用于 ramdisk 的内存,因此系统不会回收它。有人知道这些旗帜在哪里吗?
Right, so I've got a Ramdisk image on a mounted device at, say, /mnt/sda1/Ramdisk.img . I want to copy the raw data directly to a ramdisk device at /dev/ram0, in such a way that there will be no need to use mke2fs: I could mount the image and device and find that both are identical.
Ideally this would use only linux commands.
My ideas so far: Mounting the image on a loopback and using basic IO to put the data from one device into the other. I could probably do this with C.
Also, somehow finding the physical address of the ramdisk device and using linux or C commands to put the file directly into the memory.
Thanks in advance.
P.S: I know that the kernel somehow flags memory which was used for ramdisks so the system does not reclaim it. Anyone know where these flags are?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
任何类型的复制命令都需要目的地有分区和文件系统。但是, dd 可以在磁盘或分区级别工作,只需指定磁盘即可(例如/dev/sda)或分区(例如(dev/sda1)级别。所以理论上,你可以这样做
Any kind of copy command is going to require a partition and filesystem at the destination. However, dd can work at the disk or partition level, by just specifying the disk (eg /dev/sda) or partition (eg (dev/sda1) level. So in theory, you could do