LINUX.ORG.RU

Проблема с RamDisk и файлами на раб.столе

 


0

1

Всем привет смонтировал рамдиск, для этого создал каталог /media/ramdisk, записал в файл /etc/fstab :

tmpfs /media/ramdisk tmpfs rw,size=55G 0 0

то есть у меня 55 гигабайт размер рамдиска, перезагрузил, в терминале пишу df -h, отображается всё верно 55 гигов,Скрин 1

я могу просто через Файлы открыть каталог media/ramdisk, могу вручную копировать/вставить туда файлы, они открываются, редактируются и т.д., после перезагрузки всё что там было в каталоге, исчезает, то есть рамдиск работает корректно, но когда я запускаю терминал, не погу перейти в каталог ramdisk, возникает проблема:

tt@TT:~$ cd /media

tt@TT:/media$ cd /ramdisk

bash: cd: /ramdisk: Нет такого файла или каталога

tt@TT:/media$ sudo cd /ramdisk

[sudo] пароль для tt:

sudo: cd: команда не найдена

tt@TT:/media$

Скрин 2

не переходит, пытаюсь добавить sudo и ввожу пароль, пишет «Команда не найдена», и то же самое с файлами, не могу туда через терминал ничего скопировать, а если вручную через Файлы вставляю туда файл, обычный txt, то через терминал он не открывается, пишет «Нет такого файла или каталога», что я делаю не так? я уже перепробовал несколько разных папок для рамдиска, и /mnt/ramdisk , результат везде одинаковый. Убунту 20.4,

так же заметил странность, я только начинаю изучать линукс и на рабочем столе сделал текстовый файл .odt для записи разных команд, это было пару недель назад, после этого комп не включал, и вчера попробовал в этот файл на рабочем столе добавить добавить ещё пару строчек, при нажатии сохранить, вылетает ошибка, и на рабочем столе появляются файлы для восстановления. при запуске самого файла .odt появляется окно с сообщением о восстановлении, нажимаю Начать, но файл после этого не восстанавливается и открывается в первоначальном виде, и на рабочем столе плодятся дампы для восстановления. Пробовал скопировать этот файл и его изменить, то же самое, ошибка при сохранении. На рабочем столе есть простой тхт файл, и с ним проблем нет, сохраняется. Систему ставил несколько недель назад, с оф сайта скачал, после установки нигде ничего не настраивал и не прописывал, не ковырялся в общем кроме рамдиска, и тут файл перестал сохраняться. Пытался на рабочем столе на дампах и на копии файла нажимать Переместить в корзину, но они остаются на месте! а если открыть Рабочий стол через Файлы, там всё перемещается в корзину, и там есть файл 10.txt скопированный из другой папки, но когда я закрыл Файлы, на рабочем столе все старые файлы остались, а новый 10.txt не появился, почему не обновляются файлы на Рабочем столе и в окне Файлы/рабочий стол, что это может быть?

Скрин 3

Скрин 4


Убунту 20.4

Плохой выбор. Уже второй год в гноме уничтожают функционал рабочего стола. Многое вырезали вообще. То что осталось - криво работает. То что пытаются создать - для инопланетян.

сделал текстовый файл .odt для записи разных команд

Это как палить из пушки по воробьям.

На рабочем столе есть простой тхт файл, и с ним проблем нет, сохраняется

Добавь к нему еще Midnight commander и будет идеальная среда, для освоения. Например. Зачастую, если нужно сохранить какую команды, или появилась какая идея, то делаю запись в «user menu». Это сразу и место хранения и среда разработки и средство запуска.

cd: /ramdisk: Нет такого файла или каталога

Конечно нет. Есть: cd /media/ramdisk.

Если ты уже в /media, то: cd ramdisk.

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

спасибо, исправил на «cd ./ramdisk» и перешел в каталог «ramdisk» почему-то этого нет ни в одном мануале про создание рамдиска.

а по второму вопросу подскажете? про то что файл .odt перестал сохраняться и дампы чистятся только после перезагрузки, причем на рабочем столе структура файлов не обновляется в соответствии с изменениями в Файлы-Рабочий стол

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

что посоветуете вместо Убунту 20.4, чтобы рабочий стол был максимально приближен к винде, перед выбором смотрел изначально на mint xfce, это вообще моё первое знакомство с Линем.

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

Моежете подсказать, я в рамдиск скопировал папку на 20 гигабайт, в ней много .txt файлов, каждый примерно 100-900 мегабайт, я запускаю grep в терминале:

grep -rx -f 2700000.txt ./1 > AAAAA.txt

2700000.txt - файл со списком искомых значений, ./1 - это папка с файлами в которых я ищу точные совпадения AAAAA.txt - вывод результатов

команда выполняется, совпадения сехраняются в файл ААААА, проблема в том, что у меня в компе 24 ядра и 48 потоков(2xXEON 2678v3), но при выполнении поиска задействуется на 100% только одно ядро, остальные как в простое, без нагрузки. Как сделать так, чтобы комп при запуске grep по максимуму использовал все 24 ядра и 48 потоков? Пробовал в Системном мониторе дать очень высокий приоритет процессу grep, результат не изменился.

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

пытался сам найти, читал тут https://linux.die.net/man/1/taskset ничего не понял.

потом пробовал это:

Следующим шагом будет задействования всех ядер процессора. Открываем файл: sudo gedit /etc/init.d/rc Ищем строку CONCURRENCY и придаем ей значение: CONCURRENCY=makefile

открывается пустой файл и в терминале вот это:

Tepl-WARNING **: 05:01:35.657: GVfs metadata is not supported. Fallback to TeplMetadataManager. Either GVfs is not correctly installed or GVfs metadata are not supported on this platform. In the latter case, you should configure Tepl with –disable-gvfs-metadata.

потом почитал это https://habr.com/ru/company/xakep/blog/210480/ похоже выход в GNU Parallel?

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

Скрины не открываются без авторизации на форуме.

Создавать на рабочем столе файлы не советую. Создавай их в /home/user/documents или где-то ещё в домашнем каталоге, где user — имя твоей учётной записи. А на рабочем столе можешь создать ярлык на этот файл.

Для описания команд odt не нужен, используй txt.

Проверь файловую систему раздела /home (или корневого, если /home у тебя не в отдельном разделе) командой fsck.

RAM-диск не нужен, даже если памяти очень много. Используй вместо ramfs — tmpfs вместе с разделом подкачки. Если при разметке диска ты не создал этот раздел, то создай хотя бы файл подкачки хотя бы в несколько гигов (см. комментарий Swap manjaro gnome (комментарий)). Тогда система сама решит, что лучше: писать данные с временного диска в ОЗУ или на диск в файл подкачки. И поверь, решит лучше тебя, т. к. память используется не только программами, но и для кэширования диска. Ram-диск нужен только при начальной загрузке.

Чтобы понять про распараллеливание, сначала почитай что-нибудь про процессы и потоки (которые иногда называют нитями, threads) и о том, как они работают. Например, https://habr.com/ru/post/40227/ .

И если хочешь разобраться в linux, первым делом изучи bash и поменьше сиди в графическом окружении, а побольше — в командной строке, можно из графического терминала.

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

И если хочешь разобраться в linux, первым делом изучи bash и поменьше сиди в графическом окружении, а побольше — в командной строке, можно из графического терминала.

Это вредная ввиду своей беспредметности рекомендация.
Для чего ты ему это советуешь? Для какой задачи?

Когда я говорю что консоль замечательна я например рассказываю о комбинации fdisk -l и mount, что удобно при подключении внешних или несмонтированных накопителей и разделов, в частности рассказываю про опции монтирования, про mc -e /etc/fstab.

Или например про быстрый поиск программы через конструкций вида
apt list | grep su | grep p | grep cant

