Не пойму как этому анмоунту удается размонтировать aufs чтоб размонтировать /memory.
В чем проблема в общем понятно, но решение не очень подходящее. Скрипт shutdown не наш, он из дракута. Лезть в в него не правильно. Понять бы при каких условиях становится возможным размонтирование, может нашли бы как обойти. Я до сих пор такого не встречал.
Наш скрипт для дракута - хук. Это штатная возможность дракута запускать пользовательские скрипты в этом месте. Проблема, как я понимаю, в том, что при определенных условиях скриптам дракута удается размонтировать /memory, чего раньше не случалось. Я такого до сих пор не видел.
Это все следствие. Причина что если модули от toxzm монтируются в системе то их временами скрипам от toxzm не удается отмотировать. Пишет что модуль занят. Почему это так я и не понял.
Дракут работает как положено
Старая версия toxzm почему то лучше справляется с отмонтированием ( сбой на 6 цикл записи)
Свежая версия сбоит на 2 или 3 цикл записи
Дело в том что я удалил скрипты из /usr/lib/magos/rc.halt и /usr/lib/magos/rc.halt.pre
И возложил отключение системы на toxzm. Но видимо так делать не стоит
Восстановил деактивирование модулей в rc.halt и все ок !
Бага нет и даже в свежей версии toxzm !!!
В /usr/lib/magos/rc.halt.pre/ оставил только 10-shutdown
Это запуск $HALTSERVICESSTOP и $HALTPROCESSESKILL
А так все
Непонял стр из /run/initramfs/usr/lib/dracut/hooks/shutdown/99-shutdown-uird.sh
#umount bundles
IMAGES=/oldroot${SYSMNT}/bundles
egrep “$IMAGES” /proc/mounts | awk ‘{print $2}’ | while read a ; do
mount -t aufs -o remount,del:"$a" aufs /oldroot
if umount $a ; then
echolog “[ ${green}OK${default} ] Umount: $a”
else
echolog “[${red}FALSE!${default}] Umount: $a”
fi
done
Вроде как модули монтируются в /oldroot
mount -t aufs -o remount,del:"$a" aufs /oldroot
Но там никаких модулей нет, а все оказывается примонтировано в /memory
Но если удалить эти стр то и модуль не пишется и папки /oldroot и /memory пустые
Где XZM0 это системные изменения
А XZM1 это пользовательские изменения
Запись ведется в папку /memory/layer-base/0/toxzm
Причем toxzm у меня уже основной в сборке и других методов записи нет.
Пишет изменения toxzm довольно быстро, но вот подготовка списка файлов для исключения из модуля записи может затянуться и сам процесс записи может подвиснуть
Но надо отдать должное. Висит toxzm столько сколько нужно и преждевременных
отключений процесса записи не наблюдалось
Для XZM1 (пользовательские изменения) проблему удалось решить чисткой $HOME/.cache/mozilla
Но чистить надо в /memory/changes, т к если чистить в корне сборки то появятся тени в модуле записи
Ну а с XZM0 (систмные изменения) особо не разбирался,
Не пробовал, но по идее можно фильтровать папку $HOME/.cache/mozilla
Скрипт для чистки у меня был сделан ранее и он чистит все кэши распространенных браузеров
Но чиска папок из /memory/changes может не совсем правильно но дает нормальный результат
Задержки в XZM0 (систмные изменения) у меня были связаны в основном с обновлениями системы, кот писались через toxzm.
Обновляю редко и поэтому беспокоит не так сильно
Это у меня шары для samba
В Магее они изначально были в $HOME
Но писать туда неудобно, т к $HOME у меня это пользовательские изменения
А samba это вроде системные изменения
К сожалению надо только удалять, т к скрипт
/run/initramfs/usr/lib/dracut/hooks/shutdown/99-shutdown-uird.sh в стр 204
find $SRC/ -type d | sed 's|'$SRC'||' | while read a ;do
grep -q "^$a" /tmp/includedfiles && continue
echo "$a" | grep -vf /tmp/savelist.black | grep -qf /tmp/savelist.white && continue
echo "$a" >> /tmp/$n/excludedfiles
done
Пишет список удаляемых файлов. Это и дает задержку
Не совсем понятна логика работы. Т к если я удаляю папку $HOME/.cache/mozilla из процесса записи модуля, то зачем же мне список содержимого папки mozilla ?
А так нет файлов то и нет и проблемы
Вроде сделал
shutdown-uird.sh - https://cloud.mail.ru/public/4zmV/4Sc3RyL45
Положить его надо в /usr/share/uird/modules.d/00uird/shutdown-uird.sh для конфигурирования загрузчика
Или переименовав как 99-shutdown-uird.sh в /run/initramfs/usr/lib/dracut/hooks/shutdown
И просто проверить работу при выключении системы
Заменил
на
find $SRC/ -maxdepth 1 | sed 's|'$SRC/'||' > /tmp/changesfiles
for a in $ADDFILTER ;do
sed -i s/$a// /tmp/changesfiles 2>/dev/null
done
echo "$(cat /tmp/changesfiles)" >> /tmp/$n/excludedfiles
rm -f /tmp/savelist.white /tmp/savelist.black /tmp/includedfiles /tmp/changesfiles
PS
Удаленные строки часто дублировали исключения в /tmp/$n/excludedfiles
Т е список исключений возможно конфигурировался как минимум два раза
Предложенные строки делают список исключений неразрешенных папок и файлов из папки /memory/changes. Список разрешенных папок берется из ADDFILTER
Непонятно список файлов из фильтра в DROPFILTER должны быть со слэшем (/) или без него
У меня теперь идут оба варианта. Ну оставил без слэша.
ADDFILTER получился без слэша. Иначе не получилось
Где XZM0 это системные изменения
А XZM1 это пользовательские изменения
Мой uirdsave.cfg лежит в /memory/layer-base/0/
Запись ведется в папку /memory/layer-base/0/toxzm
Не шедевр и еще тестировать надо. Пишет две пустые строки и их не смог удалить, но создание списка. теперь идет достаточно быстро
Обновил ядро на Магее и нормально выключился с сохранением