如何制作RAM磁盘?


55

我想制作一个由ram制成的分区...

在Windows 7中,您可以制作一个由ram制成的分区

在此处输入图片说明

我在ram中创建了1 GB的分区。使用Primo RamDisk

Ubuntu中有什么好的替代方法吗?


3
Ubuntu随附了tmpfs。您无需创建RAMDISK。
mixdev 2014年

根据您的预期用例,您可能不需要用于Ubuntu(或大多数Linux发行版)的ramdisk。操作系统在使用常规磁盘时会将读取和写入活动缓存到RAM。如果您多次读取一个小文件,则只会从磁盘中读取一次,然后在接下来的时间从RAM缓存中检索该文件。如果您有足够的RAM,那么您所做的一切都会以这种方式进行缓存,因此重复磁盘活动很少。如果要使用非持久快速内存而不是文件,则仍需要RAMDISK。有关更多详细信息,请参见linuxatemyram.com
TafT

Answers:


77

这将向您展示如何快速轻松地制作RAMDISK。使用RAMDISK,您可以将内存用于临时空间,它也比硬盘驱动器快得多。

现在,让我们使用接下来的2条命令开始制作RAMDISK。

在我写“ nameme”的地方放任何您想用来命名RAMDISK的东西。

mkdir -p /media/nameme

mount -t tmpfs -o size=2048M tmpfs /media/nameme/
上面的命令将2GB的RAM用于RAMDISK。如果您没有我的内存,我将使用512MB或1GB。因此,接下来要为Terminal创建一个命令,该命令将自动为您创建RAMDISK。

资料来源: 如何在Linux中建立RAMDISK


3
如何在重新启动之间保持这种状态?
chovy

1
由于它是RAM,因此易失,即使重新启动BIOS / EFI也会清除RAM,但重新启动后,它们全部丢失。最好的办法是制作一个Shell脚本,该脚本在登录时运行命令。
Brandon MacEachern

1
@chovy坚持下去,您目前有几种选择,我认为是2。1.写api写入ram磁盘,异步写入hdd磁盘。始终从ram读取,仅在启动时从磁盘预热ram。2.定时调用一些脚本,该脚本将ram磁盘中的任何内容复制到某些hdd磁盘中,并在启动后复制一次。
卢卡斯

另一个选择是将类似的东西指定/tmp/cache为您的缓存目录,其中该目录实际上是overlayfs的安装点(使用tmpfs作为上目录,以及通常与之交互的普通文件系统上的其他内容作为下目录)。这将使您拥有一个快速的临时层,并且如果您偶尔要使它的某些部分持久化,则可以轻松同步。
mway

chovy将其添加到/etc/rc.local,它将自动安装分区...但是数据将丢失。
777Anon

49

tmpfs文件系统是RAMDISK。下面将创建一个始终可用的2G RAMDISK。

sudo mkdir -p /media/ramdisk
sudo mount -t tmpfs -o size=2048M tmpfs /media/ramdisk

ramdisk文件夹由root拥有,因为它将在重新引导时可用。ramdisk权限应该是每个人都可以写的。tmpfs的默认权限(chmod 1777)是正确的。

sudo chmod 1777 /media/ramdisk
drwxrwxrwt 2 root root 180 Apr 23 07:34 /media/ramdisk

要使ramdisk永久可用,请将其添加到/ etc / fstab。

grep /media/ramdisk /etc/mtab | sudo tee -a /etc/fstab

您将看到该行从mtab移至fstab。它看起来像这样。

tmpfs /media/ramdisk tmpfs rw,size=2048M 0 0

RAMDISK在使用前不会消耗内存。在最大系统负载期间,请仔细检查您的内存要求。如果RAMDISK太大,您的系统将消耗交换存储空间以弥补差异。

要调整RAMDISK的大小,请编辑/ etc / fstab并通过重新安装ramdisk进行验证(您将丢失当前的RAMDISK内容,就像重新引导一样)。以下将将ramdisk的大小更改为512M

# Check the existing ramdisk size.
df /media/ramdisk
# change size=512M for a 512 megabyte ram drive.
sudo vi /etc/fstab
# Remount the ramdisk, you will lose any existing content.
sudo mount -a /media/ramdisk
# Verify the new ramdisk size.
df /media/ramdisk

1
从技术上讲,tmpfsramfs不是ramdisk
heemayl

2
同意。我选择使用RAMDISK,因为它是Windows上的通用名称。
rickfoosusa

如何检查虚拟磁盘是否真的在使用?我总是将其视为“已用0%”。
BTR Naidu

9

如果您没有root特权,请加上2美分:

引用来自unix.stackexchange的答案

Linux提供了一个任何用户都可以使用的tmpfs设备/ dev / shm。默认情况下,它不会挂载到特定目录,但是您仍然可以将其用作一个目录。

只需在/ dev / shm中创建一个目录,然后将其符号链接到所需的任何位置。您可以给创建的目录选择任何权限,以便其他用户无法访问它。

这是RAM支持的设备,因此默认情况下内存中有什么。您可以在/ dev / shm中创建所需的任何目录

自然,放置在此处的文件将无法重新启动,并且,如果您的计算机开始交换,/ dev / shm将无济于事。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.