LINUX.ORG.RU

Копирование в RAM


0

2

У меня 4 гига оперативки и мне было бы не плохо использовать в некоторых случаях их по полной Я хотел бы написать скрипт чтобы можно было ввести c2r /home/bupyc/megaprog И по окончанию процесса получить скоростную работу этой папки конечно же в RAM Судя из ArchBang'овского cp2ram он выполняет это mkdir /liveinram cp -a /bootmnt/* /liveinram/ umount /bootmnt mount --bind /liveinram /bootmnt

Как я понял у него все файлы лежат в рам и он просто перекидывает все с носителя и перемонтирует... Мне нужно создать рам диск mount -t tmpfs -o size=300M tmpfs /home/bupyc/megaprog2 cp /home/bupyc/megaprog/* /home/bupyc/megaprog2 а вот дальше...как то надо наложить одну фс на другую) Чтобы файлы читались из RAM но файлы продолжали быть по тому же пути в FS. Было бы просто отлично если бы изменение таких данных виляло на фс и на рам одновременно.

★★

Последнее исправление: Bupyc (всего исправлений: 1)

Ответ на: комментарий от anon_666

Я искал По идее если я mount --bind сделаю я получу то что я хочу?

Bupyc ★★
() автор топика

--bind тут ни при чём, так как он позволяет одним и тем же файлам быть доступными по двум разным точкам монтирования (синонимам). Файловая система при этом для обоих точек будет одна и та же — исходная. aufs или unionfs поможет, но в случае совпадающих файлов модифицировать их одновременно не получится - должен быть приоритет одной ФС над другой. В принципе, задача решаема при помощи костылей и таких скриптов:

load-ram:

#!/bin/bash
mkdir /var/tmp/load2ram
cp -R /home/user/test/* /var/tmp/load2ram/
sudo mount -t tmpfs -o size=300M tmpfs /home/user/test
cp -R /var/tmp/load2ram/* /home/user/test/
exit 0
unload-ram:
#!/bin/bash
cp -Rf /home/user/test/* /var/tmp/load2ram/
sudo umount /home/user/test
mv -f /var/tmp/load2ram/* /home/user/test/
rmdir /var/tmp/load2ram
exit 0

Но это очень плохое решение. Конечно, если файлы в памяти и на диске будут разными, то с aufs/unionfs никаких проблем не будет, разве что содержимое памяти всё равно придётся сохранять на диск.

lucif0rm
()
Ответ на: комментарий от lucif0rm

хм...только что сделал bind на папке игры quakelive - при загрузке диск не шуршал и лампочка не мигала Думаю бинда хватает и в случае совпадения он читает из рам изменение мне не обязательно.

Bupyc ★★
() автор топика
Ответ на: комментарий от Bupyc

bind не хватит. А вот cat `find /some/dir/to/cache -type f` >/dev/null вполне хватит чтобы данные попали в кэш

Nastishka ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.