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