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

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

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33996
  • Репутация: +231/-0
    • PuppyRus-A
Re: Overlay для mkpfs
« Ответ #45 : 11 Сентябрь 2021, 11:14:11 »
никто не тестирует.
Я выше пытался. Не заработало
Желательно бы готовый модуль, чтобы я мог положить его в lfds21.04-21.06-x86_64.iso или prar21.03-21.07-x86_64.iso, пересобрать iso и проверить в вирте,
да. Или исо где все работает. Как разрабы увидят хороший функционал - сами побегут адаптировать под свои дистры
Я правильно понял - Вам удалось ofs подключить модуль к уже загруженному дистру. А отключить?
Самое простое будет привести кусок кода с горячим overlayfs функционалом. Точку монтирования и т.п. задать переменными или ключами
У DdShurick это не получилось и все ему поверили. Не ругайтесь с ним. Он толковый ветеран, отец нашего горячего ауфс , но старовер и альтернативщик. Любит потестировать юзеров на стрессоустойчивость. Вот наши изыскания в этом направлении

Если для продвижения вашей сборки нужна наша площадка (ftp wiki , раздел на форуме) - думаю у нас никто возражать не будет. Нужно?

без опциии -db (debug) трудно что то отладить
Я так и не понял чем гуй с вопросом удобнее задания ключа...  Ладно бы если в консоли надо было выбрать несколько строк списка - тогда гуй удобнее
Wiki дорускает применение псевдографических утилит
В СПО допустимо все что заработает. Мы договорились так. Отделять консоль с функционалом от гуя с интерфейсом юзера удобно как минимум для отладки

"Overlay более надежен в работе."
В чем это выражается? Чем ауфс ненадежен?
Overlay включен в ядро. Проблм меньшее
С этим не поспоришь. И по итогу тестов DdShurick ест меньше RAM на 1 слой
Кстати - кто знает почему ауфс так и не включили в ядро?
« Последнее редактирование: 11 Сентябрь 2021, 11:24:09 от sfs »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Overlay для mkpfs
« Ответ #46 : 11 Сентябрь 2021, 12:29:47 »
Но в числе установленных модулей, по крайней мере у меня,  есть /memory/changes
ауфс-н выводит списки слоев, мемори/ченджез это слой. Чтоб его спрятать есть ключ, если не ошибаюсь --hidetop

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Overlay для mkpfs
« Ответ #47 : 11 Сентябрь 2021, 12:34:27 »
Тут список установленных модулей нормально и находится  и в AUFS и в Overlay
/dev/loop? совсем не обязательно модуль. То что у вас работает еще не означает, что будет работать везде, старайтесь при написании кода предполагать что его применение не ограничено вашими сборками.

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #48 : 11 Сентябрь 2021, 13:23:56 »
Я правильно понял - Вам удалось ofs подключить модуль к уже загруженному дистру. А отключить?
Т к тестировал я на lfds21.04-21.06-x86_64.iso 
Используемый загрузчик UIRD   с опцией uird.union=overlay.
Для загрузки на AUFS опция uird.union=aufs
Тут в системе эмулируется AUFS а Overlay отключается.
UIRD - это initrd для модульных систем. Тут уже многое решено.
    "Overlay более надежен в работе."

В чем это выражается? Чем ауфс ненадежен?
Я не писал что ауфс ненадежено. Ну что за максимализм ?
Я написал что - "Overlay более надежен в работе."
Это же не означает что AUFS ненадежен и от него надо срочно избавляться.
Если запустить сборку образа  с ошибками, то как правило, в AUFS это был сбой системы и нетбук зависал. Максимум AUFS выдерживал два запуска.
А Overlay выдерживал около 10 запусков. Вероятно пока память в системе не заполнится.
Помогает в отладке опция -db (debug) но в вашей сборке, как выяснилось, ее применять нельзя.
Как запустить опцию -db (debug)  из ГУЙ обертки я еще не разобрался.

Я так и не понял чем гуй с вопросом удобнее задания ключа...  Ладно бы если в консоли надо было выбрать несколько строк списка - тогда гуй удобнее

