12

Я использую Ubuntu 10.04(64bit) для моего рабочего стола.
Машина имеет 5 ГБ оперативной памяти.

Я хочу использовать RAM-диск (1G или 2G), но я не знаю, как мне это сделать.

Есть ли продукт с открытым исходным кодом RAM-диска?

1 ответ1

18

Технология встроена в ядро, вам не нужны никакие дополнительные инструменты. На самом деле у вас уже есть несколько RAM-дисков (которые вы не должны использовать, они зарезервированы для системы), которые вы можете увидеть, выполнив

grep -w tmpfs /proc/mounts

Чтобы настроить 2 ГБ ОЗУ, смонтированный на /ramdisk , добавьте следующую строку в /etc/fstab:

ramdisk  /ramdisk  tmpfs  mode=1777,size=2g

Затем подключите диск с помощью команды mount /ramdisk (это будет выполнено автоматически при перезагрузке).

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


Вы можете изменить /tmp на RAM-диск. В приведенной выше строке /etc/fstab вместо /tmp /ramdisk , затем перезагрузите компьютер.

При первой перезагрузке после изменения /tmp на RAM-диск файлы, которые были в /tmp будут скрыты. Это безвредно, за исключением того, что они тратят немного дискового пространства. Вы можете очистить их (после перезагрузки с /tmp на диске RAM), выполнив

mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt

Команда mount --bind делает /mnt дублирующим представлением вашей корневой файловой системы; но в то время как RAM-диск теперь скрывает /tmp в корневом представлении, ничто не скрывает /mnt/tmp .

ДОБАВЛЕНО: Вы можете переключить /tmp на RAM-диск без перезагрузки, это немного сложнее. Добавьте строку в /etc/fstab как указано выше, затем выполните следующие команды:

mkdir /tmp.old
mount --bind /tmp /tmp.old
mount /tmp
cd /tmp
ln -s /tmp.old/* /tmp/.* .

Затем удалите /tmp.old после следующей перезагрузки.

Причина, по которой вы не можете просто переместить файлы из /tmp.old в /tmp заключается в том, что некоторые критически важные программы открывают файлы в /tmp , например /tmp/.X11-unix/X0 который слушает X-сервер, и каждая программа с графическим интерфейсом открывается при запуске. Перемещение файла в другую файловую систему означает его копирование и удаление старого, так что в итоге X-сервер все еще слушает /tmp.old/.X11-unix/X0 но клиенты X обращаются в /tmp/.X11-unix/X0 напрасно. На сервере вы можете избежать неприятностей, если будете осторожны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .