Сайт | Скачать | Видео | Wiki

Автор Тема: Скрипт по автоматическому переносу "горячих модулей" в базу (modules)  (Прочитано 23970 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5359
  • Репутация: +140/-1
Ради интереса запуcтил Magos.iso с uird.noload=70-. Затем подключил его (скрин). Вообщем в PRA и MagOS есть общее, меняются пути модулей с горячим подключением, что легко отследить в aufs-n каким-нибудь скриптом.
« Последнее редактирование: 04 Ноябрь 2020, 20:59:08 от krasnyh »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
 Копать, я думаю, надо примерно в эту сторону:
Код
# ls -l --full-time /sys/fs/aufs/si_*/br[1-9]*|awk '{print $7}'|cut -f1 -d.|sort|uniq -u
18:51:21
18:55:40
# ls -l --full-time /sys/fs/aufs/si_*/br[1-9]*|egrep '18:51:21|18:55:40'|awk '{print $9}'
/sys/fs/aufs/si_45e21238854d0bf2/br29
/sys/fs/aufs/si_45e21238854d0bf2/br30
# cat /sys/fs/aufs/si_45e21238854d0bf2/br29 /sys/fs/aufs/si_45e21238854d0bf2/br30
/mnt/bundles/W-1.17.xzm=ro
/mnt/bundles/slim-1.3.6.xzm=ro
Первая команда выводит время подключения модулей. Выкидываем из списка "холодные", у них время одинаковое.
Вторая команда находит файлы с этим временем создания.
Третья выводит точки монтирования.
Это будет работать и с подключенными каталогами. На истину в последней инстанции не претендую, но работать должно везде, где есть aufs
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
 Оформил в виде скрипта
Код
#!/bin/sh
ls -l --full-time /sys/fs/aufs/si_*/br[1-9]*|awk '{print $7" "$9}'>/tmp/list
awk '{print $1}' /tmp/list|sort|uniq -u|while read T
do
cat $(grep $T /tmp/list|awk '{print $2}')
done
Вот как-то так  ;)
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
.
меняются пути
Это потому, что вы его по этому пути подключили, если бы подключали из layer-base был бы layer-base, а не data/from. Монтируется же всегда в memory/bundles.
« Последнее редактирование: 05 Ноябрь 2020, 03:06:11 от betcher »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Вот как-то так 
Холодные модули подключаются не одномоментно, а в течении небольшого промежутка времени. Может так совпасть что в этот момент сменится минута (час/сутки и т.д.), не помешает?

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
Может так совпасть что в этот момент сменится минута (час/сутки и т.д.), не помешает?
Это не помешает, время совпадает до микросекунды. Есть другой недостаток - При подключении в верхние слои (mount -o remount,add:$n:) переписываются все br* начиная с $n и ниже. Получается, что это решение пригодно только для безопасного подключения (в нижний слой)
« Последнее редактирование: 05 Ноябрь 2020, 04:58:25 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
время совпадает до микросекунды
Видимо у вас все монтируется одной строкой. В uird сперва создается ауфс, затем по одному добавляются модули. Думаю время будет отличаться (не проверял). То есть нужно сравнивать время с какой-то меткой, временем старта pid 1 например.

Или можем сохранять список в /etc/initvars, как часть стандарта.
  Главное понять зачем вообще это разграничение нужно. На возможность отключить модуль никак не влияет.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
Видимо у вас все монтируется одной строкой.
Да.
сохранять список в /etc/initvars
У меня /tmp/modules.lst, но это костыль.
На возможность отключить модуль никак не влияет.
Задача не отключить, а перенести в modules для последующего автоподключения при загрузке. Хотя гораздо проще перетащить мышью.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Хотя гораздо проще перетащить мышью
И я о том. Если мне нужно подключить однажды, подключаю из любой папки, если нужно "навсегда" сразу переношу в modules и подключаю там. Если модуль подключен не из modules значит мне это не было нужно, и не понимаю зачем его туда принудительно переносить.
« Последнее редактирование: 05 Ноябрь 2020, 08:56:29 от betcher »

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34036
  • Репутация: +231/-0
    • PuppyRus-A
Что мы здесь изобретаем? Задача решена.
Если есть просто желание попрограммировать интересное :
1.  Гуй настроек dunst
2.  Улучшить мой journalctl-gui

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
Что мы здесь изобретаем?
Ничего, изучаем aufs.
Задача решена.
Очередным костылём?
Если есть просто желание попрограммировать
Желания давно нет, ибо ты влезешь и всё обгадишь. Впрочем я тоже не лучше. Своё исправляй сам, у нас подход и логика разные.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34036
  • Репутация: +231/-0
    • PuppyRus-A
изучаем aufs.
Там можно открыть что-то новое и Вы к этому близки?
у нас
Вы себя на Вы? Или за какую группу выражаете мнение?
Желания давно нет
Ну так тогда чего лезть везде? Нигде же законченного результата нет и все, кроме вас, вокруг в этом  виноваты

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
у нас
"У нас" это у тебя и меня.
Надоел ты со своим влезанием, руководитель хренов, кончай срач.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5359
  • Репутация: +140/-1
если бы подключали из layer-base был бы layer-base
Я запускал с носителя в файловом менеджере, который по умолчанию показывает пути через */data/from/*. Можно перейти в /mnt, там ссыль livemedia на тот же */data/from/*. Сколько шансов, что пользователь полезет по пути /memory/layer-base/* подключать модули на горячую.

А искать по изменившемся путям в aufs-n проще, имхо. Во-первых они все будут расположнены сверху слоя начиная с позиции 01, во-вторых, интерпретируя скрипт DdShurick, там все пути будут одинаковые, кроме подключенных на горячую.


А вот скрипт DdShurick не работает в PRAR, проверил вчера. Сомнения betcher небеспочвенны.

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1546
  • Репутация: +28/-0
  • Автор темы
Из всей этой китайской грамоты ничего не понял. От себя могу сказать, что строка "ls -1 /mnt/.* |egrep '.pfs:$'" в LFA работает нормально.