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

Автор Тема: chroot2pfs  (Прочитано 48370 раз)

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

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5356
  • Репутация: +140/-1
Re: chroot2pfs
« Ответ #165 : 20 Август 2019, 20:46:52 »
Покажите этот скрипт.
Тот же эффект можно получить запуская chroot2pfs --command. Если же использовать -c nspawn, то команда отрабатывает без ошибок.
Получается так предпочтительнее, хотя sfs когда-то предостерегал использовать nspawn для сборки модулей: 
Для сборки модулей лишнее. Для запуска ПМ достаточно chroot
Такой запуск только привнесет в модуль кэшей
Это уже проги запускать в защищенном окружении. Дома вряд ли надо

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
  • Автор темы
    • MagOS linux
Re: chroot2pfs
« Ответ #166 : 21 Август 2019, 03:07:46 »
Код
==========================
mkpfs=                  OK
pfsextract simple =     OK
pfsextract -i=          OK
pfsuninstall=           OK
mkpfs merging=          OK
pfsinfo=                OK
(u)mountfile=           OK
pfsload=                OK
pfsunload=              OK
load to ram=            OK
pfsrebuild=             OK
unload ram=             OK
pfsextract=             OK
mkpfs -m=               OK
pfsextract -d=          OK
mkpfs -d=               OK
chroot2pfs=             OK
====== Test finished =====
MagOS devel-tools #
У меня v4 selftest проходит, проверьте у себя.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5356
  • Репутация: +140/-1
Re: chroot2pfs
« Ответ #167 : 21 Август 2019, 19:15:16 »
проверьте у себя.
Скрин.
« Последнее редактирование: 23 Август 2019, 00:02:17 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5356
  • Репутация: +140/-1
Re: chroot2pfs
« Ответ #168 : 15 Апрель 2020, 10:50:45 »
https://github.com/pfs-utils/pfs-utils-cli/blob/v4/project-files/usr/bin/chroot2pfs
https://github.com/pfs-utils/pfs-utils-cli/blob/v4/project-files/usr/bin/aufs-n
Есть идея. Предлагаю обмозговать.
Вот так приблизительно может выполняться.
Куда-то бесследно переехало все, связанное с утилитами v4. Нерабочие ссылки.

В нашей вики тоже куцая информация.
« Последнее редактирование: 15 Апрель 2020, 10:53:06 от krasnyh »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
  • Автор темы
    • MagOS linux
Re: chroot2pfs
« Ответ #169 : 15 Апрель 2020, 11:05:31 »
В мастер :)

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5356
  • Репутация: +140/-1
Re: chroot2pfs
« Ответ #170 : 13 Ноябрь 2020, 19:21:00 »
Говорилось как-то, что chroot2pfs позволяет обновлять модули. Непонятна реализация. Если с pfsrebuild так (предварительно разморозив репу) :
sudo pacman -S nano && sudo pfsrebuild nano.pfs

То в случае с chroot2pfs, так?
sudo chroot2pfs -m nano.pfs --command 'sudo pacman -S nano'
Ведь новые изменения должны объединиться со старыми. Или расчет на то, что в chroot будет создан абсолютно новый самодостаточный модуль, который просто не знает о наличии старой версии и тогда правильно будет типа:
chroot2pfs -o nano.pfs -m "^[1-4].*" --command 'sudo pacman -S nano'
И затем просто заменить старую версию.
?


В шапке темы нет примера обновления отдельного модуля.
« Последнее редактирование: 13 Ноябрь 2020, 19:33:09 от krasnyh »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
  • Автор темы
    • MagOS linux
Re: chroot2pfs
« Ответ #171 : 14 Ноябрь 2020, 05:54:49 »
Да, логика такая как вы описали. Сохраняется строка с которой вы собирали, плюс сохранится скрипт если не --command, а --script. Таким образом вы правы на счет маски. В магос мы стараемся не сохранять в модулях базу ПМ по этому и не обратил внимания. Наверное стоит дописать в вашу вики.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34026
  • Репутация: +231/-0
    • PuppyRus-A
Re: chroot2pfs
« Ответ #172 : 02 Март 2021, 09:14:51 »
В свете продолжения развития overlayfs - не добавить ли его в chroot2pfs ...
Возможно, это будет решением с невозможностью горячего overlayfs подключения модулей
Выше с ауфс получалось запустить в chroot2pfs окружении Х-овые проги. Если и здесь получится - лучше чем ничего. Только, наверное,  вылезут побочки типа неработающего буфера и т.п.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
  • Автор темы
    • MagOS linux
Re: chroot2pfs
« Ответ #173 : 02 Март 2021, 11:45:20 »
Это даже не костыль, это инвалидная коляска. Проще pfsextract -i допилить для оверлея, а может и сразу заработает.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
  • Автор темы
    • MagOS linux
Re: chroot2pfs
« Ответ #174 : 02 Март 2021, 14:17:08 »
Не понял связи...
Может я тогда задачу не понял :)
pfsextract -i nano.pfs
nano
Разве не запустится nano?
Или что вы хотели?

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
Re: chroot2pfs
« Ответ #175 : 02 Март 2021, 14:53:48 »
pfsextract -i nano.pfs
nano
Разве не запустится nano?
Как в tinycore? Распаковываем в корень и запускаем? Это наиболее простой вариант, но требует памяти.
Sfs имеет в виду другой вариант:
Код
mount -o loop program.pfs dir
chroot dir
./program
Памяти потянет намного меньше, но изврат... Вот до чего доводит заимствование чужих ядер. Зачем обижал Pro?
Моноблок 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

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5356
  • Репутация: +140/-1
