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

Автор Тема: Сохраненка.pfs create-save-pfs  (Прочитано 106203 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Сохраненка.pfs create-save-pfs
« Ответ #135 : 10 Сентябрь 2015, 14:27:13 »
Перезалил в шапке
.cache, .thumbnails .opera/cache пропускается молча
.local/share/Trash - с вопросом

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Сохраненка.pfs create-save-pfs
« Ответ #136 : 24 Сентябрь 2015, 12:07:00 »
Было или нет, сегодня заметил... 1508middle
Если вручную добавить (программа.pfs) в /modules и загрузиться с 090-save, при сохранении которой (программа.pfs) не было в /modules, то ярлык на (программа) в меню приложений не появляется.
т.е. я понимаю, это как-то связано со слоями, и можно-ли это поправить?
/modules в aufs выше 090-save
Если без 090-save - все ок - unsquashfs 090-save (распакуйте) и посмотрите что в нем в /usr/share/applications /usr/local/share/applications

Была другая проблема :
Подключенный по горячему (не через /modules) модуль создает в памяти свой .desktop (ярлык который должен появиться в меню).
Я так сделал специально - иначе иногда ярлык не появлялся в меню
При создании полного save.pfs он попадает туда. После перезагрузки - ярлык есть, а модуль не подключен
Поправил в аттаче
« Последнее редактирование: 24 Сентябрь 2015, 13:52:05 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Сохраненка.pfs create-save-pfs
« Ответ #137 : 24 Сентябрь 2015, 17:15:14 »

Оффлайн Satevis

  • Старожил
  • ****
  • Сообщений: 230
  • Репутация: +6/-0
Re:Сохраненка.pfs create-save-pfs
« Ответ #138 : 24 Сентябрь 2015, 18:10:58 »
нашёл проблему
home/live/.cache/menus/ba0fed0c9a50c3dc3a5a1644a777e035
в этом файле список меню и он не даёт обновиться меню приложений при загрузке с 090-save-* и, нужен ли он в сохранёнке?
Переделал интерфейс create-save-pfs http://www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/puppyrus-a/pra03/iso/test/089-pra-up.pfs
часики вместо кота... понравилось, что выдаётся сообщение о создании сохранёнки, а то не понятно было чем комп занят, только оно всё равно с запозданием появляется.
« Последнее редактирование: 25 Сентябрь 2015, 09:53:21 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Сохраненка.pfs create-save-pfs
« Ответ #139 : 25 Сентябрь 2015, 10:09:00 »
Перепроверил  create-save-pfs v.150924a - home/live/.cache не попадает в сохраненку. Он там не нужен
Добавил сообщение, что файлы копируются

Оффлайн Satevis

  • Старожил
  • ****
  • Сообщений: 230
  • Репутация: +6/-0
Re:Сохраненка.pfs create-save-pfs
« Ответ #140 : 25 Сентябрь 2015, 18:12:31 »
Перепроверил  create-save-pfs v.150924a - home/live/.cache не попадает в сохраненку. Он там не нужен
Добавил сообщение, что файлы копируются
Если грузиться с сохранёнкой, и по новой сохраняться (home/live/.cache) всё равно тянется, при чистой загрузке кэш в сохранёнку не идёт.
Спасибо, проблема решена.

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
скрипт сохранения в модуль pfs
« Ответ #141 : 11 Ноябрь 2015, 19:10:42 »
Не знаю,кому как, а мне самым удобным методом сохранения кажется именно pfs модуль.  Создается только в конце работы, флешка соответственно записывается не часто, носится вместе с флешкой, в отличие от changes где-нибудь в образе или каталоге на жестком диске, ну и так далее.
Вот только когда попробовал создать сохраненку скриптом create-save-pfs, очень уж большой и содержащей много лишнего она получилась.  Пытался разобраться с этим скриптом, но очень уж он велик из-за своей гуевости и универсальности по отношению к разным дистрибутивам puppy.  А я и в гуи не силен и других дистрибутивов кроме pra game не смотрел, поэтому поленился разбираться в логике скрипта, некоторое время вручную набирал нужные файлы и делал модуль посредством mkpfs, а теперь вот решил попробовать все же автоматизировать процесс.
Мой скрипт чисто консольный, заточенный только под pra, пока что даже готовый файл на место не кладет, создает только, но зато попроще и потому с ним разобраться легче.  При этом позволяет не тащить в сохраненку все подряд, исключив лишнее через командную строку и файл конфигурации.  Надо потестировать и дать направление, что переделать.
Работа пакета.
В ~live/.config/autostart лежит z5-fix-changes.desktop, который в конце загрузки системы запускает /usr/local/bin/fix-changes
fix-changes ждет 15 секунд и сохраняет список файлов, находящихся к тому моменту в /mnt/live/memory/changes, в
/tmp/changes-nonuser.list
Когда запускаем save2pfs, скрипт составляет список файлов в memory/changes, а потом убирает из списка все, что содержится в changes-nonuser.list, поскольку то, что изменилось самой системой еще до вмешательства пользователя нет смысла сохранять - при следующей загрузке опять изменится.
Затем скрипт обрабатывает список на основании ключей из /etc/save2pfs.conf и ключей командной строки, ключи отрабатывают последовательно и их может быть сколько надо.
Ключ -X regexp  (eXclude) исключает из списка строки, содержащие регулярное выражение regexp.
Ключ -I regexp  (Include) включает содержащие regexp строки обратно в список.
Поскольку ключи обрабатываются последовательно, сначала из конфига, потом из командной строки, можно последовательно уточнять, что нам нужно сохранить.  Сначала исключить целое дерево каталогов, потом включить некоторые отдельные каталоги из этого дерева, потом исключить из этих включенных какой-то каталог в глубине, потом опять включить конкретный файл...  Как-то так.
Если запустить save2pfs с ключом -l, (list-only) то скрипт только составит список и оставит его в /tmp/changes.list,
можно посмотреть, поправить конфиг или командную строку.  Без -l будет собран /tmp/090-save-YYMMDD.pfs
Поскольку скрипт толком не тестировался, pfs пока никуда не копируется, так и остается в /tmp, можно вручную перенести куда надо.
С ключом -m, (merge) в результирующий pfs будут добавлены файлы из подключенных на данный момент 090-save-*.pfs,
старые сохраненки при этом пока тоже не трогаются, можно вручную переименовать.
Пример конфига в пакете лежит.  У меня с ним, например, pfs получился что-то около 86 килобайт.
 

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:скрипт сохранения в модуль pfs
« Ответ #142 : 11 Ноябрь 2015, 20:22:40 »
 Вот мой, для Richy. Может найдёте что-нибудь полезное.
Код
#!/bin/sh
# DdShurick GPL v004 060614 for Richy
if [ "$(whoami)" != "root" ]; then #запускать из-под рута.
echo "run loginroot mksavesfs"
exit 1
fi
. /etc/DISTRO_SPECS
mkdir -p /tmp/savesfs-root
SAVEPATH=$(dirname $(head -n 1 /initrd/tmp/PUPPYFILES)) 2>/dev/null &&
[ "$(grep "pup_ro1 " /proc/mounts)" ] && cp -a /initrd/pup_ro1/* /tmp/savesfs-root/ #копируем предыдущий save.sfs
cp -a $(ls -d /initrd/pup_rw/[!dimstv]*) /tmp/savesfs-root/ #копируем из памяти.
echo false > /tmp/savesfs-root/etc/.XLOADED #это толко для Puppy
mksquashfs /tmp/savesfs-root/ /tmp/${DISTRO_FILE_PREFIX}-save.sfs -comp xz
mv -f /tmp/${DISTRO_FILE_PREFIX}-save.sfs /initrd$SAVEPATH/Richy-save.sfs
Моноблок 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

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Re:скрипт сохранения в модуль pfs
« Ответ #143 : 11 Ноябрь 2015, 22:53:41 »
а можно аттачем?  А то код под катом в результате дают однострочную полоску, читать неудобно.  Или это у меня так хром выглючивается?
UPD.  Действительно, хром.  В seamonkey окошко с кодом широкое. Зато у него заголовков и строк меню на полэкрана, пока посворачиваешь...
Посмотрел.  Коротко и ясно, единственное, что непонятно, что за исключаемый каталог в корне начинается на i?
У меня, конечно, все гораздо длиннее и страшнее.  Но я почему это затеял - пытаешься вот так копированием сохраненку сделать, и в одном только /home выходит 40 мегабайт (до сжатия), в основном от того же хрома.  Сейчас глянул, seamonkey чуть лучше, наложил всего 20 мегабайт,  стоило его только запустить.  И ведь большая часть этого всего и не нужна, сохраняй, не сохраняй, а каждый раз все равно обновляется, может, тупо дату из нескольких байт в каждый здоровенный файл базы данных прописывает.  Но и совсем все не сохранять плохо - хочется, например, чтобы тот же хром после входа в google аккоунт эту настройку сохранил и закладки сам подтягивал.  Вот, методом тыка нашел, что для этого в ~/.config/chromium/ надо оставить один файл и один подкаталог с тремя файлами, а все остальное убрать.  Посредством cp -a такое сделать - это понадобится отдельный скрипт для хрома, отдельный для seamonkey и т.д.  Вот и пришлось заморачиваться со списками и перетасовыванием их при помощи регулярных выражений.  Согласен, сложновато, есть простор для ошибок и глюков, но зато можно помаленьку настроить на все - и скрипту будет безразлично, к примеру, присутствие в конфиге правил для хрома, даже если сам хром в системе отсутствует - ну поищет по списку, не найдет и пойдет работать дальше.
« Последнее редактирование: 12 Ноябрь 2015, 00:11:33 от ander »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Сохраненка.pfs create-save-pfs
« Ответ #144 : 12 Ноябрь 2015, 09:31:49 »
create-save-pfs и sfs-get - древние исторически сложившиеся скрипты. Там наслоения еще времен пупи и PR
Код запутанный, с заплатками и тупиками. Тогда еще было не ясно что вообще должно получиться
В идеале переписать - отдельно консольная утилита - отдельно гуй. Выкинуть все не PRA. У меня не хватает времени на вылизывание скриптов
Если возьметесь - готов помогать. Не знаете yad gtkdialog - помогу

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Re:Сохраненка.pfs create-save-pfs
« Ответ #145 : 12 Ноябрь 2015, 21:44:39 »
Цитата
В идеале переписать - отдельно консольная утилита - отдельно гуй.
Вот и я о том же подумал.  Сейчас хорошо бы составить толковый конфигурационный файл, чтобы не только мне подходил.
Принципы включения/исключения, надеюсь, из примера понятны. Хотелось бы также узнать, удобны ли эти принципы, может, как-то по-другому удобнее будет?  Предлагайте, если мысль придет.
Если консольная утилита будет создавать то, что надо, тогда уже можно и гуи надстроить, который будет ее запускать и подруливать ключами в командной строке.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:скрипт сохранения в модуль pfs
« Ответ #146 : 12 Ноябрь 2015, 22:44:19 »
что за исключаемый каталог в корне начинается на i?
/initrd - Это только в Puppy
Моноблок 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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:скрипт сохранения в модуль pfs
« Ответ #147 : 13 Ноябрь 2015, 10:10:44 »
В ~live/.config/autostart лежит z5-fix-changes.desktop, который в конце загрузки системы запускает /usr/local/bin/fix-changes
fix-changes ждет 15 секунд и сохраняет список файлов, находящихся к тому моменту в /mnt/live/memory/changes, в
/tmp/changes-nonuser.list
Это надо тестировать. Предлагаю эту идею оставить напоследок
Давайте сначала сделаем консольный create-save-pfs.sh под porteus-initrd
[-o] - имя и путь выходного 90-*pfs

[-u] - только настройки
[net] - только сетевые настройки
по дефолту - полное сохранение изменений

[-d] - переносить корзину
[-g] - gzip сжатие
[-m] - объединить со старыми сохраненками
Все это есть и работает в имеющемся скрипте, но путано и не везде оптимально

Ключ -X regexp  (eXclude) исключает из списка строки, содержащие регулярное выражение regexp.
Ключ -I regexp  (Include) включает содержащие regexp строки обратно в список.
Если запустить save2pfs с ключом -l, (list-only)
Не все знают что это такое и не смогут правильно написать
Я бы сам не стал заморачиваться - перепаковал с удалением руками - просто , понятно
Давайте это тоже на потом
Не хочется усложнять. Для лист и регекс надо мануал на 2 страницы писать

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Re:скрипт сохранения в модуль pfs
« Ответ #148 : 13 Ноябрь 2015, 22:05:14 »
Цитата
[-u] - только настройки
[net] - только сетевые настройки
по дефолту - полное сохранение изменений
[-d] - переносить корзину
[-g] - gzip сжатие
[-m] - объединить со старыми сохраненками
Все это есть и работает в имеющемся скрипте, но путано и не везде оптимально
Подумаю, как это лучше сделать.  Хорошо бы только уточнить, что, к примеру, означает "только настройки" или "только сетевые настройки" и т.д.  Какие именно это должны быть файлы и каталоги.  Я ведь толком не знаю вариантов, ну найду для своей сборки pra1510game, а в других сборках, к примеру, netctl вместо NetworkManager.

Цитата
Цитата
Ключ -X regexp  (eXclude) исключает из списка строки, содержащие регулярное выражение regexp.
Ключ -I regexp  (Include) включает содержащие regexp строки обратно в список.
Если запустить save2pfs с ключом -l, (list-only)
Не все знают что это такое и не смогут правильно написать
Я бы сам не стал заморачиваться - перепаковал с удалением руками - просто , понятно
Давайте это тоже на потом
Не хочется усложнять. Для лист и регекс надо мануал на 2 страницы писать
Не, я опять, похоже, плохо объяснил.
Кладете save2pfs.pfs  в /modules
Перезагружаетесь.  (на горячую подключить можно, но в сохраненке окажется много лишнего)
Запускаете из командной строки save2pfs
без всяких ключей и регэкспов.
Все, в /tmp лежит 090-save-<дата>.pfs
Создан он по правилам из /etc/save2pfs.conf, внутри conf есть комментарии.

Все остальные страшные ключи с регэкспами - это скорее для разработчиков, -l -тоже для отладки, единственный ключ, нужный пользователю: -m
В save2pfs.conf простому пользователю тоже лазить не надо, заполнить его, чтобы большинству подходил, и все.
Имеющийся save2pfs.conf подгонял под себя, у меня он выдает компактную сохраненку, скорее всего, в системе с другим набором программ он будет неоптимален и пропустит что-то лишнее, но тем не менее работать должен.
« Последнее редактирование: 13 Ноябрь 2015, 22:07:04 от ander »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:скрипт сохранения в модуль pfs
« Ответ #149 : 16 Ноябрь 2015, 10:19:36 »
Хорошо бы только уточнить, что, к примеру, означает "только настройки" или "только сетевые настройки" и т.д.  
Внутри все есть. Скрипт рабочий. просто "грязный" внутри и имеет не очень удобный интерфейс
Не думаю что тут нужны конфиги и прочие усложнения. Для тех кто с этим сможет разобраться - проще сделать save.pfs руками. Я именно так и делаю
« Последнее редактирование: 16 Ноябрь 2015, 15:51:21 от sfs »