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

Сегодня пришла в голову почти гениальная мысль - “А не почитать ли инструкцию на AUFS”
Перевел README для AUFS. - https://cloud.mail.ru/public/1REZ/9y2ogKGFZ
Вроде с установкой AUFS в ядро особых проблем нет
Вроде и к лучшему что в Магее AUFS не стали делать. Версия AUFS все равно старая и надо было обновлять

Заработал у меня чистый Оверляй.
Мой savetoxzm.cfg

XZM0='base/38-1-base0.xzm'
MODE0='none'
REBUILD0='yes'
ADDFILTER0='boot etc opt root run usr shares var'
DROPFILTER0="$(cat /memory/layer-base/0/toxzm/filtres/base-filtr)"
SEARCHFILTER0="$(cat /memory/layer-base/0/toxzm/filtres/search-filtr)"

XZM1=toxzm/home0.xzm
MODE1='copy'
REBUILD1='yes'
ADDFILTER1='etc home var'
DROPFILTER1="$(cat /memory/layer-base/0/toxzm/filtres/home-filtr)"
SEARCHFILTER1="$(cat /memory/layer-base/0/toxzm/filtres/search-filtr)"

XZM2=toxzm/zwhiteout.xzm
MODE2='copy'
REBUILD2='yes'
ADDFILTER2="$(find /memory/ovl/changes. -perm 0000 | sed 's:/memory/ovl/changes::')"
DROPFILTER2="$(cat /memory/layer-base/0/toxzm/filtres/home-filtr)"
SEARCHFILTER2="$(cat /memory/layer-base/0/toxzm/filtres/search-filtr)"

Но сделал правку Стр 191 в usr/share/uird/modules.d/00uird/shutdown-uird.sh заменил

