Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => PFS-utils => Разработка PFS и Initrd => Разработка PFS-utils v.3 (устаревшая) => Тема начата: betcher от 07 Февраль 2017, 20:06:11

Название: pfsmerge-dir && rm *
Отправлено: betcher от 07 Февраль 2017, 20:06:11
pfsmerge-dir по умолчанию работает напрямую с каталогами и после удаляет их. Мне кажется это не правильно, во всяком случае для работы по умолчанию. В случае ошибки в работе можно потерять данные. Я уже нарвался :) Пытался собрать большой pfs из /memory/bundles, и pfs не получил и файлы что были в доступных на запись каталогах были удалены. Сейчас собираю из копии каталога, пока вроде норм процесс идет.
Название: Re: pfsmerge-dir
Отправлено: betcher от 07 Февраль 2017, 20:52:12
Сейчас собираю из копии каталога, пока вроде норм процесс идет.
Собрал, загрузил c одним мегамодулем pfs на 1.4 гига.
Название: Re: pfsmerge-dir
Отправлено: sfs от 08 Февраль 2017, 09:26:05
В случае ошибки в работе можно потерять данные
Перед mkpfs все собирается в один каталог, разобрать обратно который  - не знаю чем. Если уж заморачиваться оставлением - наверное надо и такой инструмент
В итоге rm  делается по &&
Можно убрать совсем или за ключ. Что делаем?
Я уже поработал с этим скриптом - проблем не было
Как правило разбирается старый модуль который в репе , исо и везде. Есть куда откатиться