Опция -db (debug) должна запускаться только в случае отладки и при наборе команды в терминале
А если она будет при каждом запуске вклбчаться и каждый раз спрашивать то это то же плохо

    Overlay включен в ядро. Проблем меньшее

С этим не поспоришь. И по итогу тестов DdShurick ест меньше RAM на 1 слой
Кстати - кто знает почему ауфс так и не включили в ядро?

Вроде как в AUFS слишком сложный код. Ну это надо было как то обосновать и нашли удачную формулировку.
Так Overlay у меня работает но непонятно как  нужные тени передать в папку сборки. Все существующие опции не помогли.
Но для работы с системными модулями Overlay подходит. Там теней нет
Тени у меня появляются при сохранении системных изменений в модуль при выключении системы.
Но тут выручает UIRD+TOXZM.
Тут в Overlay  тени сохраняются. Конечно не совсем то что надо, но другого пока нет
« Последнее редактирование: 11 Сентябрь 2021, 18:14:17 от ingvaro »

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #49 : 11 Сентябрь 2021, 14:19:59 »
Если для продвижения вашей сборки нужна наша площадка (ftp wiki , раздел на форуме) - думаю у нас никто возражать не будет. Нужно?

Время гениев одиночек несомненно прошло.
Сейчас дистры делают команды. Там есть свои подразделения. Работа разделена а потом собирается дистр
Хорошо бы что бы сделать какую то унификацию для модульных сборок.
Тогда бы все усилия действовали в одном направлении и можно было бы сделать какое то разделение труда.
Отсюда повышение качества сборок.
В этом плане я готов участвовать.
А для того что бы поместить ее на вашу плошадку нужно что бы ее кто то протестировал.
Ну и хотя бы один положительный отзыв.
И еще я должен включить допустим fds21.04 в число запускаемых дистров в своей сборке.
А это я сделать не могу, хотя он у меня запускается и работает.
Причины то что нет полной цифровой нумерации модулей
Пробовал переименовать но появились проблемы

То что у вас работает еще не означает, что будет работать везде, старайтесь при написании кода предполагать что его применение не ограничено вашими сборками.

Пожалуй вы правы и не стоит мне пытаться править   lfds21.04
Слишком все завязано на AUFS.
У меня вопросы к lfds21.04 я их задавал и они остались без ответа.
Нужен aufs-n для работы в Ovrtlay и AUFS
« Последнее редактирование: 11 Сентябрь 2021, 19:50:57 от ingvaro »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33996
  • Репутация: +231/-0
    • PuppyRus-A
Re: Overlay для mkpfs
« Ответ #50 : 12 Сентябрь 2021, 09:53:33 »
Если запустить сборку образа  с ошибками
Это как?
в вашей сборке, как выяснилось, ее применять нельзя.
В моей можно все что угодно. Выше подробно объяснял - определитесь что вы делаете - совместимый с pfs-util проект или конфликтующий с ним форк. Иначе запаримся тестировать

В итоге так и не понял - получилось у вас горячее ofs подключение \ отключение модуля  на загруженной системе или нет

Сейчас дистры делают команды
Большие почти всегда делали команды. Чем больше команда тем качественнее дистр. Поэтому я и перешел на "донорские сборки". А раньше все сами компилили (когда и у нас была команда). У нас, как и у всех самодельщиков , тенденция обратная.
Хорошо бы что бы сделать какую то унификацию для модульных сборок.
Да. Я именно так и сделал: LF. Можно перенести в любой дистр. Включает в себя pfs-util и 3 варианта initrd : uird pra-porteus rootaufs2
C betcher совместная работа получается. Подключайтесь и вы. Если мы не поспеваем за вами - форкайте, но потом желательно свежии идеи добавить в pfs-util
для того что бы поместить ее на вашу плошадку нужно что бы ее кто то протестировал.
А для этого надо ее разместить на нашей площадке и прорекламировать
Хотя бы шапку этой темы оформить ссылками на дистр и вообще там расписать что и для чего вы делаете
По моему опыту фругал на площадках больших дистров никому не интересен
Пробовал переименовать но появились проблемы
Переименовывайте как Вам удобно, но перестанет работать автообновление
Пробовал переименовать но появились проблемы
Выше я писал про порядок слоев (089 090 должен быть наверху)
У меня вопросы к lfds21.04 я их задавал и они остались без ответа.
Тыкните в вопросы на которые я не ответил

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #51 : 12 Сентябрь 2021, 14:19:07 »
    Если запустить сборку образа  с ошибками

