Я использую Ubuntu 10.04(64bit) для моего рабочего стола.
Машина имеет 5 ГБ оперативной памяти.
Я хочу использовать RAM-диск (1G или 2G), но я не знаю, как мне это сделать.
Есть ли продукт с открытым исходным кодом RAM-диска?
Я использую Ubuntu 10.04(64bit) для моего рабочего стола.
Машина имеет 5 ГБ оперативной памяти.
Я хочу использовать RAM-диск (1G или 2G), но я не знаю, как мне это сделать.
Есть ли продукт с открытым исходным кодом RAM-диска?
Технология встроена в ядро, вам не нужны никакие дополнительные инструменты. На самом деле у вас уже есть несколько 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
напрасно. На сервере вы можете избежать неприятностей, если будете осторожны.