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

Автор Тема: Overlay для mkpfs  (Прочитано 25834 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Overlay для mkpfs
« Ответ #75 : 10 Октябрь 2021, 09:47:58 »
образ моей сборки в ~.iso формате у меня  не получился
Посмотрите мои скрипты в корне моих дистров
Есть ли смысл продолжать ?
В итоге горячее подключение получилось? Если нет - надо ли торопиться. Ауфс жив
betcher написал что сейчас занят. Объединить функционал пока будет проблематично. Пока в имеющемся не все баги пофикшены.
Ну и чем сложнее будет пфс - тем сложнее его будет поддерживать

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #76 : 10 Октябрь 2021, 14:27:02 »
В итоге горячее подключение получилось? Если нет - надо ли торопиться. Ауфс жив
Писал уже.
 

1)  Сделал пустой OVL стр 284 в pfs
Код
OPTIONS='metacopy=off,index=off,xino=on,rw'
mount -t overlay -o $OPTIONS,lowerdir=lower$N,upperdir=upper$N/changes$N,workdir=upper$N/workdir$N overlay "overlay$N" || return 1

2) Потом подмонтировал addlayer в стр 357  в pfs
Код
LAYERUNION="$(cat /tmp/LAYERUNION)"
mount -t overlay -o $OPTIONS,lowerdir=lower$N:$LAYERUNION,upperdir=upper$N/changes$N,workdir=upper$N/workdir$N overlay "overlay$N"

Как я понял OVL перемонтируется с новыми параметрами. но старые параметры не сохраняются и все надо снова писать. OVL это не AUFS
Файл  /tmp/LAYERUNION  каждый раз переписывается  и OVL каждый раз монтируется с новыми параметрами

С натяжкой это то же где то горячее подключение

На этом принципе у меня сборка Магеи  в OVL делается. Так что вариант давно проверенный.
Логически опцию -remount из aufs   в OVL сделал за счет системы

    образ моей сборки в ~.iso формате у меня  не получился

Посмотрите мои скрипты в корне моих дистров

Ваш вариант и смотрел но проблемы.
У меня чистый efi-нетбук, где bios отсутствует.
Загрузчик установил rEFInd - https://www.bootdev.ru/2017/02/Ustanovka-rEFInd.html
Вначале UEFI нетбука находит rEFInd и запускает его.
При этом rEFInd ищет на  дисках EFI загрузку и если находит то формирует кнопки запуска.
При этом разницы нет. Грузятся линукс и винда. Например старый комп с устаревшим UEFI и новый комп запускаются одинаково.
Соответственно rEFInd в Virtualbox видимо отсутствует и ничего не грузится.
Но эту проблему можно пока отложить.

Объединить функционал пока будет проблематично.

А как на счет добавить  номера  для имен модулей. А то половина модулей с номерами а другая половина нет.
Это позволило бы искать модули в /proc/mounts  -  https://forum.puppyrus.org/index.php?topic=23518.msg179155#msg179155
Я опробовал буквенно-цифровой номер - - https://forum.puppyrus.org/index.php?topic=23518.msg179174#msg179174
Если номера  для всех имен модулей нельзя добавить то запуск PFS в Overlay возможен видимо только в МагОС.
Ну не работает в Overlay aufs-n. Пробовал его править да только запутался.
В МагОС поиск модулей происходит  в /proc/mounts при этом  есть номера  для всех имен модулей и особых проблем нет.
UIRD монтирует модули в алфавитном, но учитывается полное (с путем) имя модуля. То есть все что в .../modules/..., будет монтироваться после того что в .../base/..., а то что во втором источнике после того что в первом потому что /memory/layer-base/1... по алфавиту после /memory/layer-base/0/... и так далее.

Может что то недопонимаю ?
« Последнее редактирование: 10 Октябрь 2021, 21:39:29 от ingvaro »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Overlay для mkpfs
« Ответ #77 : 11 Октябрь 2021, 10:39:25 »
У меня чистый efi-нетбук, где bios отсутствует.
У меня там и под это есть на груб2
rEFInd в Virtualbox видимо отсутствует и ничего не грузится.
По моему опыту в вбокс с ефи все плохо
как на счет добавить  номера  для имен модулей
Отрицательно. По логике этот номер должен указывать порядок слоя. У меня все ненумерные - без разницы. Т.е. не представляю, как модули софта переименовать

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #78 : 11 Октябрь 2021, 20:27:07 »
Цитата: ingvaro от Вчера в 14:27:02

    как на счет добавить  номера  для имен модулей

