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

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

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

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Overlay для mkpfs
« : 12 Август 2021, 16:37:59 »
                                     Overlay для PFS-утилит
       Тестовый вариант. Предназнчен только для тестирования.
Скачать   090-PFS-OVL -  https://cloud.mail.ru/public/pSSC/QWnvMjqP4

Каталог сборки образа для mkpfs и chroot2ps  -  /memory/WORKFS

Изменения минимальны:
 -    pfs
   Работает в AUFS и Overlay
 -    aufs-n
   AUFS тут работает по своей логике. Overlay по своей.
-      mkpfs
   Работает в AUFS и Overlay. Режим сохранения с тенями в Overlay делает mhddfs
   Времени не было и ничего другого не придумал.
-     chroot2pfs
   Работает в AUFS и Overlay. Режим сохранения с тенями в Overlay делает mhddfs
   Добавил опцию -db (debug)
   Перед финальной паковкой модуля работа прерывается и появляется chroot-терминал (Konsole или QTerminal)
   Тут можно проверить работу образа или обновить его. Уже обновил свою систему.
   Но при проверке на prar21.10-x86_64-04  выяснилось что терминал не стартует.
   Пока закоментировал стр 247.
   Но проверил не все функции..  Режим сохранения с тенями  в Overlay делает mhddfs
-   pfsextract
    Режим extract_simple работает в AUFS и Overlay.
    Не работает у меня режим extract_contaner
    Это когда объединяешь два модуля то включается  extract_contaner
    И получается модуль в котором два модуля.   И при распаковке опять же два модуля получается.
    Пока заблокировал его (стр 215)
-   syschanges   Мелкие правки.
-   pfsload      - Монтировал сразу  два модуля. Все ок. Монтируется
-   pfsunload - Работает но отмонтирует модуль только один. Смонтировал два модуля и пришлось их поочередно отмонтировать. Это так и было ранее ?
-   pfsfind      -  Работает. Хорошая прога. Находит файлы в модулях. Заработала без правок.

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

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

Где  $N - номер сборки образа
  Так работает Overlay и горячего подключения в нем нет.
Разработчики Overlay горячее подключение не включили в систему. А нужен ли он в AUFS ?
Попробовал и похоже удачно. AUFS работает !

               Как я понимаю горячее подключение.
-  подготавливаются нужные папки в /memory/WORKFS/$N и стартует пустой AUFS
-  addlayer находит и монтирует  слой за слоем в ~/bundles$N
    И  добавляет слой за слоем в  запущенный пустой AUFS командой mount -o remount
    Если будет допустим 100 слоев то это 100 перемонтирований образа
    Но конечно решать можно что применить только после тестирования.
« Последнее редактирование: 24 Январь 2024, 15:41:30 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Overlay для mkpfs
« Ответ #1 : 13 Август 2021, 09:08:19 »
Обновление образа Lubuntu в mkpfs с опцией -db (debug)
По замыслу mkpfs был только для объединения модулей. Для обновления дистра и т.п. https://wiki.puppyrus.org/puppyrus/pr218/pfs4#chroot2pfs. Чем (кроме overlayfs) ваш вариант mkpfs лучше?
Вот бы в chroot2pfs тоже overlayfs...

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #2 : 13 Август 2021, 16:11:44 »
Чем (кроме overlayfs) ваш вариант mkpfs лучше?

Мой mkpfs это всего лишь тестовый вариант. Есть 2 проблемы которые надо решать.
1) Переменные n и nn задал в mk_unionfs (pfs) а в mkpfs их закоментировал
    Получилось даже проще
2) Стр 46,47,Стр 46,47,161 и 295,298,299,300 в pfs закоментировал а ср 161 это блокировка  от отсутствия AUFS или Overlay в ядре.
     Ну нет  в Overlay  файла - /sys/fs/overlay/si_
     Есть, общий для AUFS или Overlay, файл   proc/filesystems
     Вроде им и можно заменить отсутствующий файл /sys/fs/overlay/si_
 
С AUFS получилось 4 варианта монтирования. Ну это я собрал  монтирование в TOXZM и аше горячее монтирование.
Оба варианта рабочие а выбирать какой будет действовать по умолчанию можно теперь опцией -mt (mount_r=yes)
mount_r=yes  -  горячее монтирование
mount_r=no    -  монтирование как в  TOXZM
Управлять можно в  /etc/pfs.cfg
 
Как появилась  опция -db (debug)