pfsedit решает эту (http://forum.puppyrus.org/index.php?topic=19579.0) проблему?
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 08 Февраль 2017, 10:43:08
Sfs, все в скрипте норм, просто по умолчанию нужно работать с копией каталога. А так как сейчас с ключем.
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 08 Февраль 2017, 10:46:49
Sfs, все в скрипте норм, просто по умолчанию нужно работать с копией каталога. А так как сейчас с ключем.
Не понял... Лишние копии не хотелось бы делать. Модули могут быть большими. Такие операции наиболее быстро делать на tmpfs
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 08 Февраль 2017, 11:07:35
Мне кажется, что результатом выполнения
pfsmerge-dir moddir
Должен быть модуль moddir.pfs и не измененный никак каталог moddir. Без /etc/packages и тем более без удалений. Это ожидаемое поведение, как мне кажется.
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 08 Февраль 2017, 11:12:29
Цитата: betcher link=topic=19659.msg128771#msg128771 damoddir.pfste=1486541255
не измененный никак каталог moddir.
Не измененный - т.е. каждый подмодуль в своей папке? Или как unsquashfs moddir.pfs
Наверное надо сделать ключи - чтобы всем было удобно
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 08 Февраль 2017, 11:17:02
Он должен быть ровно таким каким был до выполнения команды. Это только мое мнение естественно. А как сейчас работает можно с ключем --force или  --rm или еще как.
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 08 Февраль 2017, 11:31:41
Он должен быть ровно таким каким был до выполнения команды.
Это бы неплохо, но
1. Нужен аналог pfsextract -d для папок. Писать его не набив шишек не хочется
2. Это доп. время, а при нормальном раскладе это все удаять
В итоге предлагаю:
a. последний rm вынести за ключ --clean (http://wiki.puppyrus.org/puppyrus/pr218/pfs#pfsmerge) . Делаю?
б. Он должен быть ровно таким каким был до выполнения команды. Дописать и придумать ключ
 
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 08 Февраль 2017, 11:41:03
А сделать копию всего каталога, а затем мержить считаете не рациональным? Было бы проще. В /tmp например.
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 08 Февраль 2017, 11:55:07
сделать копию всего каталога, а затем мержить считаете не рациональным?
Причем совсем. Кто-нибудь начнет разбирать базу в памяти - ее всю съест, систему поклинит. Если уж такого хочется - выносить за доп. ключи
Бэкап - отдельная задача и решать ее надо отдельно
последний rm вынести за ключ --clean . Делаю?
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 08 Февраль 2017, 11:56:15
Ок
Название: Re: pfsmerge-dir && rm *
Отправлено: DdShurick от 08 Февраль 2017, 12:06:15
Нужен аналог pfsextract -d для папок. Писать его не набив шишек не хочется
Возьмите часть кода из pfsedit
Кто-нибудь начнет разбирать базу в памяти
Кто-нибудь - да, разработчик - нет, иначе какой он разработчик
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 08 Февраль 2017, 12:10:51
Возьмите часть кода из pfsedit
Ну так дайте такую утилиту или допишите ключ в pfsmerge-dir
Автору проще разобраться в своем коде
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 08 Февраль 2017, 12:18:40
--clean - там другой смысл
сделаю --rm
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 08 Февраль 2017, 13:08:19
https://github.com/pfs-utils/pfs-utils-cli/blob/master/project-files/usr/bin/pfsmerge-dir
Нормально? Дописываю в хелп и доку?
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 09 Февраль 2017, 10:51:40
Sfs, а получится провернуть тоже самое с aufs? То есть создаем каталог внутри которого только /etc/packages. Записываем в него метаинфу для всех папок по очереди.  Затем монтируем aufs ro все папочки, сверху папку с /etc/packages и просто mksqushfs всю конструкцию.  Оверхед по использованию диска - 0. И каталоги все целы, прям идеал :) Или туплю где?
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 09 Февраль 2017, 11:09:11
получится провернуть тоже самое с aufs?
С аналогичной идеи начал. Все бы хорошо, но чтобы что-то изменить в модуле надо его распаковать. В RW  squash не монтируется
А вот распакованные папки собрать в одну через aufs - может быть.
Мне кажется, что написать скрипт разъединения будет проще и он еще где-нибудь может пригодиться. Т.к. без распаковки не обойтись - место не экономится
И вообше не уверен что это надо. --rm для подстраховки достаточно . У меня пока ничего не ломалось и не пропадало. А у Вас?
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 09 Февраль 2017, 11:33:38
А вот распакованные папки собрать в одну через aufs - может быть
Так я конкретно об этом. При чем не только папки но и модули можно так собирать. И  даже в перемешку.
--rm для подстраховки достаточно . У меня пока ничего не ломалось и не пропадало. А у Вас?
С --rm пока не проверял, без --rm пропадало. Писал об этом выше.
Мне кажется, что написать скрипт разъединения будет проще и он еще где-нибудь может пригодиться.
Надо.
Название: Re: pfsmerge-dir && rm *
Отправлено: DdShurick от 09 Февраль 2017, 11:42:56
Мне кажется, что написать скрипт разъединения
Надо.
Возьмите часть кода из pfsedit.
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 09 Февраль 2017, 11:43:03
не только папки но и модули можно так собирать. И  даже в перемешку.
Вроде, в pfsmerge так и сделано. mv cp нет. mount есть
Надо.
Может быть. Записать в нужник?
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 09 Февраль 2017, 11:43:43
Возьмите часть кода из pfsedit
Ну так дайте такую утилиту или допишите ключ в pfsmerge-dir
Автору проще разобраться в своем коде
Название: Re: pfsmerge-dir && rm *
Отправлено: DdShurick от 09 Февраль 2017, 11:45:40
Автору проще разобраться в своем коде
Там не в чем разбираться
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 09 Февраль 2017, 12:15:46
А pfsmerge  используется в гуи? Или это чисто консольная штука.  Я к чему спрашиваю. Сейчас pfsmerge dir, если я правильно понял это поиск модулей в dir И их объединение. Если именно в таком формате не востребовано, то было бы очень логично если бы dir воспринималось бы также как file.pfs. Как еще один пакет для будущего  контейнера.  То есть:
pfsmerge file.pfs file2.pfs contaner.pfs - собрать контейнер из двух модулей (как сейчас)
pfsmerge dir1 dir2  contaner.pfs - добавить метаинфу и собрать контейнер из двух каталогов
pfsmerge dir1 dir2 file.pfs  contaner.pfs - добавить метаинфу и собрать контейнер из модуля и каталогов
pfsmerge /path/00.*   contaner.pfs - собрать контейнер из модулей и каталогов соответствующих шаблону.
Удобно было бы?




 
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 09 Февраль 2017, 12:57:32
pfsmerge  используется в гуи?
На скрине. Я этим гуем никогда не пользовался.
Удобно было бы?
Мне вряд ли

Почему я сделал отдельно pfsmerge-dir , а не ключ в pfsmerge:
В pfsmerge через монтирование
pfsmerge-dir - cp mv
Объединить все в 1 скрипт можно, но будет громоздко и сложно тестить

По моему опыту распространены операции:
1. Создание составного.pfs
Подключаю - отключаю - правлю составляющие с упаковкой для быстроты в gz.pfs (gz сначала не было)
В итоге на выходе у меня pfs и я их pfsmerge
Тут мы ничего не меняли и все устраивает
2. Перепаковка имеющегося модуля с мелкими правками
pfsextract -d все в папки + поправил + pfsmerge-dir
Этого не было. Поправить одну букву в start.sh была жесть
Теперь (особенно , когда я к mc ghbrhenbk автоопределение pfs или папки merge) все удобно

Это
pfsmerge dir1 dir2 file.pfs  contaner.pfs - добавить метаинфу и собрать контейнер из модуля и каталогов
pfsmerge /path/00.*   contaner.pfs - собрать контейнер из модулей и каталогов соответствующих шаблону.
не представляю где применить
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 09 Февраль 2017, 13:54:32
Понял. Отстал.
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 09 Февраль 2017, 14:39:51
Лишний функционал не нужен. К-во ошибок пропорционально к-ву строк кода.
Дописывать надо только то, что наболело
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 11 Февраль 2017, 14:10:45
Sfs, а получится провернуть тоже самое с aufs? То есть создаем каталог внутри которого только /etc/packages. Записываем в него метаинфу для всех папок по очереди.  Затем монтируем aufs ro все папочки, сверху папку с /etc/packages и просто mksqushfs всю конструкцию.  Оверхед по использованию диска - 0. И каталоги все целы, прям идеал :) Или туплю где?
А вот распакованные папки собрать в одну через aufs - может быть
Подумал - собрать момтированием в 1 пвпку было бы идеально: Ничего не пропадет, место экономится
Т.к. не в корень - вероятно придется просто mount -ом
Дядя Шурик - можно смотрировать несколько папок в одну с ауфс-объединением? С какими ключами монтировать?
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 11 Февраль 2017, 14:20:41
Подумал - собрать момтированием в 1 пвпку было бы идеально: Ничего не пропадет, место экономится
Я за :)
Только /etc/packages  не в исходные папки записывать, а в отдельную папку и монтировать ее вместе с остальными. Так.
Sfs, а получится провернуть тоже самое с aufs? То есть создаем каталог внутри которого только /etc/packages. Записываем в него метаинфу для всех папок по очереди.  Затем монтируем aufs ro все папочки, сверху папку с /etc/packages и просто mksqushfs всю конструкцию.  Оверхед по использованию диска - 0. И каталоги все целы, прям идеал :) Или туплю где?
Название: Re: pfsmerge-dir && rm *
Отправлено: DdShurick от 11 Февраль 2017, 18:18:16
Дядя Шурик - можно смотрировать несколько папок в одну с ауфс-объединением?
А вы как думаете? При старте системы init это как раз и делает. man aufs4 (http://aufs.sourceforge.net/aufs4/man.html)
Пример монтирования:
Код
# sudo mount -t aufs -o dirs=/home/dev_modules/Arp-scan-1.9.5_XZM=rw:/home/dev_modules/dhcpcd-6.11.5_DEV=ro:/home/dev_modules/nmap-7.40_DEV=ro aufs /home/builddir
Отмонтирование: 
Код
# sudo umount /home/builddir
Только /etc/packages  не в исходные папки записывать, а в отдельную папку и монтировать ее вместе с остальными.
Смысл?
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 11 Февраль 2017, 18:51:48
Смысл?
Не факт, что папки доступны на запись. Может я из /memory/bundles собираю. И вообще сами папки правильнее не трогать.
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 11 Февраль 2017, 18:55:22
Ок. На след. неделе попробую переделать
Смысл?
Тоже не понял. Этот список создается быстро и ценности никакой не имеет
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 11 Февраль 2017, 19:18:49
Тоже не понял. Этот список создается быстро и ценности никакой не имеет
Эти папки могут быть точками монтирования и не доступными на запись.
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 11 Февраль 2017, 19:31:25
Эти папки могут быть точками монтирования и не доступными на запись.
У меня никогда таких ситуаций не возникало. Заморачиваться функционалов - собрать не из одной папки не хочется
Название: Re: pfsmerge-dir && rm *
Отправлено: betcher от 11 Февраль 2017, 19:42:34
У меня никогда таких ситуаций не возникало. Заморачиваться функционалов - собрать не из одной папки не хочется
Это первое что я попробовал сделать. Собрать pfs из /memory/bundles (по вашему  /mnt/live/memory/images однако). Я ведь не предлагаю усложнение. Вам все равно создавать /etc/packages для каждой папки, почему бы не записать их все вместе в отдельном каталоге. Вам все равно монтировать aufs из папок, почему не смонтировать еще одну. И ничего в исходные папки писать не нужно. Может я потом из них xzm'ы делать буду зачем мне там /etc/packsаges? 
Название: Re: pfsmerge-dir && rm *
Отправлено: DdShurick от 11 Февраль 2017, 19:45:34
Смысл?
Я понял. Идея замечательная. Кстати все каталоги можно монтировать rw. Надо обдумать все за и против
Заморачиваться функционалов
Всё вам не так, то мало функционала, то много. Определитесь уж, или не мешайте.
зачем мне там /etc/packsаges?
Цитата
- Зачем птицам деньги?
 - А шоб було!
Название: Re: pfsmerge-dir && rm *
Отправлено: sfs от 11 Февраль 2017, 19:53:19
Я понял.
А я не совсем. Может тогда и сделает кто понял  ;)
Я ближе к практике : меня бы и как сейчас устроило - объединить все папки из указанной - перепаковка составного.лфс
Не лишнее ли усложнение - разбирать разные пути. Для чего такое может потребоваться...

Примонтировать папку в / RW удобно - при изменениях не надо переподключать
Жили спокойно. Лепили модули по старинке, А теперь "новое мышление" поперло. Надо чтобы это в голове уложилось  :)
Название: Re: pfsmerge-dir && rm *
Отправлено: DdShurick от 11 Февраль 2017, 20:11:31
сделает кто понял
Вам же первому и не понравится.
объединить все папки из указанной
Вы никогда не задумывались, что это и блондинка мышкой может?
Не лишнее ли усложнение
Не знаю, я же сказал, думать надо.