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

Я не настаиваю на своем варианте. Давайте думать еще. То что есть сейчас не достаточно управляемо. С конфигами и буквально одной функцией я получил намного больше вариантов работы с сохранениями в модуль. Почитай выше, оно уже работает.
Конфиги я сделал потому, что нужно передать много значений и пихать в cmdline не удобно. Там же не только подключение, но и пересборка. А так все что касается настроек относящихся к работе с сохранением в конкретный модуль лежит в одном месте - в его конфиге. Конфиг создается автоматом и если не нужно ничего сложнее чем аналоги machines или changes.xzm то в конфиг вообще не нужно лезть.

Пробовал.
Из /usr/lib/magos/rc.halt и /usr/lib/magos/rc.halt.pre удалил почти все
UIRD свежее. Задавал в grub2 для папки machines

uird.mode=toxzm uird.shutdown uird.changes=machines/93-new.xzm

uird.shutdown - работает, модули отмонтировались но не формируется 93-new.xzm
В згрузчике mksquashfs нет, но я копировал mksquashfs в /run/initramfs/usr/bin
Может что делаю не так ?

Возможно одного mksquashfs недостаточно, может либы ему нужны. Лучше пересобрать uird наверное, предварительно установив mksquashfs.
Не знаю важно или нет, я писал в uird.changes имя папки начиная со слэша. И самое важное там не xzm должно быть, а cfg после чего uird создаст этот конфиг и уже там пропишет xzm.
То есть uird.changes=/machines/93-new.cfg
Не знаю, кстати, что произойдет если вы укажете 93-new.cfg и при этом 93-new.xzm уже существует. Такой случай не предусмотрел :frowning: Лучше пока новое имя наверное подсунуть, 94-new.cfg :slight_smile:
И не забывайте, что собрать нужно не из мастера, а из бранча. Либо эксперементировать на магосе и взять мой uird.
Мне важно мнение со стороны, насколько это удобно и насколько вообще понятно как это работает. Свое же всегда зашибись, сами знаете :slight_smile:

Тут такой вопрос.

  1. Задал в grub 2 - uird.mode=toxzm …
    И теперь при выключении изменения попадут в модуль.
    Можно ли отменить сохранения модуля ?
    Сейчас я в /etc/MagOS/config пишу SAVETOMODULE=no или перезагружаюсь
  2. Наверно можно для выключения системы задавать uird.shutdown ?
    Или uird.shutdown только для режима сохранения ?
    Вроде шустро отключает

Для отключения использовать можно, но сперва всеравно выполнятся скрипты из rc.halt и все что у системд положено. То есть быстрее быть не должно, но размонтирует перед отключением в идеале все.
Отменить сохранение можно в конфиге модуля, заменив REBUILD на no.
Если отменяете часто, нужно так:

uird.shutdown=ask

будет спрашивать перед сохранением.


Пару фиксов.

  1. Так в этом загрузчике то же пакета /usr/bin/mksquashfs нет
    Пробовал на старой версии загрузчика запускать у себя МагОС

uird.load+=/machines/ uird.mode=toxzm uird.shutdown uird.changes=/machines/93-new.cfg

Сделал /machines/93-new.cfg

XZM0=93-new.xzm
MODE0=copy
REBUILD0=yes
ADDFILTER0=’’
DROPFILTER0=’’
SQFSOPT0=’’
MAXCOPYSIZE0=’’

И формируется пустой 93-new.xzm
Может что упустил ?

  1. Не получается скачать бранч в гит uird - newmode.

git clone --recursive https://github.com/neobht/uird/tree/newmode?files=1
git clone --recursive https://github.com/neobht/uird/tree/newmode

  1. В Магее скачал newmode из гит и сконфигурировал uird
    И магея не запускается. Вроде не может найти путь к ядру

PS

Пока остановился на этапе конфигурирования UIRD

Заходите в папку uird после того как скачали его как обычно git clone --recursive …
git checkout newmode
git pull origin newmode:newmode # эта может даже не нужна

uird.load=+machines не нужно. Пока не нужно.
Конфиг создавать не нужно, он создается сам.
Сейчас активно фиксим с Ильфатом, лучше забирать свежие изменения перед экспериментами. Обсуждаем в телеграме, если хотите присоединиться можем переехать в беседку.

было бы неплохо
хоть знать какие проблемы и что уже решено

Ок, напишу Ильфату.

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

https://yadi.sk/d/DFf73-eFkiWIh
Добавлена обрабока copy2ram, то есть режим можно использовать с фримедиа и режимом mount для модулей.
Починили с Ильфатом исчезновение некоторых теней в модуле при использовании фильтров.
Добавлен параметр silent для uird.shutdown, просто молча работает.
Добавлено логгирование скрипта в шатдоуне в /var/log/uird.shutdown.log, Если фильтрами не зарезать логс сохранится в модуле. Надо там еще подробностей добавить, пока мало чего пишет.
В планах обработка ситуации, когда модуль запаковать не удалось. Есть идеи?