А вот про что ему рассказал ты?
Про то что консоль надо поместить в серебряный оклад и молиться?
Если предлагаешь использование консоли то покажи её преимущества лицом.

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 3)
Ответ на: комментарий от torvn77

И если хочешь разобраться в linux, первым делом изучи bash и поменьше сиди в графическом окружении, а побольше в командной строке, можно из графического терминала.

Это вредная ввиду своей беспредметности рекомендация.

[skip]

Когда я говорю что консоль замечательна я например рассказываю о комбинации fdisk -l и mount

[skip]

Или например про быстрый поиск программы через конструкций вида apt list | grep su | grep p | grep cant

[skip]

Если предлагаешь использование консоли то покажи её преимущества лицом.

Там много чего можно показывать. Поэтому я и посоветовал изучить bash, чтоб самому краткое руководство по этому bash здесь не писать. Тем более и формат форума к этому не располагает — ограничения на длину комментария. Ну и это был бесплатный совет, а не реклама. Когда я устроюсь маркетологом, то буду показывать товар лицом с самой лучшей стороны. А пока, имхо, достаточно дать наводку, куда копать и на чём сосредоточиться.

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

Gentoo

Зачем ты даёшь вредные советы? Ведь начинающий линуксоид может не понять твоего искромётного юмора и поставить генту. Ты готов в этом случае удалённо ему помогать, когда он будет кастовать тебя при возникновении любой проблемы с ней?

ТС, не важно, какой дистрибутив. Ubuntu, как и Mint, вполне подходят для изучения и повседневной работы. Когда поднатаскаешься, можешь посмотреть другие дистрибутивы и выбрать то, что лучше тебе подходит. Но сейчас для тебя главное — это простота настройки. Графическое же окружение можно выбрать по вкусу на любом дистрибутиве. Хочешь — gnome, хочешь — kde, которая больше похожа на Windows, но прожорливая, впрочем, как и Gnome. Xfce на мой взгляд достаточно лёгкая, но в то же время не слишком аскетичная, а потому самое оно. Но это дело вкуса. Есть ещё много других окружений, как то Mate, Cinnamon (форки Gnome); lxde, icewm (сверхлёгкие оболочки); openbox — самая аскетичная из всех, но и самая лёгкая и т. д. И все они доступны практически из любого дистрибутива. Более того, ты можешь накатить сразу несколько разных оболочек (хоть все) и загружать то одну, то другую, экспериментируя. А потом не понравившиеся снести. А если какая-то программа, привязанная к той или иной оболочке, тебе понравится, а сама оболочка — нет, то можно снести только окружение рабочего стола не понравившейся графической оболочки, оставив понравившиеся программы и их зависимости (обычно библиотеки), после чего запускать эти программы из других графических оболочек. И совсем не обязательно использовать графическую оболочку, устанавливаемую по умолчанию. Ты можешь выбрать любую, доступную в репозитории, а установленную по умолчанию удалить, если она тебе не нравится, или оставить. Ты даже можешь снести все графические оболочки и работать в ядерной консоли, что часто делают на серверах, а некоторые и на домашних компах. В этом смысле Unix и Linux намного гибче Windows.

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

Ты готов в этом случае удалённо ему помогать, когда он будет кастовать тебя при возникновении любой проблемы с ней?

За деньги я готов даже за него созвать темы с его проблемами и брать на себя весь негатив от регистрантов и анона-затупка))

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

А пока, имхо, достаточно дать наводку,

Наводка как у тебя похожа на адрес на письме маленького мальчика из деревни.

Ну прочитает он про bash, но как он поймёт что и как и для чего использовать?
Вот в википедии есть замечательная статья по bash, но как из неё извлечёшь использование grep для поиска точного названия пакета?

Он посмотрит на эту статью и решит что ему bash не нужен, так как для применения grep, ps и apt нужен опыт, а ты ему его не дал.

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 2)
Ответ на: комментарий от torvn77

Вот в википедии есть замечательная статья по bash [skip] Он посмотрит на эту статью и решит что ему bash не нужен

