Добовьте ему -n 0 и он заменить pfsloadНо не заменит layermanager (https://github.com/DdShurick/pfs-utils/blob/master/usr/bin/layermanager), к которому я хочу прикрутить GUI.
Если ограничиться одной дополнительной aufs, то ключи не нужны. Одной хватит?Просто заменить ключи на позиционные параметры $1 $2. В функции все ровно так же.
Сейчас отладка кода?Проверка на возможные ошибки.
Уже можно тестировать?А для чего выложено?
примеры создания модуля , объ(раз)единения.Кое-какие примеры я приводил, правда в ручном режиме.
Мануал в вики не пора писать?Пожалуй пора.
Пожалуй пора.Сильно упростит понимание замысла и расширит круг тестеров. Не хотелось бы играть в угадайки при доступном авторе
доступ есть?Кстати selftest - может стать тестом и примерами в одном флаконе... Очень бы не помешал
заморозить в текущем виде pfs-utilsВроде и так все тормознулись. В свете последних идей - переписать возможно лучший вариант чем еще наприделывать костылей
то еще нужно не обязательный $3 - номер слоя.Я думал об этом, но пока отложил.
пока отложил.Верное решение - не первостепенно нужный функционал
хотелось бы обсудить что будет в финале.Из печального опыта: сначала будет долгое "обсудить", а потом ничего не будет.
решить чего надо, как надо это делать и уже потом писать.Надо создания модуля , объ(раз)единения ,под(от)ключение
Из моего печального опытаОпыт у нас немного разный. У вас на MagOS (http://magos-linux.ru/) инициативы не забалтывают, а у нас запросто :( Поэтому браться за что-нибудь серьёзное боязно, шапками закидают.
layermanager и pfsedit.Layermanager + GUI пожалуй пойдёт на замену modules_event, если договоримся насчёт GUI. Ну а pfsedit, благодаря вашей идее, надо переписывать, устарел.
Layermanager + GUI пожалуй пойдёт на замену modules_event, если договоримся насчёт GUI.Все операции задаются переменными в начале скрипта
mnt_sfsНечто подобное и даже с таким же названием я писал лет семь назад, потом выбросил, ибо достаточно действий по ПКМ и ЛКМ.
писал лет семь назадСкорее всего из этого я и сделал
достаточно действий по ПКМ и ЛКМ.В скрипте куча вариантов что можно сделать с модулем
Скорее всего из этого я и сделалТогда должна быть ссылка на первоисточник.
Последний вариант проверяли?Да. все ок!
delaufs "$1" && echo "AUFS слой '$1' размонтирован." ; exit 1
Вряд ли даже разрабы будут юзать непосредственно addlayer - только внутри других скрпптовОпрос! Заодно узнаем сколько нас.
Посмотрите этот скрипт - все сами пойметеА бутылку, чтоб понять? :D
Иначе эту обработку придется дублировать в каждом скриптеА как-же иначе? Слои в любом случае подключаются только руками и тут всякое может быть.
Хотелось бы как то засинхронизировать большинство скриптовФоркайте и делайте как нравится.
[ "$(df "$2" | egrep 'aufs|unionfs')" ] && usage "Ошибка!
'$2' находится на разделе с aufs.
Переместите на раздел с другой файловой системой."
egrep '^$NEWLAYER'
было 3.pfs - фильтры находили все модули где есть 3Подробнее?
Может быть откатить назад, без проверки /proc/mounts?Давайте вот над этим подумаем, стоит ли искать и повторно использовать точку монтирования ради экономии одной loop, или сразу монтировать в bundles$N как было раньше?
if [ "$(grep $NAME /proc/mounts)" ]; then #if the module is already mounted
NEWLAYER="$(grep $NAME /sys/fs/aufs/si_*/br[1-9]* | cut -f2 -d:| cut -f1 -d=)"
else
#оставить только это ---->
mkdir -p /$SYSMNT/bundles$N/"$MODNAME"
mount -o loop "$NEWLAYER" /$SYSMNT/bundles$N/"$MODNAME"
NEWLAYER=/$SYSMNT/bundles$N/"$MODNAME"
#<----
fi
#оставить только это ---->Ok.
- addlayer home saveМеньше писать , проще парсить, логично
Только home - дистрозависимая вещь... Как быть?Писать раздел.
В uird это так решеноМы же универсально заморочились
Почему просто папку нельзя так и не пойму.
Меньше писать , проще парсить, логично
# addlayer 0 glib-2.48.1_XZM
#
Т.е. addlayer - одна из функций. Не надо из нее лепить что-то другоеДа я так думаю. Просто pfsload будет ее использовать как и остальные скрипты.
addlayer - одна из функций.Добавил addlayer в mkpfs, вот что получилось: Неудобно, нет автодополнения при наборе имени модуля.
Неудобно, нет автодополнения при наборе имени модуля.http://wiki.puppyrus.org/puppyrus/pr218/pfs#editor_pfs
http://wiki.puppyrus.org/puppyrus/pr218/pfs#editor_pfsGUI лепить? Проще на ПКМ повесить.
изменения касаются /tmp/aufs$n?Да. Теперь mkaufs создаёт /tmp/aufs$n в котором записывается $AUFSROOT (корень aufs$N). Туда можно и другие переменные записывать.
1. Научить delaufs взвращать ошибкуВозвращает при невозможности удалить.
[ -d /$SYSMNT/aufs$N -a -d $AUFSROOT ] && usage "Выполнение $0 завершилось с ошибкой" || rm /tmp/aufs$N
??А в ситуации когда точка монтирования aufs размонтирована и удалена, а ченджез и бандлез с этим номером нет?
# su
Password:
# addlayer Git/pfs-utils/sqmod-tools.pfs
Корень aufs №1 /initrd/aufs1, сохранение изменений /initrd/changes1
# mkaufs
# addlayer /mnt/sda1/219/optional/Tetris.sfs
Выберите № aufs из:
1
2
Напечатайте выбранный №:2
Корень aufs №2 /initrd/aufs2, сохранение изменений /initrd/changes2
# delaufs 1
# delaufs 2
# ls /initrd/
bundles changes
# ls /sys/fs/aufs
si_2771d6a7
Пфсэкстракт создает новую ауфс ддя каждого извлекаемого пакета.Зачем? Это уже перебор. В каталог будет вполне нормально.
Так вот два параллельно работающих пфсэкстракт валятся.На практике два часто приходится запускать?
надежно застраховаться от ошибок с созданием aufs, когда они создаются параллельно.И не только параллельно. Над этим надо подумать.
Зачем? Это уже перебор. В каталог будет вполне нормально.Это в цикле не одновременно. Так удобнее было.
На практике два часто приходится запускать?Нет конечно, но тем не менее... Сейчас два параллельно запустил, с описанными правками. 10 минут полет нормальный. Жду :)