Это как?

Основная проблема то что в pfs работа базируется на файле /sys/fs/aufs/si_   а в OVL файла файла /sys/fs/overlay/si_  нет.
Недосмотрел и пути получались с ошибками.
Кроме того bash в разных дистрах может работать по разному.
Lubuntu и Debian например не поняли команду
Код
if [ "$unionfs" = 'overlay' -a "$re_mount" = "yes" ]; then
     пришлось ее заменить на варинт применяемый в Mageia
Код
if [ "$unionfs" = 'overlay' ] && [ "$re_mount" = "yes" ]; then

После изменений chroot2pfs в AUFS  писал модуль почему то в хомяк и были одни сбои
Ну задал стр 18 в chroot2pfs
Код
NAME="$WORKMNT/nomod"
И все наладилось.
WORKMNT у меня задана в pfs.

В итоге так и не понял - получилось у вас горячее ofs подключение \ отключение модуля  на загруженной системе или нет

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 делаю.
С натяжкой это то же где то горячее подключение

    Хорошо бы что бы сделать какую то унификацию для модульных сборок.

Да. Я именно так и сделал: LF. Можно перенести в любой дистр. Включает в себя pfs-util и 3 варианта initrd : uird pra-porteus rootaufs2
C betcher совместная работа получается. Подключайтесь и вы. Если мы не поспеваем за вами - форкайте, но потом желательно свежии идеи добавить в pfs-util

Если модули можно переименовать и из корня "лишние" файлы убрать то я наверно добавлю lfds21.04  в список загружаемых дистров в своей  сборке
Получилось что хотя в МагОС и добавлен pfs но он особо и не используется. Но это даже к лучшему. Можно pfs по частям править для OVL
И можно будет запустить и посмотреть  а потом уже делать все остальное. В частности автообновление мне понравилось. 
Но это буден наверно где то через месяц. Пока морочу себе и моему efi-нетбуку проблемой создания образа сборки в формате ~.iso для bios загрузки
Bios-загрузку у меня можно записать но только например для флэшки
А можно ли в virtualbox запустить и посмотреть работу образа для efi-загрузки ?
« Последнее редактирование: 12 Сентябрь 2021, 15:22:34 от ingvaro »

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #52 : 12 Сентябрь 2021, 14:53:51 »
Тыкните в вопросы на которые я не ответил

1)   chroot2pfs
   было стр 111
   
Код
layers=$(aufs-n --hidetop --reverse --raw '$bundle')
заменил на стр 112
   
Код
sourcelist=$(grep '/dev/loop*' /proc/mounts | tr ',' ' ' | cut -f2 -d' ')
Список установленных модулей создается но теряется слой /memory/changes. Вроде и так все работает.
Зачем учитывать /memory/changes когда это не модуль а рабочая папка OVL или AUFS ?