Re: chroot2pfs
« Ответ #176 : 02 Март 2021, 15:05:30 »
Скорее так, но это надо допиливать скрипт:
chroot2pfs -X приложение.pfs


Цитата
chroot2pfs --help
-X    - рарешить подключение к текущей X сессии. Для запуска в chroot приложений с GUI. Рекомендуется использовать с "-c nspawn"
Ядро хост-системы должно быть одинаковой архитектуры (i686 или x86_64) c гостевой. Самв хост-система может быть любой

Выше с ауфс получалось запустить в chroot2pfs окружении Х-овые проги.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34026
  • Репутация: +231/-0
    • PuppyRus-A
Re: chroot2pfs
« Ответ #177 : 03 Март 2021, 09:51:53 »
Может я тогда задачу не понял
Каким-то образом сделать запуск подключенных по горячему модулей на модульном фругале, собранном на overlayfs
Вижу 2 варианта :

1. Симлинковый : Делать симлинки в корень примонтированного сквоша. Как в tinycore
Плюсы - просто, без засад
Минусы - надо как-то чистить эти симлинки. Если сохраненка в память - можно не париться
Можно написать скрипт который при старте системы ищет и удаляет все битые симлинки
Кстати - как эта проблема решается в tinycore - не смотрел. А надо бы

2. overlay контейнерный : Типа
chroot2pfs -X приложение.pfs
Для каждого модуля при горячем подключении собирать из тех же модулей, что собрана система новый корень - абсолютно такой же как текущий и из него запускать
Плюсы - ничего не надо чистить при отключении (если примонтировано в tmp).
Минусы : Каждый слой overlay ест память . Меньше , чем ауфс (1,5мб на слой), но При аналогичном ауфс подключении сформируется 1 слой, а тут все слои по новой. Возможно такое как-то оптимизировано в overlay (надо экспериментировать)
Что делать с верхним слоем контейнера... Можно при отключении скопировать в корень
Контейнер это все-таки контейнер. Будут сложности при взаимодействии с основной системой. Пита буфер обмена вряд ли будет работать и еще что-нибудь подобное вылезет

По итогу - 1 проще и менее ресурсоемко
Ктоме того такую методу можно применять и вместо ауфс (напроимер на системах, где надо жестко экономить память) . На фул
И ядро нужно только с поддержкой squashfs
Т.е. переделать pfsextract -i c копирования на симлинки + написать на find уборжик мусора

Есть другие мнения?

Как в tinycore? Распаковываем в корень и запускаем? Это наиболее простой вариант, но требует памяти.
Да, Но там симлинки , а не копирование. Симлинки места почти не занимают
Sfs имеет в виду другой вариант:
Вар.2 - да. Чото сложно уже на старте
Вот до чего доводит заимствование чужих ядер
Какая связь с ядрами... ? сейчас с ауфс на пк проблем нет. Автор ауфс-патча приостанавливал работу из-за занятости. А если бросит... Вряд ли Pro потянет такое подхватить...

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
  • Автор темы
    • MagOS linux
Re: chroot2pfs
« Ответ #178 : 03 Март 2021, 10:55:43 »
Минусы : Каждый слой overlay ест память . Меньше , чем ауфс (1,5мб на слой), но При аналогичном ауфс подключении сформируется 1 слой, а тут все слои по новой. Возможно такое как-то оптимизировано в overlay (надо экспериментировать)
В отличии от aufs оверлей может включать в качестве слоя другой оверлей, то есть можно пробовать делать для чрута lowerdir="/", хотя так наверное рекурсию словим. Или chroot / как-то.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34026
  • Репутация: +231/-0
    • PuppyRus-A
Re: chroot2pfs
« Ответ #179 : 27 Май 2021, 15:53:19 »
./chroot2pfs -o nano.xzm -m "^[1-4].*"--command urpmi nano
подключит в чрут только те из модулей, названия которых  начинаются на 1, 2, 3 или 4
В --help
Цитата
-m | --mask    - маска для системных бандлов из которых будет создана aufs для chroot"
Пока не залез на форум, не понял, как работает

Может так :
Код
echo "Варианты перечисления слоев aufs для сборки корня chroot:"
echo "-m | --mask - регулярное выражение (подставляется в egrep) применяемое для названий уже загруженных модулей
  Примеры (модули, начинающиеся с 001 по 003):
  -m "^00[1-3].*"
  -m "^(001|002|003).*""
echo "--mlist - перечисление модулей или каталогов"
echo "  В списке можно применять \"#\" для блокирования. Пример : --mlist 1.pfs,#2.pfs,3.pfs "
echo "--flist - список из файла. В файле можно применять \"#\" для блокирования"
echo "  Создать список из модулей в каталоге dir: find  /pth/dir -name *.$EXT |sort |awk '{print \"#\"$0}' > flist.lst"

И изменить в 68 строке grep "$MASK" на grep -E "$MASK" иначе придется -m "^\(001\|002\|003\).*""