`[ “$MODE” = “overlay” ] && mount -t overlay -o redirect_dir=off,metacopy=off,index=off,lowerdir=“${AUFS}-bundle”:“$SRC” overlay “$AUFS”

Предложенный вариант монтирования не работает. Почему не знаю.
Хотя в системе оба варианта я запускал
В zwhiteout.xzm тени попадают а так же много лишнего и это почему то обычные файлы

То есть нужно заменить строку с монтированием оверлея?

Не работало это моя вина. Что то намудрил. Ваш вариант shutdown-uird.sh сразу заработал
Почему в TOXZM не работает строка с монтированием оверлея непонятно. В системе все монтируется. Но предложенный вариант это из вики - монтирование нижних слоев в lowerdir
Ну и опции для оверлай уже писал. Везде такие

-o redirect_dir=off,metacopy=off,index=off

С опциями

-o redirect_dir=on,metacopy=off,index=on

Проверял локально в системе монтирование слоев и в верхней системной оверлай менялись права доступа. Т е в корень сборки ничего не записать ни удалить. Особенно чудит index=on
В AUFS таких чудес не было ???
Ну и все утилиты в МагОС где есть монтирования с AUFS не работают.
Например mkpfs

Пытаюсь бороться но пока бозрезультатно
По виду это мой home0.xzm + тени

Уж в стр 257 сделал

mv -f /tmp/savelist.black /tmp/savelist.white /tmp/allfiles /tmp/$n/

Теперь в /tmp все чисто и все равно лезут в zwhiteout.xzm файлы.

PS

А можно ли сделать что бы режим MODE=‘copy’ можно было посмотреть в /memory/bundles ?

Попробуйте модуль прописать в uird.cp и собирать его с MODE=none. Тогда должен быть в бандлах.

Cпасибо попробую.
С тенями финал. Применил для find опции -size 0 -perm 0000

ADDFILTER2="$(find /memory/ovl/changes -size 0 -perm 0000 | sed ‘s:/memory/ovl/changes::’)"

Теперь в модуле у меня одни тени !!!
Даже + от такого модуля. Можно быстро посмотреть все тени в системе

size 0, это хорошая мысль надо в пример дописать. Спасибо.

В конфиг загрузчика имя модуля что то мне не хочется прописывать.
А в меню grub пробовал задавать

uird.cp+=zwhiteout.xzm
uird.cp+=toxzm/zwhiteout.xzm

И … эффекта нет

А как такой вариант ? Замена стр 131 - 146 в uird.toxzm_mode

if [ "$MODE" = "mount" -o "$MODE" = "mount+wh" -o "$MODE" = "copy"  ] ; then
BUN="$(basename "$MODNAME")"
if [ "$(getpar toram)$(getpar $UIRD_COPY2RAM)" ] ; then
mkdir -p "$5"
cp "$MODNAME" "$5"
log "$BUN to RAM"
echo -ne $yellow"  RAM"$default
MODNAME="$5/$BUN"
fi
mkdir -p "$3/$BUN"
FS="$(device_bestfs "$MODNAME")"
OPTIONS="$(fs_options $FS mount)"
mount -o $OPTIONS $FS "$MODNAME" "$3/$BUN"
elif [ "$MODE" = "mount" -o "$MODE" = "mount+wh" ] ; then
mount -o remount,add:1:"$3/$BUN"=ro+wh aufs "$4"
[ $? -eq 0 ] && echolog "  $blue-->" $purple"$MODNAME"$green" [$MODE mode] "$default

Режимы copy теперь появились в /memory/bundles !!!

Думаю вы просто забыли добавить в uird.load.

А чем плох вариант с uird.toxzm_mode ?
Ничего прописывать не надо и все режимы copy появиляются в /memory/bundles

А зачем он в бандлах? Особенно с copy2ram.

Выявилось что ловушка теней чудит и очень сильно.
В описываемом ранее моем варианте проблемы :

  • ловит все таки много лишнего (ссылки, файлы (1.7 Кб и менее, и т д))
  • XZM0 как то влияет на ловушку теней.
    Так 1 запись достоверная. А 2 запись и далее удален /usr
  • Если XZM0 большой то ловушка теней зависает и готовится долго

Исправленный мой savetoxzm.cfg

XZM0=toxzm/zwhiteout.xzm
MODE0=copy
REBUILD0=yes
ADDFILTER0="$(find /memory/ovl/changes/ -maxdepth 4 -perm 0000 -size 0k |sed 's:/memory/ovl/changes::')"

XZM1=base/38-1-base0.xzm
MODE1=none
REBUILD1=yes
ADDFILTER1="$(cat /memory/layer-base/0/toxzm/filtres/base-root)"
DROPFILTER1="$(cat /memory/layer-base/0/toxzm/filtres/base-filtr)"
SEARCHFILTER1="$(cat /memory/layer-base/0/toxzm/filtres/search-filtr)"

XZM2=toxzm/home0.xzm
MODE2=copy
REBUILD2=yes
ADDFILTER2="$(cat /memory/layer-base/0/toxzm/filtres/home-root)"
DROPFILTER2="$(cat /memory/layer-base/0/toxzm/filtres/home-filtr)"
SEARCHFILTER2="$(cat /memory/layer-base/0/toxzm/filtres/search-filtr)"
  • ловушка теней ловит только тени. Удивително но факт. Опция -size 0k вероятно помогла.
    Находится на 1 месте (XZM0) и это единственный рабочий вариант
    Если ловушка теней на 2 или 3 месте то нет каталога /usr
    Работает быстро и не зависает. Проверил на установке обновлений (модуль 1,4 Гб)
    Вероятно надо будет править опцию -maxdepth 4 Может быть мало этой глубины поиска

  • ADDFILTER Задал так :
    /memory/layer-base/0/toxzm/filtres/base-root

/boot
/etc
/opt
/root
/run
/usr
/shares
/var

И это снизило лишние файлы в ловушке теней. Когда она была на 3 месте

PS
Ох уж эта OverlayFS. Может она виновата ?
В Магее A ядромUFS так и не добавили. Видно придется разбираться еще с ядром
Все таки хочу еще раз отметить надежность TOXZM
Обновил systemd и ничего не виснет и все записалось в штатном режиме

Когда все работает то просмотр папок режима copy действительно не нужен.
Сейчас даже и не заглядываю.
А когда что то не работает то надо смотреть.

Состав модуля не должен зависеть от того какой он по прядку, если так происходит нужно разбираться, это косяк.
Всех с Н.Г. :slight_smile:

Пока непонятно куда пропадает каталог /usr
Адрес в ловушке теней (XZM0=toxzm/zwhiteout.xzm) задается жестко - /memory/ovl/changes/
Дополнительно чистил все файлы в /tmp и ничего не помогало.
Но на первом месте работает и пусть себе работает.
Допустим с модулем XZM2=toxzm/home0.xzm с MODE2=copy все нормально.
Куда бы не поставил работает

Сделал свою сборочную дистра на OverlayFS
По методике - https://askubuntu.com/questions/699565/example-overlayfs-usage
Модули собираются и все вроде работает
Конечно OverlayFS немного сложнее чем AUFS но в принципе можно перейти на OverlayFS.

PS
PFS то на AUFS и не работает на OverlayFS

У pfs-utils многое завязано на ауфс, быстро сделать аналогичное для оверлея не получится. Будет время, буду делать.

Канеш, это довольно далеко от моих повседневных задач, зато как хобби интересно… любопытно стало, заморочился погуглить текущие отличия.

OverlayFS:

  1. активнее пилится
  2. давно в ядре, не надо патчей для интеграции
  3. на ней сделан LiveCD Slackware, а, как известно – “Патрик бох” :wink:
  4. на ней Docker – а его овердокуйа в продакшн как и почему
  5. вроде как она проще, чем AUFS и быстрее её.

Надо ли из этого делать вывод, что следует переползать в OverlayFS? В случае совсем нового проекта очень даже возможно… а перепиливать стабильный большой работающий – ХЗ… во всяком случае, у приведённых выше дистрибутивов и, без сомнения, МЕГАпроектов есть смысл подсмотреть технические решения и нюансы.

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

Хоть и похвастался что сделал сборочную нa OverlayFS но оказалось что поспешил.
Сборка не запустилась. Всему виной видимо это самое горячее подключения модулей
Смонтировал так

mount -t overlay -o \ lowerdir=lower:$MOD_PREV,upperdir=upper/upper,workdir=upper/workdir \ overlay ROOTFS

Не работает команда mount -o remount

mount -t overlay -o \ remount,lowerdir=lower:$MOD_PREV:$MOD_LINE,upperdir=upper/upper,workdir=upper/workdir overlay $ROOTFS

По всякому задавал

На счет быстрее что то не заметил что OverlayFS быстрее чем AUFS. Обе быстрые
А вот то что AUFS функциональнее чем OverlayFS это факт

Сделал таки сборочную и сейчас пишу уже с оверлай-сборки
Надо внимательнее было мне читать инструкцию - filesystem - Как мне использовать OverlayFS?
А не бороться с опцией remount, которая видимо не работает.
Но трудоемко по сравнению с AUFS
Может что то в Overlay не доустановлено ?

Допустим первый пример из доки у меня не заработал

cd /tmp
mkdir lower upper workdir overlay
sudo mount -t overlay -o \
lowerdir=/tmp/lower,\
upperdir=/tmp/upper,\
workdir=/tmp/workdir \
none /tmp/overlay

пишет

mount: /tmp/overlay: wrong fs type, bad option, bad superblock on overlay, missing codepage or helper program, or other error.

Читал я про Docker. Но в Магее каких то пакетов не хватает
Маловероятно что в Росе они есть.
А вероятно без этих пакетов Docker и не видит у меня Overlay
Так опять же набор сделай сам.