Отрицательно. По логике этот номер должен указывать порядок слоя. У меня все ненумерные - без разницы. Т.е. не представляю, как модули софта переименовать

Тогда остается один путь .
Это в Overlay эмулировать при загрузке аналог  /sys/fs/aufs/si_${prefix}  ( /sys/fs/overlay/si_${prefix}  для aufs-n
Но как это сделать я не представляю.

ps
Или использовать МагОС
« Последнее редактирование: 11 Октябрь 2021, 20:32:33 от ingvaro »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Overlay для mkpfs
« Ответ #79 : 11 Октябрь 2021, 20:53:44 »
А есть ли на самом деле проблема, в отсутствующих "номерах для имен модулей". Или это иллюзия проблемы?

В теме pfs-get - консольный менеджер модулей.pfs, betcher без проблем обрабатывал массивы модулей в наших репах.


Сам скрипт, для ознакомления, в гите pfs-utils-cli, переключить master на pfsget.
« Последнее редактирование: 11 Октябрь 2021, 21:11:49 от krasnyh »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Overlay для mkpfs
« Ответ #80 : 11 Октябрь 2021, 21:09:54 »
Или это иллюзия проблемы?
Проблема абсолютно надуманная. Истинно "номерных" модулей - по пальцам пересчитать: base, kernel, upd и save. Эти модули можно загружать по именам, так реализовано в Richy, остальные модули номеров не требуют, достаточно чтобы они "не пересекались". Richy можно загружать как aufs, так и overlayfs соответствующим initrd, при этом модули одни и те же.
Моноблок 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

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #81 : 12 Октябрь 2021, 17:43:53 »
У меня был вопрос о возможности загрузки модулей из /proc/mounts
Вы же сами тестировали :
Re: Overlay для mkpfs
« Ответ #62 : 13 Сентябрь 2021, 12:09:24 »

    Цитировать (выделенное)

Код

sourcelist=$(awk '/loop/ && /bundles/ {print $2}' /proc/mounts)

;) Но,  :( увы, вывод показывает очерёдность монтирования, а не порядок слоёв.

Или я что то не так понял ?

« Последнее редактирование: 12 Октябрь 2021, 17:48:42 от ingvaro »

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #82 : 18 Январь 2022, 20:36:51 »
Сделал у себя Overlay. Подробнее - https://forum.magos-linux.ru/t/overlayfs-na-pfs-utilitah/177/8
Тема за ненадобностью закрывается

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Overlay для mkpfs
« Ответ #83 : 18 Январь 2022, 20:43:02 »
Что значит закрывается. Мне тема интересна, могу выступить тестером на здешних сборках:
Скачать  -  PFS-OVL.xzm - https://cloud.mail.ru/public/yAGs/uShczCfGZ
Так как я уже несколько дней использую родное бинарное ядро pf (без aufs), то обратил внимание, что pfs-utils дают сбой даже при простой упаковке папок в модуль. Можно уйти в каменный век и использовать исходные mksquashfs/unsquashfs, но это не наш метод.

Скачал PFSOV.pfs по ссылке, распаковал пока в rootcopy, перезагрузился и вуаля, все работает. Правда пришлось еще создать toxzm/filtres/pfs-filtr.

Насчет наличия горячего подключения пока не смотрел, есть ли оно, и если есть, работает ли.


p.s. И да, у меня uird, если это имеет значение.

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #84 : 19 Январь 2022, 15:48:56 »
Что запустилось это здорово, но как у вас с порядком монтирования модулей в Overlay и AUFS ?
          Проблема в том что в aufs модули лежат в папке **/sys/fs/aufs/si_*** и он и задает порядок запуска модулей. В Overlay есть только  **/proc/mounts** и там нумерации нет.
Проблему выявил

sourcelist=$(awk '/loop/ && /bundles/ {print $2}' /proc/mounts)

;) Но,  :( увы, вывод показывает очерёдность монтирования, а не порядок слоёв.

И так я не понял что там за проблема в Papirus с нумерацией ? Пронумеровал модули и сборка работает. Только автообновления из системы нет ????

Скачал PFSOV.pfs по ссылке, распаковал пока в rootcopy, перезагрузился и вуаля, все работает. Правда пришлось еще создать toxzm/filtres/pfs-filtr.
Переделал PFSOV
Изменения минимальны:
     pfs
Работает в AUFS и Overlay
     aufs-n
AUFS тут работает по своей логике. Overlay по своей.
  **mkpfs**   
Работает в AUFS и Overlay. Режим сохранения с тенями в Overlay делает mhddfs
   chroot2pfs
Проверял на команде
Код
chroot2pfs -o  /memory/aut.pfs
С другими функциями пока не разобрался и они могут не работать.
 Режим сохранения с тенями  в Overlay делает mhddfs
   pfsextract, syschanges
Мелкие правки.

Но надо установить утилиту mhddfs.  В Ubuntu она присутствует в репах.
В Overlay нельзя корректно объединить старый модуль сохранения системных изменений и новый. Ну соединить то можно но  все нужные тени будут удалены.
Но с этой задачей справляется утилита mhddfs.. Подробнее - (https://forum.mageia.org.ru/viewtopic.php?pid=35442#p35442)

Другие модули даже не проверял. Могут не работать.
« Последнее редактирование: 19 Январь 2022, 18:55:42 от ingvaro »

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #85 : 19 Январь 2022, 16:15:10 »
Насчет наличия горячего подключения пока не смотрел, есть ли оно, и если есть, работает ли.

Работа в Overlay  в **mkpfs** и **chroot2pfs**

1) mk_unionfs подготавливает нужные папки в /memory/WORKFS
2) addlayer монтирует нужные слои  в /memory/WORKFS/bundles$N
    И готовит список монтируемых соев - /tmp/LAYERUNION
