问题标签 [ramdisk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2269 浏览

linux - 使用 ramdisk 作为 rootfs 引导时找不到初始化进程

我正在尝试为使用 AT91SAM9261 和 2.6.30 内核的设置设置 ramdisk。我知道你会说我为什么不使用 initramfs?我也将使用那个,到目前为止,我想检查是否可以使用 ramdisk 作为 rootfs 启动。

我已经有一个根 fs 在这个系统上以 jffs2 格式运行良好。我使用了以下教程:

http://www.ibm.com/developerworks/library/l-initrd/

所以我直接在嵌入式目标上创建了 ramdisk,大小为 4MB。我使用了“dd”和“mkefs”,如果我在 rootfs 是我的 jffs2 时将它挂载为循环,则 ramdisk 映像工作正常。我可以浏览 mount_point 并在里面做一些事情。内容是根据上述链接中的“手动构建初始 RAM 磁盘”部分创建的。

在 /dev 中,我放置了 null 和控制台,在 /bin 中,我复制了 busybox 并创建了链接。我也将execute属性设置为init脚本,当我在这里运行它时效果很好(作为循环设备,jffs2作为rootfs)

在我的内核配置中,我启用了 ramdisk 支持,如下所示:

使用 tftp 我将 ramdisk 映像下载到 0x21100000。在 0x20008000 我有未压缩的内核,在 0x22000000 复制了 zImage。

但是,我无法成功启动系统,因为它在检查 init 进程时挂起。正如我所提到的,我多次检查了我的 init 是否可以执行,

我还在 bootargs init=/bin/busybox 或其他脚本/二进制文件中使用来检查是否有任何可以用作 init。

我现在使用的命令行:

bootargs=64M 控制台=ttyS0,115200 root=/dev/ram0 rw initrd=0x21100000,4194304 init=/init

对于某些人,我将所有权设置为“nobody”只是为了检查它是否有任何区别。从日志输出中可以看出,ramdisk 已挂载,但 init 失败。它给出了检查 ext2 图像的警告,这是我在复制它之前所做的,我没有报告错误。

tftp 服务器在 Windows7 上。如果我将 ramdisk 映像从 linux 复制到 Windows,然后从 Windows 服务器执行 tftp,我可能会有一些不兼容。所以我再次将图像从 Windows 复制到 linux,安装它并检查 FS 是否报告任何错误并且可以执行脚本 - 一切看起来都很正常。

所以我确实有所有文件,属性设置,ramdisk 被报告为作为 rootfs 安装正常,但找不到 init。

我计划重建busybox并再试一次,但是由于我当前的ramdisk映像在我将其挂载为循环时可以正常工作,因此我没有太多信心它会改变一些东西。我没主意了。我一整天都在努力让这个工作。

非常感谢您的帮助。

谢谢。

0 投票
1 回答
35 浏览

memory - 可以配置 64 位 vmware 主机,以便 windows server 2003 32 位客户端可以分页到内存

我有一个旧的 windows 2003 R2 32 位系统(客户端),它已迁移到一个非常大的 vmware 64 位主机(主机),具有大量内存。

主机是否可以在 ram 中配置一个磁盘,该磁盘可以被客户端用作页面文件,以便分页实际上是 ram。

IT 管理主机,如果可能,我需要提供指导(关键词、链接、参考)以促进解决方案。

0 投票
1 回答
227 浏览

c# - C# 代码存在 RamDisk 路径长度问题

我已将文件复制到 RAM 磁盘,但我收到一条没有意义的错误消息,因为路径实际上比物理磁盘上的路径短,而且肯定少于 260 个字符。任何建议如何解决这个问题。更改代码不是一种选择。

我正在使用 ImDisk 创建 RAM 磁盘。我的 RamDisk 定义为Z:

这是我尝试过的:

  • 手动缩短路径 - 即拥有最短的父级 - 即只使用驱动器。
  • 我一直在研究使用 mklink 使用 \J \D 选项构建一些链接。但仍然不起作用 - 同时使用:物理 -> RamDisk 和 RamDisk -> RamDisk。

  • Substr,用于将 RamDisk 路径映射到一个字母。这没什么区别。

  • \?\,我试过这个 - 但我遇到了程序问题,因为我认为它检查非标准路径并且我无法修改源代码。

  • 我尝试过将 \?\ 与 mklink 结合使用,因此我创建了一个指向 \?\z 的链接:

0 投票
2 回答
3947 浏览

gradle - Gradle - 使用 RAMdisk

我刚刚想到使用RAMdisk来编译结果1

如何在 Gradle 中使用 RAMdisk?

我想值得将文件夹移动.gradlebuildRAMdisk 中。

0 投票
0 回答
116 浏览

file - “引导块”的定义是什么?

我找不到引导块的任何适当解释和定义。我尝试在维基百科中查找它,但答案并不令人满意。

0 投票
1 回答
80 浏览

linux - 在 ramdisk 上缓存 - 查找要删除的最旧文件

我在 linux 中有一个很好的缓存系统,它使用 ramdisk 来缓存图像文件和我网站各个页面的 HTML 输出。

我的网站相当大,缓存所有内容所需的 ramdisk 空间超过 15GB(不包括图像输出),我只有 2GB 可用于缓存。

写入和读取缓存相对较快,但问题是试图弄清楚当我用完空间以便为新文件腾出空间时如何快速找到最陈旧的文件。我相信使用“ls -R”并扫描大输出是一个缓慢的过程。

我唯一对我来说效率低下的另一个选择是频繁刷新整个缓存,以便永远不会用完 ramdisk 空间。

我的缓存允许我的网站以低于 200 毫秒的第一个字节 (TTFB) 时间加载许多页面,这是谷歌喜欢的,所以我想在从缓存加载文件时尝试将 200 毫秒作为最大 TTFB 值,即使由于缺乏 ramdisk 空间,文件被删除。

我曾想过通过缓存指针使用直接访问内存,但由于缓存的输出大小不同,我觉得该选项最多会浪费内存空间或使用大量 cpu 来查找下一个空闲内存位置。

任何人都知道如何快速查找然后从缓存中删除最旧的文件?

0 投票
0 回答
362 浏览

c - C 中的 RAMDISK 数据传输(fread)

是的,所以我正在尝试优化一个软件,该软件需要在 C/OpenCL 中读取一个巨大的图像文件(1.3 GB),以便将其以 40 MB 块传输到设备。

我用 tmpfs 创建了一个 RAMDISK 来存储文件,但是当我分析比特率时,我发现使用 RAMDISK 实际上比使用我的 SSD 读取图像文件要慢一些。

所以我想知道,打开操作(使用 fopen)是否进行 RAM 到 RAM 传输以将数据存储在缓冲区中?或者是文件系统的开销导致了这个性能问题?

0 投票
1 回答
29 浏览

macos - 文件在磁盘上占用更多空间

使用 查看文件的详细信息时Finder,会显示文件占用的空间大小的不同值。例如,一个文件占用 28.8KB 的 RAM,但占用 33KB 的磁盘。有人知道解释吗?

0 投票
2 回答
325 浏览

c - 在 MINIX 中更改 /dev/zero 以生成 'a'

对于一个项目,我必须更改零驱动程序以产生无限量的“a”而不是通常的零。所以我修改了/usr/src/drivers/memory/memory.c

这是原来的:

这是我的修改:

所以我保存并关闭并重新编译 memory.c 但我说的时候没有任何变化cat /dev/zero。我什至尝试删除 /dev/zero 并使用mknod /dev/zero c 1 5它来创建一个新的。但仍然没有任何变化。我也试过重启。

我是在更改错误的文件还是没有编译正确的文件?

0 投票
1 回答
601 浏览

minix - 在 MINIX 中创建自定义 RAM 磁盘

所以我正在做一个需要我在 MINIX 中创建 RAM 磁盘的项目。问题如下:

你的任务是实现你自己的 RAM 磁盘,它可以用作存储需要快速访问的数据的位置。它应该对每个人都有读写权限,并且大小必须为 10MB。

我正在努力为 MINIX 查找有关此主题的信息,因此我一直在尝试编写许多其他适用于 Linux 发行版的教程。

使用教程,我在 MINIX 中完成了以下操作:

然后mkfs -b 10240 -i 2000 -B 1024 /dev/ram0产生错误:

mkfs: /dev/ram0: 块数对于设备来说太大了。

即使我将-b参数设置为 1,也会发生这种情况。当我键入mkfs /dev/ram0错误时,会出现以下内容:

mkfs:这个设备不能保存文件系统。

在教程中,我可以看到作者在 grub.conf 中将 ramdisk 的大小增加到 16GB,但该文件不在 /etc 中。

任何帮助将不胜感激,因为我正在努力寻找有关 MINIX 的一般信息以完成此类任务。