Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Разработка PFS и Initrd => Initrd UIRD => Тема начата: krasnyh от 25 Февраль 2020, 18:51:22

Название: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 25 Февраль 2020, 18:51:22
Повторюсь. В PRA у меня изменения ptv-server сохранены и в 090-save, и в папке changes, все работает.

До запуска в жизнь всей этой конструкции с сохранением, осталось только с этим сервисом разобраться.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 25 Февраль 2020, 18:56:19
Есть вариант, что проблема может быть вызвана xattrs, которые использует overlayfs. Mksquashfs ругается на них как на нестандартные, но пока проблем не возникало. И как проверить что-то не соображу.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 25 Февраль 2020, 18:59:38
До запуска в жизнь всей этой конструкции с сохранением, осталось только с этим сервисоим разобраться.
Можно поискать обходные пути типа uird.mounts=/saves/ptv-server::MNT=/var/lib/ptv-server, но в идеале конечно вычислить причину.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 25 Февраль 2020, 21:03:03
Ладно, прописал пока в drop, может когда (если) починится uird.mode=changes для overlay, опять проверю.
DROPFILTER0='/var/lib/ptv-server
                             /var/lib/torserver
                              /var/lib/private/'
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 26 Февраль 2020, 10:04:44
Ладно, прописал пока в drop
Ок. Если устроит пусть пока так.
Смотрел доку по overlayfs, там есть чего покрутить в параметрах самой фс и что теоретически может так сыграть. Например переименование каталога из нижнего слоя или изменение метаданных файла при неизменных данных. Но в первую очередь нужно попробовать изменить монтирование оверлея в toxzm, на такое же как в уирд. Это я для себя пишу чтоб не забыть когда доберусь. С вас методика проверки, чего взять как грузить и т.д.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 26 Февраль 2020, 15:56:31
Методика проста. Взять ptv-server.service (https://github.com/partizand/ptv3/blob/debian/debian/ptv-server.service) за образец, отредактировав нужным образом под свою прогу и изменив команду запуска ExecStart=. Папку с этим приложением разместить в /var/lib/.
При запуске сервиса, будет создана ссылка, а папка перенесена в /var/lib/private/, с изменением владельца и группы.

p.s. В некотором роде можно считать это подобием run-as-nobody (http://forum.puppyrus.org/index.php?topic=20622.0), только силами systemd.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 26 Февраль 2020, 16:01:36
а папка перенесена в /var/lib/private/
Вот тут возможна и проблема. У оверлея зависимо от настроек перенос папки лежащей в нижнем слое может даже завершаться с ошибкой.
Методика проста.
Лучше на примере айсарча и тестить прямо ч этим ptv.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 26 Февраль 2020, 16:05:02
В IceArch уже сервис включен и ничего не перемещается. Но вот права файлов и папок в /var/lib/private/ptv-server/ меняются в зависимости от включен/выключен ptv-server.service.

Сервис запущен:
sudo ls -l /var/lib/ptv-server/                                   
итого 9384
-rw-r--r-- 1 ptv-server ptv-server 235964 фев 15 09:24 DBcnl.py
-rw-r--r-- 1 ptv-server ptv-server   14510 фев 15 09:24 DefGR.py
-rw-r--r-- 1 ptv-server ptv-server   17503 фев 15 09:24 DefGR.pyc
-rw-r--r-- 1 ptv-server ptv-server     550 фев 15 09:24 addon.xml
-rw-r--r-- 1 ptv-server ptv-server   13591 фев 15 09:24 archive.py
-rw-r--r-- 1 ptv-server ptv-server   18091 фев 15 09:24 archive.pyc
drwxr-xr-x 3 ptv-server ptv-server    4096 дек 16 11:08 arh
-rw-r--r-- 1 ptv-server ptv-server    1600 фев 15 09:24 bitstream.py
-rw-r--r-- 1 ptv-server ptv-server    2142 фев  7 17:06 bitstream.pyc
-rw-r--r-- 1 ptv-server ptv-server    2585 фев 15 09:24 bldb.py
drwxr-xr-x 2 ptv-server ptv-server    4096 фев  7 17:04 cache
Сервис остановлен:
sudo ls -l /var/lib/ptv-server/       
итого 9384
-rw-r--r-- 1 63097 63097 235964 фев 15 09:24 DBcnl.py
-rw-r--r-- 1 63097 63097   14510 фев 15 09:24 DefGR.py
-rw-r--r-- 1 63097 63097   17503 фев 15 09:24 DefGR.pyc
-rw-r--r-- 1 63097 63097     550 фев 15 09:24 addon.xml
-rw-r--r-- 1 63097 63097   13591 фев 15 09:24 archive.py
-rw-r--r-- 1 63097 63097   18091 фев 15 09:24 archive.pyc
drwxr-xr-x 3 63097 63097    4096 дек 16 11:08 arh
-rw-r--r-- 1 63097 63097    1600 фев 15 09:24 bitstream.py
-rw-r--r-- 1 63097 63097    2142 фев  7 17:06 bitstream.pyc
-rw-r--r-- 1 63097 63097    2585 фев 15 09:24 bldb.py
drwxr-xr-x 2 63097 63097    4096 фев  7 17:04 cache
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 26 Февраль 2020, 16:08:14
Но вот права файлов и папок меняются в зависимости
И тут возможна проблема. При изменении метаданных, например прав, сам файл может не попасть в ченджез. Такой оверлей :) Надо ковырять настройки.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 09 Март 2020, 09:11:31
Вроде получилось сделать uird.mode=changes uird.changes=/папка для uird.union=overlay
Только один момент, папка (или img ) должна быть новой. Сохранения сделанные с aufs не подойдут.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 14 Март 2020, 12:49:58
Вроде получилось сделать uird.mode=changes uird.changes=/папка для uird.union=overlay
Работает и в папку, и в *.img. А можно сделать отложенное сохранение, при выключении/перезагрузке?

Но при этом сломалось toxzm, конфиг создает, модуль нет. Было похожее в самом начале знакомства, когда не прописал uird.shutdown.

Пишет еще в конце, при выключении (скрин).
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 14 Март 2020, 13:03:53
Но при этом сломалось toxzm, конфиг создает, модуль нет
Последний коммит? Какое-то время было сломано, но потом чинил.
Хотя нет, по скрину что-то новое. Проверю у себя.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 14 Март 2020, 13:08:04
uird-r539.4f7f776-1-any.pkg.tar.xz    Время изменения  2020-03-12 18:56:32
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 14 Март 2020, 13:11:20
uird-r539.4f7f776-1-any.pkg.tar.xz    Время изменения  2020-03-12 18:56:32
Да, должно быть нормально. Что-то новенькое :)
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 14 Март 2020, 13:21:09
Я выкладывал собранные пакеты после последнего коммита:
uird-dracut-r539.4f7f776-1-x86_64.pkg.tar.xz (https://mirror.yandex.ru/puppyrus/puppyrus-a64/pra64-07/pkg/pra6407extra/uird-dracut-r539.4f7f776-1-x86_64.pkg.tar.xz)
uird-busybox-r539.4f7f776-1-x86_64.pkg.tar.xz (https://mirror.yandex.ru/puppyrus/puppyrus-a64/pra64-07/pkg/pra6407extra/uird-busybox-r539.4f7f776-1-x86_64.pkg.tar.xz)

Мой uird-r539.4f7f776-1-any.pkg.tar.xz (https://yadi.sk/d/hU1Op5Dvag3Hxw) не попал в репу, sfs предпочитает использовать универсальный из шапки темы (http://forum.puppyrus.org/index.php?topic=22543.0) и собранный под aarch64.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 14 Март 2020, 13:32:04
Хотел посмотреть как работает *.img с compress=zstd, добавил в KM_compAlg="z3fold lz4 zstd", но наверно надо и сам бинарник.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 14 Март 2020, 15:15:52
Нужно сперва в системе пробовать монтировать с zstd, может просто в бтрфс еще поддержку не завезли.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 14 Март 2020, 16:29:14
Но при этом сломалось toxzm, конфиг создает, модуль нет.
В  магос работает. Несколько перезагрузок - полет нормальный.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 14 Март 2020, 16:57:06
Хотел посмотреть как работает *.img с compress=zstd, добавил в KM_compAlg="z3fold lz4 zstd", но наверно надо и сам бинарник.
В магос и это сработало. Делал ровно как вы, т.е. добавил zstd к модулям ядра в mkuird.cfg
В итоге:
Код
cat /proc/mounts |grep compress
/dev/loop0 /memory/changes btrfs rw,relatime,compress=zstd,space_cache,subvolid=5,subvol=/ 0 0
betcher@MagOS ~ $ cat /proc/cmdline
rw vga=791 splash=silent plymouth.enable=0 uird.from=/dev/sda1/MagOS;/dev/sda3/MagOS-Data uird.swap=auto uird.home=/dev/sda3/homes uird.zram uird.cp=*/photomodule  desktop=i3 uird.mode=changes uird.changes=/MagOS-Data/ch3bt.img::FS=btrfs::SIZE=1024::MNT_OPTS=compress=zstd

Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 14 Март 2020, 17:11:41
Наверно и у меня работало, но не сообразил посмотреть cat /proc/mounts |grep compress.

Проверял на флешке с uird.mode=changes и притормаживало, что с lzo, что с zstd.
В отличие от toxzm, где сохранение только при перезагрузке, в changes похоже пишет все время.


upd. Мой uird (https://yadi.sk/d/QRBRjsbVyixRZQ), надеюсь я там не сильно накосячил.
Пытался в одном конфиге совместить для qcow2 и для LiveCD, не получилось. Сделал два, и когда нужен другой, переключаю через uird.basecfg.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: sfs от 14 Март 2020, 17:27:52
Мой uird-r539.4f7f776-1-any.pkg.tar.xz не попал в репу, sfs предпочитает использовать универсальный из шапки темы и собранный под aarch64.
Нет вот Ваш http://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/uird-r539.4f7f776-1-any.pkg.tar.xz
Шапку поправил
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 14 Март 2020, 17:42:45
в changes похоже пишет все время.
Конечно. В том и смысл.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 14 Март 2020, 17:44:53
Сделал два, и когда нужен другой, переключаю через uird.basecfg.
Да, можно использовать конфиги как пресеты. Я никогда не использовал так, но по идее нормальный подход.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 14 Март 2020, 17:46:16
Конечно. В том и смысл.
А у нас есть, в ситуации с флешкой - changes=EXIT: (http://wiki.puppyrus.org/puppyrus/grub#%D0%BC%D0%B5%D0%B4%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%BD%D1%8B%D0%B9_%D0%B8%D0%BB%D0%B8_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82_hdd_%D0%B8%D0%BB%D0%B8_usb-%D1%84%D0%BB%D0%B5%D1%88_%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%8F_%D0%B1%D0%B0%D1%82%D0%B0%D1%80%D0%B5%D0%B8)

Цитата
Расширение 'EXIT:' указывает 'changes=' сохранять все изменения, сделанные за время сеанса в памяти до перезагрузки/выключения. Запись изменений на диск производится 1 раз при корректном выключении.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 14 Март 2020, 17:53:57
Расширение 'EXIT:' указывает 'changes=' сохранять все изменения, сделанные за время сеанса в памяти до перезагрузки/выключения. Запись изменений на диск производится 1 раз при корректном выключении.
В модуль?
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 14 Март 2020, 18:03:37
В папку.

Я уже 'въехал' в toxzm и планы на него были, а сейчас прикидываю как того же добиться с changes.  (
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 14 Март 2020, 18:07:48
В папку.
Не знаю есть ли смысл, если уж все равно писать не сразу, а аккумулировать в RAM, то потом хотябы пожать :) А это уже toxzm и получается.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 14 Март 2020, 18:15:53
Естественно, речь идет о сохранении в img с compress=.

Уже запутался в uird и PRA.  :)
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 15 Март 2020, 02:27:48
С uird.lfa.cpio.xz из prar1912_UIRD_beta_1.iso (Изменён:14.03.2020 18:06), тоже не создает модуль (toxzm).

А вот старенький uird.prar1912.cpio.xz из 200228.iso, создает.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 15 Март 2020, 06:57:51
Гм. Чешу репу :(
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 15 Март 2020, 08:39:25
Однако починил. Пересобирайте. Касалось не только overlay, но и любого toxzm. Не понятно только почему у меня то работало - в магос :)
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 15 Март 2020, 14:24:16
Однако починил.
Теперь работает.

Эх, вот она хваленая техподдержка. Пока пользователь сам не найдет причину или хотя бы не придумает как сузить круг, где ее искать, все только разводят руками: "У нас все работает". Так было, так есть и так будет. :)
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 15 Март 2020, 14:32:01
Эх, вот она хваленая техподдержка
Вчера сообщили, сегодня работает. Все бы так чинили :)
А без багов не бывает, если бы не делал changes в папку для оверлея не сломалось бы.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 15 Март 2020, 17:53:49
Смотрю, больше нет проблем с ptv-server.service (http://forum.puppyrus.org/index.php?topic=22608.msg166841#msg166841), а значит не надо прописывать:
Цитата
DROPFILTER0='/var/lib/ptv-server
                            /var/lib/private'
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 15 Март 2020, 18:08:47
Я менял параметры монтирования оверлэйфс, но сам не проверял. Хорошо если помогло.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: sfs от 16 Март 2020, 09:31:01
Выложил http://file.puppyrus.org/users/roll/uird/, предыдущие можно удалить.
uird-r541.2b29554-1-any.pkg.tar.xz (http://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/uird-r541.2b29554-1-any.pkg.tar.xz)
uird-busybox-r541.2b29554-1-x86_64.pkg.tar.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pra64-07/pkg/pra6407extra/uird-busybox-r541.2b29554-1-x86_64.pkg.tar.xz)
uird-dracut-r541.2b29554-1-x86_64.pkg.tar.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pra64-07/pkg/pra6407extra/uird-dracut-r541.2b29554-1-x86_64.pkg.tar.xz)
перенес ссылки на пакеты и т.п. в центральную юирд тему
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 16 Март 2020, 20:48:38
Пробовал запускать с IceArch.iso, положил на флешку, настроил конфиги - все замечательно. Но вышел новый iso, все так же прекрасно запускается, но уже проблемы с приложениями. Надо пересобирать uird*.cpio.xz, а вот этого бы не хотелось.

Я понимаю, что uird это мини-система, но в данном случае требуется лишь  запускать iso и сохранять изменения. И здесь было бы достаточно ранее собранного uird, осталось придумать как это реализовать с меньшими затратами.

Sfs предлагал (http://forum.puppyrus.org/index.php?topic=22543.msg167085#msg167085) собирать две версии uird (старое iso, новое iso), потом распаковывать, удалять /usr/lib/modules у одного, у другого оставлять только /usr/lib/modules, запаковывать (если я все правильно понял). Потом запускать как то так:
Цитата
initrd /uird.no_modules.cpio.xz /uird.modules.cpio.xz
Но все это как то заморочно.  :)
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 25 Март 2020, 16:20:10
initrd /uird.no_modules.cpio.xz /uird.modules.cpio.xz
Перепаковал, получилось uird.no_modules.cpio.xz - 11mb, uird.modules.cpio.xz -3mb. Грузится этим способом, приложения работают без багов.

Получается, нужно лишь один раз собрать uird, а потом просто по списку копировать нужное из /usr/lib/modules/* и упаковывать во второе *.cpio.xz. Так делать при смене iso или замене ядра в обычной сборке.

При существующей системе сборки, каждый раз надо пересобирать полностью uird. Но зачем? :)
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 25 Март 2020, 16:32:05
При существующей системе сборки, каждый раз надо пересобирать полностью uird. Но зачем?
А чем собрать новый уирд сложнее чем собрать уирд только с модулями ядра?
Что mkuird lfa, что mkuird --kmod.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 25 Март 2020, 16:50:25
Чтобы запустить новое iso через uird, мне нужны vmlinuz и модули ядра, что легко получить смонтировав это iso.
А чтобы выполнить mkuird --kmod, нужен или пакет uird-*, или клонировать git репозитарий.

Жаль что в моей идее никто не видит здравое зерно.  :)

upd. Ну, или из под рабочей системы - распаковать iso и mkuird -m /путь/kernelmods --kmod.

Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: sfs от 26 Март 2020, 10:46:32
Жаль что в моей идее никто не видит здравое зерно
Идея - 2 инитрд?
Тогда встречная идея - почему не юзать маленькие монолитные ядра ?
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 11 Июнь 2021, 10:03:23
Подумал, что некий аналог Ventoy (https://forum.puppyrus.org/index.php?topic=22804.0) можно легко организовать с uird. Для этого нам нужны:
- uird.magos.cpio.xz и vmlinuz, ссылка (http://magos.sibsau.ru/repository/netlive/2016.64/MagOS/)
- menu.lst с записями, типа
Цитата
title Загрузка ISO
kernel /vmlinuz uird.from=/lfa20.08-21.05-x86_64.iso;/lfa2008
initrd /uird.magos.cpio.xz

Пишет "No modules found for current kernel", но загрузка продолжается, вплоть до рабочей системы. Помнится, пробовал грузить IceArch.iso с маговским uird и на этом этапе все прекращалось.


Но сразу возникают вопросы.
- Во-первых, нужно, чтобы читался menu.lst из iso и соответственно все грузилось в порядке как там описано.
- Во-вторых, хотелось бы иметь возможность перейти на ядро из iso, не пересобирая uird. Вот было бы что-то похожее на uird.syscp, только в обратную сторону, т.е. копирование /usr/lib/modules из системы в uird или просто создание символической ссылки.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 11 Июнь 2021, 12:20:31
перейти на ядро из iso, не пересобирая uird
Здесь, наверно, можно использовать опыт MagOSboot.iso, только в данном случае это будут локальные iso. Тогда понадобятся 00-kernel.xzm, 01-drivers.xzm, 88-magos.xzm. Плюс нужен пример menu.lst, не представляю как MagOSboot это все организовано, в плане параметров. 


p.s. Просьба не принимать эти два поста всерьез. :) Так, простая идея мультизагрузочной флешки с множеством iso и запуском средствами uird. Если это все можно будет организовать без больших затрат 'человекочасов', то почему бы и нет. )
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: betcher от 13 Июнь 2021, 14:07:55
Антон делал загрузку разных исо одним uird. Называется это магос мульти. Нужно ядро, собранный для него уирд, Xzm модуль с модулями ядра и доп скриптами типа pfs-utils.
То есть ядро и уирд для всех загрузок одни и теже, остальное из исо.
Так грузились, к примеру, стартеркиты альт по сети.
Название: Re: UIRD (overlay). Загрузка LiveCD с сохранением изменений.
Отправлено: krasnyh от 13 Июнь 2021, 20:09:38
Называется это магос мульти
:)
можно использовать опыт MagOSboot.iso


1. Вот тут скачиваете образ: http://magos.sibsau.ru/repository/netlive/MagOSboot.iso
2. Загружаетесь с Интернет и выбираете пункт с сервера magos.sibsau.ru - > Альт -> Нужный дистр с DE
3. На запрос Params: просто жмете Enter
Хм... интересненько. Но неожиданно все долго.
Скрины.


upd. Но да, это естественно, там чистая сетевая загрузка.