3) mount_unionfs монтирует Overlay или AUFS в /memory/WORKFS


Т е горячего подключения нет. Только так работает Overlay.
Ну а AUFS то же нормально работает.
В принципе  горячее подключение можно сделать но это только для AUFS и усложнение кода. Нужно ли это ?
Да и с двумя режимами монтирования сложности были.

    mkpfs сделаю chroot2pfs не работает.
    chroot2pfs сделаю то mkpfs не работает.

Оставил один режим монтирования и все наладилось.

PS
И да, у меня uird, если это имеет значение.

Я на uird  и делаю.
« Последнее редактирование: 19 Январь 2022, 19:06:52 от ingvaro »

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #86 : 19 Январь 2022, 17:59:53 »
Мне тема интересна, могу выступить тестером на здешних сборках


В AUFS /memory/changes это просто модуль лежит в /sys/fs/aufs/si_*
В Overlay он у меня лежит в /proc/mounts
Код
grep 'changes' /proc/mounts
/dev/zram1 /memory/changes ext4 rw,relatime,discard 0 0
Наверно поэтому Overlay загружает систему немного быстрее чем AUFS
А с новым aufs-n как будто тормоза какие то сняли с моего нетбука.
Если я не ошибаюсь то это уже сильный довод в пользу Overlay

PS
Если вам это интересно то давайте вместе доделаем.
Новая версия  PFSOV в тестировании. Тогда выложу на днях ее тут.
« Последнее редактирование: 19 Январь 2022, 18:53:11 от ingvaro »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Overlay для mkpfs
« Ответ #87 : 19 Январь 2022, 21:28:29 »
Начал читать написаное выше и разбираться, что к чему.

Что запустилось это здорово, но как у вас с порядком монтирования модулей в Overlay и AUFS ?
С порядком вроде нет проблем, что /proc/mounts, что /var/log/uird.dbg.log показывают одинаковый цифро-буквенный порядок, как и задумано разрабами:
Код
live@roll2110 ~ % sourcelist=$(awk '/loop/ && /bundles/ {print $2}' /proc/mounts) && echo $sourcelist