Разумеется, я имел в виду не статью про баш из википедии, а нормальное руководство по баш. Причём изучать его надо сидя за компьютером и выполняя примеры, а не лёжа на диване. Начать можно с коротенького цикла из 3 статей https://linuxgeeks.ru/bash-intro.htm , https://linuxgeeks.ru/bash-1.htm и https://linuxgeeks.ru/bash-2.htm . А затем изучить что-нибудь более подробное, например https://www.opennet.ru/docs/RUS/bash_scripting_guide/ для чтения он-лайн или https://ruvds.com/doc/bash.pdf для скачивания. Разумеется, приведёнными ссылками литература по bash не исчерпывается.

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

Статья по bash в википедии не хуже твоих, проблема в другом:
и те и другие не дают примеров для немедленного практического использования, а вот мой пример с поиском grep’ом вывода apt list может быть применён немедленно для поиска нужных пакетов.

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

Как же не дают? Вот цитата из https://linuxgeeks.ru/bash-1.htm :

MYFILES=$(ls -1 /etc | grep %$@~*!G4;:%#`pa)

Тот же grep, да ещё и с запуском дочерней оболочки и присвоением результата переменной окружения. Даже круче, чем у тебя. :-) И это только из начального краткого цикла, а не более полного руководства, где помимо grep ещё и sed с awk описываются.

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

Всем большое спасибо за ссылки и ответы! Я понимаю что это не ответы, а информация о том как найти ответ, вернее научиться самому, вроде как «не нужно давать голодному рыбу, так ты поможешь ему только сегодня, а завтра будет голодать снова, дай ему удочку, и он сам сможет ловить рыбу и перестанет голодать», я согласен, лучше научиться и понимать все команды и уметь ими пользоваться, я просто всегда сидел на винде, и только из-за нескольких программ начинаю пользоваться линем, в винде это просто очень долго получается.

izzholtik, ваша ссылка очень помогла, по ней я установил:

sudo apt-get install parallel

и запустил вот так:

find ./1 -type f | parallel -k -j100% -n 1000 -m grep -H -n -f 2700000.txt {} > AAAAA.txt

в результате все ядра и потоки (24 ядра и 48 потоков) загружены были на 100%, время выполнения задачи 1:38 секунд, при изменении -j100% (% работы программы на одно ядро) на -j48 (без знака % это число указывает на количество работ) в соответствии с 48 потоками в компе, результат по времени выполнения не изменился, менял -n 1000(это количество аргументов), ставил 5000, 100, результат примерно тот же +/- 10 секунд, при выполнении ещё почти вся свободная оперативка забивается в момент.

Хотя при запуске без запараллеливания:

grep -r -f 2700000.txt ./1 > AAAAA.txt

время выполнения этой же задачи на одном ядре с этими же файлами 2:30 секунд.

и вот тут я не совсем понимаю, на одном ядре 2:30, на 24 ядрах и 48 потоках 1:38, то есть вычислительных ресурсов в 24/48 раз больше используется, а срок выполнения задачи примерно в 2 раза только уменьшился, с чем это связано?

буду дальше копать и читать, позже отпишусь о результатах.

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

вычислительных ресурсов в 24/48 раз больше используется, а срок выполнения задачи примерно в 2 раза только уменьшился, с чем это связано?

Потому, что не все параллелится. Элементарный пример.

a=b+c d=e+f g=h+i прекрасно распаралелится. Но чуть измени последнее действие, например, g=a+d и вся паралель на смарку. Мало того, что придется ждать выполнения двух предыдущих действий, так еще и возникают накладные расходы, все результаты предварительных расчетов нужно передать одному ядру, которое будет выполнять последнее действие.

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

Не знаю. Может, нужно ещё с параметрами поиграть, может, всё упирается в I/O памяти, может, рамдиск не с лучшей стороны себя показывает при многопоточном доступе. Вообще, греп по 20 гигабайтам за полторы минуты выглядит вполне быстро.