При отладке варианров монтирования в Overlay. Если запустить некорректно Overlay раз 10 то система зависала
Например AUFS зависала с первого или второго раза.
Приходилось перезагружаться. А с опцией -db (debug) зависаний системы почти не было,
Если что не так выключил конечную паковку образа и все.

Вот бы в chroot2pfs тоже overlayfs...

Мой chroоt2xzm он просто устарел, т к 2/3 его работы заменил запуск образа Lubuntu в mkpfs  с опцией -db (debug)
Если получится комфортная загрузка обновления образа Lubuntu в mkpfs  с опцией -db (debug) то тогда и решать
Ну а из терминала юзеры вероятно не захотят запускать
Конечно мой chroоt2xzm у меня совсем прстенький и сравнивать его с chroot2pfs некорректно
« Последнее редактирование: 14 Август 2021, 08:14:32 от ingvaro »

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #3 : 01 Сентябрь 2021, 18:40:33 »
PFS-OVL.pfs - https://forum.puppyrus.org/index.php?topic=23518.msg178662#msg178662
Изменения

1) Модули обновляются в aufs и overlay

2) pfsextract распаковывают любые модули. Изменения в стр 42, 62, 215, 216, 219
     А не только pfs-модули

3)
Стр 46,47,161 и 295,298,299,300 в pfs закоментировал а ср 161 это блокировка  от отсутствия AUFS или Overlay в ядре.
     Ну нет  в Overlay  файла - /sys/fs/overlay/si_

Исправил  изменения в стр 47, 49, 163 в pfs

4)  Изменены сервисы в pfs

mkaufs   переименован    mk_unionfs
delaufs    переименован   del_unionfs

5)  Запускал lfds2104 со своим магос-модулем и загрузчик UIRD
И как то странно.
Сервисы от МагОС работают с pfs из /usr/lib/magos/scripts
Обновление модулей  работают с pfs из /usr/local/bin
Хотя запускал систему от root и в /root/.bashrc есть запись
Код
PATH=/usr/lib/magos/scripts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Т е сервисы из /usr/lib/magos/scripts  загружаются первые
Пришлось изменения писать в /usr/lib/magos/scripts  и  /usr/local/bin

6) chroot2pfs подготовил но не проверял еще разбираться надо.
« Последнее редактирование: 10 Сентябрь 2021, 21:09:46 от ingvaro »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Overlay для mkpfs
« Ответ #4 : 03 Сентябрь 2021, 09:15:55 »
сервисы из /usr/lib/magos/scripts  загружаются первые
В чем странность, есть они первые в PATH ?

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #5 : 03 Сентябрь 2021, 10:45:53 »
Обновление модулей  работают с pfs из /usr/local/bin
Но сервисы из /usr/lib/magos/scripts  загружаются первые
И обновление модулей  должно бы работать с pfs из /usr/lib/magos/scripts

PS
chroot2pfs пока не работает
Опять строка /sys/fs/overlay/si_  из aufs-n
« Последнее редактирование: 03 Сентябрь 2021, 10:47:38 от ingvaro »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Overlay для mkpfs
« Ответ #6 : 03 Сентябрь 2021, 11:34:26 »
Мое обновление модулей стыкуется с остальными pfs util только вызовом подключалки модулей. Т.е. если модифицированная подключалка работает - все вместе тоже должно работать
сервисы из /usr/lib/magos/scripts 
Что там за сервисы и скрипты? Модифицированный , ваш, pfs util ?

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #7 : 03 Сентябрь 2021, 13:52:25 »
Это PFS-утилиты от betcher для МагОС.  Изменения с вашими минимальны.
Это мелочи. Вот chroot2pfs у меня не работает. Ни в aufs ни в overlay. C родными pfs все ок.
Что то с mkpfs получилось.
Но  chroot2pfs и  mkpfs похожи  но имеют отличия
Вероятно  монтирование в chroot2pfs  можно сделать через mkpfs
« Последнее редактирование: 03 Сентябрь 2021, 14:16:17 от ingvaro »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Overlay для mkpfs
« Ответ #8 : 03 Сентябрь 2021, 14:15:53 »
Это PFS-утилиты от betcher для МагОС.
PFS-utils, они не мои. Они местные ))

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #9 : 05 Сентябрь 2021, 16:47:15 »
PFS-OVL.pfs - https://forum.puppyrus.org/index.php?topic=23518.msg178662#msg178662
Изменения

