Концепт режима сохранения в модуль

Ингваро, toxzm подключает модули сам, а если у вас модуль в /modules лежит, то в лучшем случае подключится дважды.
Использовать фильтр из отдельного файла можно, но с некоторыми ограничениями. Дело в том, что на момент сборки модуля ауфс уже.разобрана. Доступно только /memory/changes, если фильтр будет в ченджез то можно взять его оттуда. Тут важно, чтоб этот файл не был вырезан вашими же фильтрами, и чтоб модуль подключался в режиме copy иначе на следующей интерации файла в ченджез уже.не будет. И второе, если сработает maxcopysize, то в секцию нового модуля скопируется не cat filter, а сам список.
Есть мысль перед чтением конфига в шатдауне экспортировать переменную с путем до конфига. Типа CFGPWD, тогда дополнительные фильтры или секции целиком удобно будет хранить рядом с конфигом или в пределах этой фс.
секция:
source $CFGPWD/section-name
фильтр:
ADDLAYER0=$(cat $CFGPWD/folder/filter)

Uird.mode=save не очень. Тут только сохранение в модуль. Варианты пока такие:
toxzm
2xzm
tosqfs
sqfs
squash
tomod
xzm
xzmcfg
Что-то такое видится. И еще имя для папки надо, в принципе может быть такое же как mode.
З.Ы. Ингваро, шарик uird видел уже :slight_smile: ?

Для uird.shutdown добавлен параметр haltonly. С ним сборка модулей пропускается при ребуте, собирает только при выключении.

Мне нравится xzm.

А xzmcfg? Как-бы намекает, что конфиг надо указать :slight_smile:

Да, но мне не очень нравится как это выглядит)

Собственно место нашлось

ADDFILTER0="$(cat /memory/layer-base/1/optional/base-filtr)"

Папка optional лежит у меня пустая и непонятно для чего. А тут пригодилась
Теперь получается что фильтр, сделанный для mksquashfs для моей старой писалки (строки без слэша) , не подходит для uird-писалки (строки со слэшэм)
И непонятки. Задаю для удаления /root сохраняется root а home удаляется
Как будто там не mksquashfs а что то другое

Весьма интересно, но лучше привязать шарик к событию
Допустим успешная запись модуля то шарик.
Нет успешной записи то лучше скромно выйти
И логи что то так быстро пробегают, что не успеваешь прочесть
Зато шарик в два раза дольше летит

При неудаче выбросит в консоль с предложением сохранить вручную. Шарик это все ОК.
Путь который вы указали будет существовать только если конфиг указанный в уирд.ченджез в той же фс. Если магос на сда1, а сохраненки на сда2 путь будет недоступен. То есть как частный случай норм, но рекомендовать такое не правильно.

как задаете?

Задал такой фильтр

/tmp
/run
/memory
/root
/etc/resolv.conf
/etc/resolv.conf.save

Это в dropfilter?
/run /tmp /memory указывать не надо, они и так удаляются. Также как артефакты ауфс.в корне.

Хорошо бы копировать секции без раскрытия переменных и функций.

Хорошо бы, но пока не знаю как. Если копировать как строку, то перестанут работать многострочные списки в секциях.

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

Получилось. Только не забывайте про кавычки.

Ну похоже запустил

/memory/layer-base/0/modules/93-new.cfg

XZM0=93-1-new.xzm
MODE0=‘mount’
REBUILD0=‘yes’
ADDFILTER0=""
DROPFILTER0=$(cat /memory/layer-base/1/optional/base-filtr)
SQFSOPT0=’’
MAXCOPYSIZE0=’’

/memory/layer-base/1/optional/base-filtr

/home
/mnt
/.savelist
/.savetomodule
/.devsearch

Запуск из меню grub2

uird.mode=toxzm uird.shutdown uird.changes=/modules/93-new.cfg

В основном все ок.
Добавил папку /etc/1 и она записалась в модуль uird-писалки
Удалил папку /etc/1 и она удалилась из модуля uird-писалки
Проблемы

  1. Скрытые файлы в корне (.savelist и др) не удалились
  2. Но вот тень удаленного файла мне записать не удалось
    Т е если установить допустим новое ядро а старое находится в другом модуле
    Как теперь удалить из системы старое ядро ?

PS
У меня все просто. Писалка на базе 81-savetomodule

  • Системный модуль куда пишутся обновления и тени в том числе.
    Систему обновляю через rpmdrake. Выключаю и получаю обновленную систему.
  • Пользователский модуль. Сюда пишется хомяк и все что с ним связано.
  • Когда модули разрастаются то перепаковываю сборку

Эфективность конечно низкая. Только то что все просто

У меня
/memory/layer-base/0 - это дистры
/memory/layer-base/1 - общие модули к дистрам
/memory/layer-base/2 - это аналог MagOS-Data. Он то и может лежать в другом диске

Это потому, что у вас MODE0=‘mount’ если будет copy тени будут сохраняться.
Если добваить MAXCOPYSIZE0=50, то при превышении модулем 50 метров, будет создан новый модуль с MODE1=copy, старый переведен в mount. Учитывая, что модули при этом ни разу не склеиваются ауфсом тени тоже будут сохранены. А если у вас только mount модуль c REBUILD=yes, то при склейке модуля с changes тени исчезнут.

Почему вы держите его в modules его же смонтирует uird.ro, или вы его в uird.noload фильтруете?

По идее это должен быть у меня системный модуль
Т к поднятую сеть он у меня вроде не запомнил. Ну а старая писалка сеть запоминает
А системные модули это base, modules
Только положил я его в /memory/layer-base/0/modules
А стартанул он после магос-модуля из file:///memory/layer-base/1
Хотя по идее должен стартовать после всех модудей из /memory/layer-base/0
Конечно может что напутал. Пока проверял только то что пишет или нет.