Может, стоит каким-то образом проиндексировать данные, если они меняются редко, и нужно всякое по ним искать? Распарсить и в БД какую-нибудь залить, например.

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

Для теста я взял не 20 гигов, 3.5, но результат отличный, потому что в файле 2,7млн искомых наборов значений каждое состоит из примерно 40 чиселенно-буквенных выражений в разном регистре, а в 3,5 гигах примерно 100млн похожих значений, среди которых осуществляется поиск совпадений. Я когда пытался запустить поиск с этими параметрами на винде, там система даже не показывала сколько до завершения осталось, но за несколько часов поиска полоса прогресса сдвинулась примерно на 5%, поэтому в лине результат офигенный! В винде я запускал в Аиде тест памяти, пропускная способность на чтение-запись чуть больше 100гб, это очень высокий показатель!

Я думаю, что в момент запуска поиска, например для одного потока, система копирует в оперативку все файлы и там с ними пытается работать, система не знает что они уже там, на рамдиске, и соответственно при запуске сразу в многопоточном поиске, для каждого копирует отдельно в память все файлы, и когда я запускаю поиск в многопотоке, вся свободная оперативка моментально забивается, если не кидать все файлы в рамдиск, то время выполнения увеличится в несколько раз. Получается при поиске, большая часть времени это копирование в оперативку файлов. Если бы можно было системе объяснить что копировать в память все файлы не нужно, и заставить её работать с файлами находящимися в рамдиске, думаю время выполнения было бы около 20-30 секунд, я менял разные параметры запуская с parallel, максимум что удалось это 0:48 получить.

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

Попробуй поиграться с индексацией. Из того, что попалось на глаза, Lucene++ выглядит очень простым в использовании и вроде как есть в стандартных репах. Не знаю, как быстро оно работает и работает ли вообще, но почему не попробовать.

izzholtik ()
Последнее исправление: izzholtik (всего исправлений: 1)
Ответ на: комментарий от izzholtik

Почитал про Lucene++, много разных мнений, не стал углубляться, запустил как есть, в итоге уже сделал всё. Дальше буду так же запускать. Единственное что меня смущает, это отсутствие совпадений иногда. Я при каждом запуске в файл в котором список слов для поиска, копирую несколько значений из папок файлов среди которых ищу совпадения, и не всегда в результатах есть эти совпадения, которые я сам вписал. Причем это зависит от параметров запуска:

$ find ./1 -type f | parallel -k -j6 -n 1000 -m grep -H -n -f 2700000.txt {} > AAAAA.txt

тут запускаю в 6 паралельных поисков, результат есть

$ find ./1 -type f | parallel -k -j12 -n 1000 -m grep -H -n -f 2700000.txt {} > AAAAA.txt

или

$ find ./1 -type f | parallel -k -j100% -n 1000 -m grep -H -n -f 2700000.txt {} > AAAAA.txt

а запуская в 12 потоков или на 100% работы на 1 ядро, результата нет!итоговый файл ААААА пустой))) взаимосвязи так не нашел!) Ну да ладно, выяснять что и как, разбираться в других прогах, будет дольше чем сейчас обработать в 6 потоков.)

Всем спасибо за ваши ответы, советы и те знания, которые я получил тут!

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

А ты пересоздаёшь индекс после копирования файлов?

Попробуй заменить > на >>, чтобы параллельные процессы дополняли файл, а не перезаписывали..

izzholtik ()
Последнее исправление: izzholtik (всего исправлений: 1)
Ответ на: комментарий от izzholtik

Упс, не ту строчку скопировал, у меня два символа >>, я не стал пробовать прогу которую ты советовал, запустил так, без индексирования, уже терабайт прогнал так за сутки!))) Я даже не представляю сколько месяцев я это же делал бы на винде в notepad++ или в утилите grep в самой винде, я кстати в винде sed использовал раньше, запускал батником, удобно когда есть батник для одинаковых операций ежедневно, скопировал sed.exe и батник в нужную папку, стартанул батник и всё! Там батник на 15 строк

odubo ()