1)Работает chroot2pfs в Overlay  и AUFS
Стр 71 закоментировал.
Исключил aufs-n и перевел поиск примонтированных модулей в /proc/mounts (стр 76 в chroot2pfs и стр 300 в pfs)
Это даже более корректно, т к из /sys/fs/aufs/si_ у меня монтировалась папка /memory/changes
Но /memory/changes не является системным модулем  ???
Список модулей по аналогии с mkpfs изменил на  sourcelist (был  layers)

2)  Работают опции -mt и -db
    Это по аналогии с mkpfs

Тестирование делал запуском chroot2pfs в root-терминале
Код
chroot2pfs 
Буду рад за помощь в тестировании.

PFS-utils, они не мои. Они местные ))
Одно или два отличия я нашел в магос-варианте.
Ну значит у вас самая свежая версия
« Последнее редактирование: 10 Сентябрь 2021, 21:10:14 от ingvaro »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Overlay для mkpfs
« Ответ #10 : 06 Сентябрь 2021, 09:39:32 »
PFS-OVL.pfs - https://cloud.mail.ru/public/yAGs/uShczCfGZ
Хотел попробовать в прар - не находит конфигов . Что там должно быть и как указать чтобы использовался ofs?
самая свежая версия
В свежей я выявил проблему и откатился.
« Последнее редактирование: 06 Сентябрь 2021, 09:41:29 от sfs »

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #11 : 07 Сентябрь 2021, 16:26:56 »
Хотел попробовать в прар - не находит конфигов . Что там должно быть и как указать чтобы использовался ofs?

Были проблемы с AUFS в pfs. Переделал именно в AUFS и теперь должно все работать

PFS-OVL.pfs - https://cloud.mail.ru/public/yAGs/uShczCfGZ

Изменения

1)  Перевел опцию -db на zenity. Получилось даже более элегантно и zenity присутствует в lfds2104

2)  Изменил опцию -s  на -sl (select=on)
     Перевел опцию -sl на zenity.

PS
zenity  в lfds2104 работает с ошибкой и его надо переустановить
« Последнее редактирование: 07 Сентябрь 2021, 17:13:47 от ingvaro »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Overlay для mkpfs
« Ответ #12 : 07 Сентябрь 2021, 19:13:32 »
Pfs-utils исключительно консольные скрипты. Вы можете предусмотреть то что скрипт может быть использован с гуи оберткой и сделать для этого специальный выхлоп или дополнительные ключи, но пихать zenity прямо в код не нужно это не феншуй ))

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #13 : 08 Сентябрь 2021, 06:36:40 »
Это верно для Xdialog, которая активно используется в МагОС
Задавал так
Код
MSG="Packing the module :\\n Yes\\n No"
echo $LANG | grep -qi ^ru_ && MSG="Паковать  модуль :\\n Да\\n Нет"
[ "$debug" = "on" ] && Xdialog --yesno "$MSG"  10 35
Действительно сложновато ...........
Ну а  zenity в опции debug вопрос задается одной строкой
Код
[ "$debug" = "on" ] && zenity --question
Появляется окно вопроса - "Уверены, что хотите продолжить?"
Причем zenity   поддерживает русский и английский и вопрос выводится в действующей локали.
Что же здесь не так ?
Вполне можно допустить использование в консольных утилитах

PS

Ну а консольный вариант вопроса.
Код
echo " Press Enter to continue, or Ctrl+C to abort..."
read junk
Тут надо добавить русский вариант вопроса. Не все знают английский и что же им со словарем что ли  запускать эту консоль ?
А если юзеру понадобится какой то другой язык ?
Консольный вариант вопроса будет намного  сложнее
« Последнее редактирование: 08 Сентябрь 2021, 09:12:05 от ingvaro »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Overlay для mkpfs
« Ответ #14 : 08 Сентябрь 2021, 08:33:01 »
Pfs-utils исключительно консольные скрипты
Изначально договорились об этом. Лучше бы не нарушать. Это реально удобно. Функционал отдельно и в простых скриптах. Разрабатывается совместно. Легко проверить. Гуй  к консольным утилитам можно лепить разными средствами. Кто на чем умеет.
У меня так и сделано. Гуй на gtkdialog (сложнее , но функциональнее) и yad (полуклон zenity). Самого zenity в моих дистрах обычно нет. Может быть ссылка на yad (он частично совместим)
Для упрощения написания гуя - моя надстройка : ntf
добавить русский вариант вопроса
https://wiki.puppyrus.org/programming/intern