2) Зачем папку запуска образа OVL или AUFS  вычислять
Код
SYSMNT=/$(cut -f2 -d/ /sys/fs/aufs/si_$(grep ' / aufs' /proc/mounts | cut -f2 -d= | tr ',' ' ' | cut -f1 -d' ')/br0)
Не проще ли ее в параметрах задать.
Папка /memory всем хороша но если в системе мало памяти, например 2 Гб, то  chroot2pfs может и не запуститься.
У меня папка сборки образа  образа OVL или AUFS  обычно на диске.
« Последнее редактирование: 12 Сентябрь 2021, 18:06:58 от ingvaro »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Overlay для mkpfs
« Ответ #53 : 12 Сентябрь 2021, 15:39:54 »
Зачем учитывать /memory/changes когда это не модуль а рабочая папка OVL или AUFS ?
С ключем --hidetop не должно быть memory/changes в выхлопе aufs-n

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Старый чайник
Re: Overlay для mkpfs
« Ответ #54 : 12 Сентябрь 2021, 17:15:02 »
Список установленных модулей
А не проще не выгорбачиваться, а тупо:
Код
# ls -1 /mnt/live/memory/images
000-kernel-5.12.0-pf6-lf_64.pfs
001-prar-2103-sf03.pfs
001-prar-2103-sf03_DEV.pfs
040-de-jwm-2.4.0_64-pb03.pfs
070-prar-full-2103-sf03.pfs
083-chrome-profile-sf19.pfs
089-upd-2103-sf16.pfs
celluloid-ff44-0.21-2103-sf02.pfs
google-chrome-gtk3-p-93.0.4577.63_64-au01.pfs
gparted-1.2.0-2103-sf01.pfs
gtk+2-2.24.32.pfs
linux-firmware-middle-pt-2004_any-sf02.pfs
pra-installer-2020.01-24-any.pfs
python2-ytdl-2.7.16_64-sf02.pfs
trayNet.pfs
youtube-dl-2021.06.06_any-au01.pfs
Моноблок 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
« Ответ #55 : 12 Сентябрь 2021, 17:59:17 »
Действительно проще. Но папки /memory/changes  тут то же нет.
Полагаю что ее можно и не учитывать в chroot2xzm.
Но папки /mnt/live/memory/images может и не быть в разных дистрах.
Унивирсальнее конечно
Код
sourcelist=$(grep '/dev/loop*' /proc/mounts | tr ',' ' ' | cut -f2 -d' ')
« Последнее редактирование: 12 Сентябрь 2021, 18:05:00 от ingvaro »

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #56 : 12 Сентябрь 2021, 18:08:14 »
Извиняюсь ошибся в вопросе. Сейчас испрваил

1)   chroot2pfs
   было стр 111
   
Код

layers=$(aufs-n --hidetop --reverse --raw '$bundle')

заменил на стр 112
   
Код

sourcelist=$(grep '/dev/loop*' /proc/mounts | tr ',' ' ' | cut -f2 -d' ')

Список установленных модулей создается но теряется слой /memory/changes. Вроде и так все работает.
Зачем учитывать /memory/changes когда это не модуль а рабочая папка OVL или AUFS ?


С ключем --hidetop не должно быть memory/changes в выхлопе aufs-n

Мне не удалось сделать  aufs-n для работы в AUFS и Overlay, Уж слишком мудреный.
И в mkpfs, chroot2pfs я aufs-n исключил и заменил определение установленных модулей на базе  /proc/mounts
А там слоя /memory/changes нет.
« Последнее редактирование: 12 Сентябрь 2021, 19:44:16 от ingvaro »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Старый чайник
Re: Overlay для mkpfs
« Ответ #57 : 12 Сентябрь 2021, 18:44:22 »
Код
sourcelist=$(grep '/dev/loop*' /proc/mounts | tr ',' ' ' | cut -f2 -d' ')
Ещё короче
Код
sourcelist=$(awk '/loop/ {print $2}' /proc/mounts)
Одна беда, что все эти способы не показывают истинного распололжения слоёв, а выдают список "по алфавиту"
Моноблок 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

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Overlay для mkpfs
« Ответ #58 : 13 Сентябрь 2021, 08:41:26 »
Список слоев в нужной последовательности есть в /proc/mounts в строке монтирования вашего overlayfs. Еще раз повторюсь, нельзя использовать греп по /dev/loop там может быть что угодно, к примеру смонтированный zram.
# mount Загрузки/alt-server-20191022-e2kv4.iso /mnt
#cat /proc/mounts |grep loop |grep mnt
/dev/loop28 /mnt iso9660 ro,relatime,nojoliet,check=s,map=n,blocksize=2048 0 0

Оффлайн ingvaro

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +2/-0
  • Автор темы
Re: Overlay для mkpfs
« Ответ #59 : 13 Сентябрь 2021, 09:25:38 »
Ещё короче
Код

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

Действительно поиск по loop находит не только модули.
Вот такой вариант

Код
sourcelist=$(awk '/bundles/ {print $2}' /proc/mounts)

Тут нашлись только модули в /memory/bundles/
Ну а  /memory/changes нужен для chroot2pfs ?
« Последнее редактирование: 13 Сентябрь 2021, 09:42:51 от ingvaro »