Еще немного фиксов. Работает стабильно в том числе с фримедиа. Есть еще пару нереализованных идей, но можно и походу допилить. Тестить конечно еще надо, но если покрупному косяков не всплывет то думаю готово для перевода в мастер.
Дело за малым - уговорить Антона :)))
Есть вопросы по названиям.
Название режима? Сейчас “toxzm”.
Папка для монтирования слоя (если конфиг не в источниках)? Сейчас “xzmchanges”

Если чего не ясно по смыслу всей затеи - спрашивайте. Нужно будет писать хелп, чтоб знать заранее что непонятно.

Совместными усилиями с Ильфатом добили еще пару моментов. Мне кажется получилась очень хорошая штука. Надо брать :slight_smile:
Попробую собрать плюсы и минусы.
Минусы:

  • по большей части повторяет функционал, который уже есть
  • дополнительный конфиг(и)
  • новые параметры, с которыми нужно будет разбираться
  • не работает без системд
  • Что еще?

Плюсы:

  • реализация не связанна с сохранениями в модуль от магос никак, можно спокойно использовать что нравится;
    раньше для использования сохранений с uird.shutdown в магос нужно было блокировать 80-savetomodule
  • можно использовать uird.shutdown для корректного размонтирования в магос и одновременно machines
  • в простейшем случае не требуется рабираться с конфигами, работает малоотличимо от machines и changes в модуль.xzm
  • полностью перекрывает возможности по сохранению в модуль которые есть в магос
  • не требуется ./lock файлов и перемонтирования дисков с udev при freemedia
  • нет ограничения по времени на создание модуля, которое накладывает системд
  • возможность монтировать модули вместо копирования
  • возможность сохранения в два и более модулей с разными фильтрами; при этом модули могут иметь конкретное имя либо
    привязаны к машине (как машинез)
  • возможность сохранения в модули с разными параметрами для mksquashfs
  • возможность задать максимальный размер для модуля при превышении которого, модуль переводится в режим mount
    и больше не пересобирается, изменения будут писаться в новый модуль с прежними настройками; ввиду того, что в этом
    режиме исключается конкатенация модулей проблем с исчезновением теней не будет в оличии от пересборки модулей в режиме mount
  • гибридный режим для работы с несколькими машинами, когда изменения пишутся выборочно в общий и раздельные модули

Как обычно для последнего магоса:

Добалена возможность делать секцию с привязкой имени модуля к машине.
Нужно вместо имени передать пустое значение.
XZM1=’’
Мелкие исправления и новый баннер :slight_smile:

1 Симпатия

Т е придется когда нибудь выбирать и от чего то отказываться
А может функционал получится объединить ?
Традиционная писалка это пользовательские изменения
Если писать модуль от uird, то, как я понял, система отключена и всяких временных файлов и прочей ненужности мало
То это будет запись системных изменений
Весь вопрос как разделить изменения и можно ли их разделить

Нет, работать будет все что работало раньше. Плюс это, если Антона уговорим :slight_smile:

Это и есть объединение. Заменяет и машинез и сохранение в модуль.

По папкам. Вы можете писать в один модуль /root, в другой /home, в третий остальное. При этом /root и /home могут быть общими для всех машин, а.остальное для каждой машины в отдельный модуль. Это просто пример, делите как нравится.

Я тоже так думаю )

Мне понравился подобный вариант. У меня home и root в общий модуль, а сеть, принтеры и fstab в отдельные для каждой машины.

Да, насчет названия надо бы еще подумать. Но у меня пока своих идей нет )

Попробовал !!!
На своей сборке из МагОС(Роса) задал

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

Модуль записался в /memory/layer-base/1/modules
Использование монтирования по /memory/layer-base/ конечно радует
Т к у меня

/memory/layer-base/0 - это загруженный один из трех дистров

/memory/layer-base/1 - это общие модули для всех дистров.
Пока здесь находится мой магос-модуль

Папку MagOS-data (у меня это LS-Data) я использую только при установке на диск

  • т к режимы Machines и Changes на флэшке у меня тормозят систему
  • упрощается поиск MagOS-data.
    Если она одна в системе то uird ее найдет без конкретного указания адреса

Ну и модуль записался. Причем у меня записалось два модуля.
Один старой писалкой(не отключил) и 93-new.cfg

Теперь а как мне задать фильтр ?
Он у меня большой и в одну строчку в 93-new.cfg точно не влезет

Может проще ?

uird.mode=save