Как мне сделать RAM диск?

55

Я хочу сделать раздел, который сделан из оперативной памяти ...

пример

В Windows 7 вы можете сделать раздел, который сделан из оперативной памяти

введите описание изображения здесь

Я создал 1 ГБ раздела в оперативной памяти. используя Primo RamDisk

Есть ли хорошая альтернатива в Ubuntu?

Один ноль
источник
3
Ubuntu поставляется с tmpfs. Вам не нужно создавать RAMDISK.
mixdev
В зависимости от предполагаемого варианта использования вам может не понадобиться виртуальный диск для Ubuntu (или большинства дистрибутивов Linux). Операционная система кэширует операции чтения и записи в ОЗУ, когда она работает с обычными дисками. Если вы прочитали небольшой файл несколько раз, он будет извлечен с диска только один раз, а затем извлечен из кэша ОЗУ в следующий раз. Если у вас достаточно ОЗУ, все, что вы делаете, будет кэшироваться таким образом, поэтому вы практически не будете повторять действия на диске. Если вы хотите использовать непостоянную быструю память вместо файлов, вам все равно нужен RAMDISK. Смотрите linuxatemyram.com для более подробной информации.
TafT

Ответы:

77

Это покажет вам, как сделать RAMDISK супер быстрым и простым. С RAMDISK вы можете использовать свою память для временного пространства, и это также намного быстрее, чем ваш жесткий диск.

Теперь давайте начнем с использования следующих 2 команд, чтобы сделать ваш RAMDISK.

Поместите все, что вы хотите, чтобы ваш RAMDISK назывался там, где я написал «nameme».

mkdir -p /media/nameme

mount -t tmpfs -o size=2048M tmpfs /media/nameme/
Приведенные выше команды будут использовать 2 ГБ ОЗУ для RAMDISK. Если у вас не так много памяти, как у меня, я бы использовал 512 МБ или 1 ГБ. Далее мы собираемся создать команду для терминала, которая автоматически создаст RAMDISK для вас.

Источник: Как создать RAMDISK в Linux

Митч
источник
3
Как я могу сделать это сохраняется между перезагрузками?
Чови
1
Будучи оперативной памятью, она нестабильна, при перезапуске все теряется, даже если горячая перезагрузка BIOS / EFI очистит оперативную память. Лучшее, что вы можете сделать, это создать скрипт оболочки, который запускает команды при входе в систему.
Брэндон Макиэрн
1
@ Чов, чтобы сохранить, у вас есть несколько вариантов, я думаю о 2 на данный момент. 1. Записать API для записи на RAM-диск и асинхронную запись на жесткий диск. Всегда читайте с оперативной памяти, только при загрузке прогрейте оперативную память с диска. 2. время от времени вызывайте какой-нибудь скрипт, который копирует что-либо с ram-диска на жесткий диск и копирует обратно один раз после загрузки.
Лукас
другим вариантом было бы /tmp/cacheуказать что-то вроде вашего кеша dir, где этот каталог на самом деле является точкой монтирования overlayfs (используя tmpfs в качестве upperdir и что-либо еще в вашей обычной файловой системе, с которой вы обычно взаимодействуете, как lowerdir). это позволит вам иметь быстрый, эфемерный слой и что-то, что можно тривиально синхронизировать, если вы иногда захотите сделать его части постоянными.
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, так как она будет доступна при перезагрузке. Разрешения виртуального диска должны быть доступны для записи всем. Права доступа по умолчанию для tmpfs (chmod 1777) верны.

sudo chmod 1777 /media/ramdisk
drwxrwxrwt 2 root root 180 Apr 23 07:34 /media/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, как при перезагрузке). Следующее изменит размер виртуального диска на 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
rickfoosusa
источник
1
Технически, tmpfsэто ramfsне рамдиск .
Heemayl
2
Согласен. Я решил использовать RAMDISK, так как это общее название для Windows.
rickfoosusa
Как можно проверить, действительно ли виртуальный диск используется? Я всегда вижу это как б 0%.
БТР Найду
9

Добавив мои 2 цента для случая, когда у вас нет привилегий root:

Цитирование из этого ответа от unix.stackexchange

Linux предоставляет устройство tmpfs, которое может использовать любой пользователь, / dev / shm. По умолчанию он не подключен к определенному каталогу, но вы все равно можете использовать его как один.

Просто создайте каталог в / dev / shm, а затем вставьте в него ссылку, куда хотите. Вы можете дать созданному каталогу любые разрешения, которые вы выберете, чтобы другие пользователи не могли получить к нему доступ.

Это устройство с поддержкой оперативной памяти, так что то, что есть в памяти по умолчанию. Вы можете создавать любые каталоги, которые вам нужны, внутри / dev / shm

Естественно, файлы, размещенные здесь, не выживут после перезагрузки, и, если ваша машина начнет подкачку, / dev / shm вам не поможет.

Юваль Ацмон
источник