/memory/bundles/000-kernel-core2-5.16-pf1_64.pfs
/memory/bundles/001-prar-2110-sf07.pfs
/memory/bundles/001-prar-2110-sf07_DEV.pfs
/memory/bundles/030-qt5-5.15.2-2110-sf01.pfs
/memory/bundles/040-de-ovs-gtk3-2110-sf05.pfs
/memory/bundles/083-firefox-profile_any-kr01.pfs
/memory/bundles/icu-69.1-2110-sf01.pfs
/memory/bundles/zsh-5.8-1+grml-zsh-config.pfs
/memory/bundles/SOFT-2110-kr02.pfs
/memory/bundles/firefox-bin-gtk3-p-96.0.1_64-kr01.pfs
/memory/bundles/netsurf-gtk3-3.9~4953-1.fc31_64-kr1.pfs
/memory/bundles/torrserverM109+ptv-server3.16.0_64-kr03.pfs
/memory/bundles/trans-pra03-yad-urxvt-kn07.pfs
/memory/bundles/yt-dlp-bin-kr02.pfs
/memory/bundles/089-upd-2110-sf32.pfs
/memory/bundles/090-changes-03.03.21.pfs


live@roll2110 ~ % cat /var/log/uird.dbg.log | grep '/memory/layer-base'   

  --> /memory/layer-base/0/base/000-kernel-core2-5.16-pf1_64.pfs
  --> /memory/layer-base/0/base/001-prar-2110-sf07.pfs
  --> /memory/layer-base/0/base/001-prar-2110-sf07_DEV.pfs
  --> /memory/layer-base/0/base/030-qt5-5.15.2-2110-sf01.pfs
  --> /memory/layer-base/0/base/040-de-ovs-gtk3-2110-sf05.pfs
  --> /memory/layer-base/0/base/083-firefox-profile_any-kr01.pfs
  --> /memory/layer-base/0/base/icu-69.1-2110-sf01.pfs
  --> /memory/layer-base/0/base/zsh-5.8-1+grml-zsh-config.pfs
  --> /memory/layer-base/0/modules/SOFT-2110-kr02.pfs
  --> /memory/layer-base/0/modules/firefox-bin-gtk3-p-96.0.1_64-kr01.pfs
  --> /memory/layer-base/0/modules/soft/netsurf-gtk3-3.9~4953-1.fc31_64-kr1.pfs
  --> /memory/layer-base/0/modules/soft/torrserverM109+ptv-server3.16.0_64-kr03.pfs
  --> /memory/layer-base/0/modules/soft/trans-pra03-yad-urxvt-kn07.pfs
  --> /memory/layer-base/0/modules/soft/yt-dlp-bin-kr02.pfs
  --> /memory/layer-base/0/rootcopy [CP mode]
  --> /memory/layer-base/1/base/089-upd-2110-sf32.pfs
  --> /memory/layer-base/1/base/090-changes-03.03.21.pfs



Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Overlay для mkpfs
« Ответ #88 : 19 Январь 2022, 21:38:10 »
И так я не понял что там за проблема в Papirus с нумерацией ? Пронумеровал модули и сборка работает.
Мне в принципе несложно пронумеровать по любому, моя сборка сильно отличается от базового iso. В ней по сути, только /base взято как есть, остальные модули полностью свои. Но я еще тогда не понимал, в чем камень преткновения с нумерацией наших модулей.
sourcelist=$(awk '/loop/ && /bundles/ {print $2}' /proc/mounts)

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

Так то я еще по aufs привык, если подключаю DEVX*.pfs для компиляции, то он монтируется в верхний слой, после завершения я его отключаю. Если нужно обновить firefox, то отключаю firefox.pfs, пересобираю, потом подключаю и он тоже оказывается в верхнем слое до перезагрузки. И это ничего не ломает в системе.
« Последнее редактирование: 19 Январь 2022, 21:55:11 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Overlay для mkpfs
« Ответ #89 : 19 Январь 2022, 22:04:50 »
Не использую автоматизированное сохранение. Сохраненка в виде 090-changes*.pfs лежит на другом разделе в UIRD/base. При необходимости добавляю файлы в нее ручками. Если надо что-то проверить и как временное сохранение, использую папку /rootcopy.