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

Автор Тема: S-Frugal - автоподключение .SFS при загрузке системы  (Прочитано 27275 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
s-frugal (super-frugal или SF или Конструктор). Текст шапки обновляется по мере развития идеи.
Докумендация в wiki

Методика позволяет подключать:
1. Разделы hdd,cd (скрипт mountall http://forum.puppyrus.org/index.php/topic,10474.0.html)
2. Модули.sfs (скрипт automntsfs ) выше и ниже базового.sfs
    автоматически, при загрузке системы без сохраненки и с минимумом трудозатрат и навыков
3. home директории, сохнаненные на ext разделе
4. В начало /root/.xinitrc скрипт /usr/local/bin/xinitrc_local.
Его создает пользователь, при отсутствии - ничего не происходит).  /root/.xinitrc автоматически патчится скриптом rc.sfrugal. Удобно для манипуляций с дисплеем и его разрешением

Примеры параметров ядра: sfsdiru=sad1:/sfsdiru/_stand-f.lst sfsdir=_sfs:mc,firef mountall=sda1,sda2 home=sda2:/pp/root
Лог работы: /var/log/rc.frugal.log
Применима в любом puppy и вообще в любом aufs frugal дистрибутиве (все ubuntu-debian версии desktop, porteus ...)

Позволяет:
a. Конструировать свой дистрибутив не ломая исходных блоков.
b. Легко патчить (модуль.sfs поверх базы)
с. Легко находить проблему (медодом отключения модулей)
d. Неубиваемый дист
e. Сохраненки в виде модулей.sfs или папок
f. Multi-kernel, multi-wm

Реализация идеи:

Использование s-frugal-light:
Нужно пересобрать базовый sfs. Можно unsquashfs+mksquashfs (без remasterpup)
Последняя версия скриптов и примеры http://www.mediafire.com/?emy94x1k6tgfc
s*frugal*.tar.bz2 - инъекция базового.sfs
Справка по ключам в аттаче  
Далее частично устаревшее:

Добавить в /etc/init.d/.
/etc/init.d/01automntsfs
Код
#!/bin/sh
mountall #если нужно монтировать все разделы.
automntsfs _sfs MNT_LupuRus520_1#монтировать раздел с папкой дистрибутива и подключить все *.sfs из папки _sfs (в корне раздела c дистрибутивом). Второй параметр - способ монтирования - зависит от дистрибутива
#automntsfs _sfs2 (можно изменить или монтировать несколько папок)
#опционально здесь же можно распаковать в корень архив - пропатчить базовый sfs без его изменения
01 в названии - чтобы запустился в 1ю очередь
Использовать в xinitrc - плохая идея (при выходе из Х будет пытаться монтировать повторно)
Можно запускать вручную для загрузки "всех модулей из папки"
В варианте MNT_LupuRus520 - не создает loop. Поэтому >10 не загрузить. Можно дописать, но в MNT_LupuRus520_1 и так все ОК

Удалить в базовом sfs /etc/windowmanager
Дописать в /root/.xinitrc "echo..."
Код
which $CURRENTWM && exec $CURRENTWM
[ -x $CURRENTWM ] && exec $CURRENTWM
echo jwm >/etc/windowmanager #чтобы при отсутствии вашей_wm.sfs запускалась "родная " wm
exec jwm

Примеры использования:
« Последнее редактирование: 25 Апрель 2013, 15:31:36 от sfs »

Оффлайн Zay

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 1536
  • Репутация: +25/-0
Протестировал, работает хорошо.

Немного модифицировал скрипт:
Не понял, зачем выносить скрипт в WM? Встроил его в базовый SFS и переименовал в rc.loadsfs.
Перенес строку запуска из sysinit в rc.local (плюс - легко изменить или отключить пользователю).
Название каталога с SFS передаётся скрипту при запуске, изменено на "load_sfs".

Во вложении - модифицированный вариант скрипта.
UPD: Вложение удалено, скрипт обновлён (см. ниже).
« Последнее редактирование: 06 Ноябрь 2011, 11:04:47 от Zay »

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
зачем выносить скрипт в WM?
чтобы запустить патч базы.sfs (распаковать архив на / с заменой файлов)
Для разных вм - разные патчи
Если патч нужен - принципиально держать rc.local2 в вм
Остальное - косметика
Тут много чего можно накрутить в зависимости от конкретной задачи
вплоть до : в базе ядро и по мелочи, остальное по разделам в .sfs через s-frugal
...только надо ли...
Выносить имеет смысл часто обновляемые проги (браузер)

Оффлайн Zay

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 1536
  • Репутация: +25/-0
ИМХО, loadsfs - полезная возможность, зачем привязывать её к WM?

чтобы запустить патч базы.sfs (распаковать архив на / с заменой файлов)
Это - отдельная задача (запуск скрипта из WM).
Почему не использовать init.d для этого?

Онлайн pureproft

  • Старожил
  • ****
  • Сообщений: 228
  • Репутация: +6/-1
sfs,
в базе ядро и по мелочи, остальное по разделам в .sfs через s-frugal
а вот этого по аналогии со slax (и проч. на линукслайв скриптах типа MagOs) я лично жду давно.... осталось ещё сохранёнку пустить в папку и руткопи  сделать...
в slax например для работы системы достаточно  001-core.lzm,002-xorg.lzm... т.е. база под какоето приложение (не кдешное конечно) упакованое в модуль со своими зависимостями... там ещё и это зарыто, о чём не кто не помнит autoexec=startx~/usr/lib/X11/xinit/xinitrc.fluxbox;telinit~4;poweroff..... т.е. даже в старом добром слаксе лишнее есть.
fRUgal OS  ...читаю между букв...

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Почему не использовать init.d для этого?
можно пример?
по аналогии со slax
А чем это хорошо с практической стороны?
И если хорошо -почему бы просто не юзать слакс?
« Последнее редактирование: 02 Ноябрь 2011, 20:56:25 от sfs »

Оффлайн Zay

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 1536
  • Репутация: +25/-0
можно пример?
В WM.SFS можно положить любой скрипт в этот каталог.

Обновления файлов, ядра и т.д. - в руках разработчика WM.
А эта тема - про скрипт автоподключения SFS с программами.
« Последнее редактирование: 02 Ноябрь 2011, 21:07:51 от Zay »

Онлайн pureproft

  • Старожил
  • ****
  • Сообщений: 228
  • Репутация: +6/-1
С практической стороны плюсов очень много, но это отдельная тема....
Slax возможно выйдет из заморозки... Томас вроде как говорил о возможности появления 7, не официальный Porteus имеется плюс MagOs. принципы одни и те же, они всё таки требуют технику по новей.
Волею судеб сейчас остался с единственным Roverom p4 2.2 256... комфортно на нём чувствуют себя только Puppy и верх моего удивления работа последней Slacko.

По поводу плюсов можно развить если интересно, но мне это было интересно именно рассматривая puppy как технологичную платформу система+одно спец приложение(например кассовый терминал в магазине.... давно не писал на форуме так как возможности участвовать нет, но читая часто встречаю пожелания других по модульности чётко отражённые в реализации знакомых мне Slax и как развитие MagOs.
Я видел в puppy прежде всего платформу а именно фругал платформу и надеялся что ктото подхватит и поставит на коммерческие рельсы, например производители терминалов и модных нынче неттопов, но развитие идёт своим чередом... и на мой взгляд по спирали.
P.S. в день знакомства с Puppy заменил им софт на (Via)терминалах от Аквариуса и они к радости пользователей перестали терять rdp сессию. как же давно это было!!! в до джинсовые времена!!!
fRUgal OS  ...читаю между букв...

Оффлайн Zay

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 1536
  • Репутация: +25/-0
Продолжаю думать, как улучшить скрипт.

Сейчас подумал, что есть смысл переименовать скрипт в loadsfs (без rc.) и перенести в /sbin. Тогда можно будет его вызывать простой командой "loadsfs".

Вопрос к sfs: зачем сделан вывод лога, какие там могут быть сообщения?
Хотелось бы переделать скрипт так, чтобы вывод в лог делался в самом скрипте (не при вызове).

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Сейчас подумал, что есть смысл переименовать скрипт в loadsfs
/usr/sbin/load_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

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Продолжаю думать, как улучшить скрипт.
Тоже:  slacko-5.3-pae-rus-sf.iso http://forum.puppyrus.org/index.php/topic,7971.msg57570.html#msg57570
Кстати - Ваш вариант (аттач ) виден только залогинившимся - так задумано?

Сейчас подумал, что есть смысл переименовать скрипт в loadsfs (без rc.) и перенести в /sbin. Тогда можно будет его вызывать простой командой "loadsfs".
Хорошая идея. Загрузка кучи .sfs одной командой. Директорий с .sfs - параметром

Вопрос к sfs: зачем сделан вывод лога, какие там могут быть сообщения?
Для отладки. Туда кроме вывода fixmenus ничего не попадает. Наверное - убрать или переделать
Кстати fixmenus там тоже не нужен
Хотелось бы переделать скрипт так, чтобы вывод в лог делался в самом скрипте (не при вызове).
Не понял идеи. Можно подробнее?

Оффлайн Zay

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 1536
  • Репутация: +25/-0
Сейчас экспериментирую с новым вариантом от DdShurick'а.

Не понял идеи. Можно подробнее?
Вопрос снят, потому что:
Для отладки.

Кстати, в /tmp/SFS_MNT должны быть всё подключённые в данный момент SFS?

/usr/sbin/load_sfs уже существует, будет путаница из-за похожих имён.
Согласен. Можно назвать findsfs, например.
« Последнее редактирование: 04 Ноябрь 2011, 20:08:05 от Zay »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Можно назвать findsfs, например.
Опоздал :) . Уже есть, только не могу найти, куда положил. На основе такого кода:
Код
mkdir -p ~/.SFSs
find /mnt -follow -type f -name *.sfs -exec ln -s {} ~/.SFSs \;
rox ~/.SFSs
Далее правый клик по ссылке на выбранный SFS - подключить 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

Оффлайн Zay

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 1536
  • Репутация: +25/-0
Опоздал
Эх, как же тогда?  automntsfs  (такого ещё нет)?

Оффлайн Zay

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 1536
  • Репутация: +25/-0
Новый вариант скрипта. (Спасибо DdShurick за скрипт-основу!).

/usr/sbin/automntsfs
Подкаталог в котором нужно искать SFS передаётся параметром.
При запуске без параметров поиск в каталоге с дистрибутивом.

Изменено:
Загрузка из каталога с основным дистрибутивом или из каталога с Save-файлом (если создан).
Встроена проверка: если SFS уже смонтирован - он не монтируется повторно (можно запускать скрипт много раз).
Путь к каталогу, в котором был поиск SFS сохраняется в /tmp/automntsfs_dir
Мелкие исправления.

Файл во вложении.