Ramdisk ubuntu 10.04


12

Я використовую Ubuntu 10.04 (64bit) для свого робочого столу.
Машина має 5 Гб оперативної пам’яті.

Я хочу використовувати диск RAM (1G або 2G), але я не знаю, як це зробити.

Чи є продукт із відкритим кодом диска оперативної пам’яті?

Відповіді:


18

Технологія вбудована в ядро, вам не потрібні додаткові інструменти. Насправді у вас вже є декілька дисків оперативної пам’яті (які ви не повинні використовувати, вони зарезервовані для системи), які ви можете бачити, роблячи

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/X0X-сервер, який слухає, і кожна програма GUI відкривається при його запуску. Переміщення файлу до іншої файлової системи означає його копіювання та видалення старої, тож ви отримаєте X-сервер, який все ще слухає, /tmp.old/.X11-unix/X0але X-клієнти звертаються /tmp/.X11-unix/X0марно. На сервері ви можете піти з ходу, якщо будете обережні.


@giles: Чи є спосіб це зробити без змін fstab та перезавантаження? Я припускаю, що існує відповідний метод mkfs, за яким слід горіння, але "man mkfs" виявився не дуже корисним.
готелі

1
@hotei: перезавантаження лише для переходу /tmpна tmpfs. Це не обов'язково, і я відредагував свою відповідь, щоб пояснити, як це зробити, але це складніше. У цьому немає жодної mkfsучасті, тому що для підготовки немає ядра, де ядро ​​обробляє все.
Жил "ТАК - перестань бути злим"

@giles: Дякую за оновлення. Мені не вистачало тієї частини, де "магія трапляється" під час читання монтом лінії fstab. Я вважаю, я розумію, чому це працює зараз.
готелі

Чи можу я запитати, чи це призводить до помітного прискорення?
Роберт Массайолі

@Robert: Я думаю, що це спричинило помітну швидкість на дуже повільному SSD мого нетбука (головним чином через те, що синхронізація може тривати кілька секунд, а /tmpна диску збільшується частота синхронізації), але це ненадійне суб'єктивне враження. Я ніколи не намагався орієнтуватися.
Жил "ТАК - перестань бути злим"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.