cl-builder - нестандартное использование, плюсы

данная тема выделена в отдельный топик по результатам обсуждения тут:
http://www.calculate-linux.ru/boards/33/topics/6106

суть:

в чем преимущество установки кальки на жесткий диск в режиме builder?

Пока не увидел топик по ссылке данной выше - у меня было одно понимание плюсов:

  1. в любой момент я могу свернуть точную копию моей системы со всеми настройками и получить livedvd, который может использоваться далее как угодно.

Какие еще могут быть плюсы?

Топикстартер использует систему, установленную в режиме builder, в своей основной повседневной деятельности - какие плюсы??? почему установку рограммы он делает в chroot, но настройку делает в рабочей системе? в чем профит?

интуитивно чувствую фишку от такого использования кальки - но знаний не хватает понять.

может быть системы становится “неубиваемой” и всегда можно откатиться к livecd.squash???

тогда это становится фишкой кальки - почему об этом не пишем? многим для экспериментов нужна неубиваемая система, на сервера например, а тут не надо ждать, когда допилят btrfs)))))

почему установку рограммы он делает в chroot, но настройку делает в рабочей системе? в чем профит?

Плюсы:
# Вся структура системы находится в едином squash-файле.
# Все то, что устанавливается в режиме cl-builder вносит изменения в директорию /delta (по дефолту находящуюся в корне)
# Все изменения в системе, такие как конфиги, данные в /var, возможно измененные вами собственноручно скрипты в /usr и т.п. находятся в /workspace

Это четкое разграничение позволяет с одной стороны создать iso-образ обновленной системы БЕЗ всех тех изменений внесенных в работающей системе, допустим без лишних пользователей в /etc/{passwd,shadow,groups}, вообще с конфигами в /etc и данными в /var без изменений специфичных для системы на вашем компе, или с ними, если вы их оформите в шаблонах, или просто перенесете в /mnt/builder

С другой стороны - можно быстро создать бэкап вашей системы без необходимости сохранять кучу файлов находящихся на всех iso-шках.
Вот к примеру размеры структур образующих мою систему

 # for p in /mnt/scratch/{workspace/,livecd.squashfs,delta/}; do du -sh `readlink -f $p`; done
25M     /mnt/scratch/workspace
1.9G    /mnt/scratch/cldg-20121113-i686-64G/livecd.squashfs
934M    /mnt/scratch/cldg-20121113-i686-64G/delta
### при этом
 # du -hs /mnt/scratch/delta/usr/portage/
624M    /mnt/scratch/delta/usr/portage/

В моем случае - как я тут писал, обновление превращается в распаковку iso-шки и изменение симлинка
Также теперь можно забэкапить /mnt/scratch/workspace или просто заглянуть в него, и разобраться что где и как в изменено шаблонами
также, перед началом обновления, можно забэкапить /mnt/scratch/delta, если он конечно не пустой, и начать мучить систему изменять набор софта и USE-флаги по вашему усмотрению, не опасаясь получить неработоспособную систему (точнее - имея возможность привести ее в исходное состояние)
Другой более извращенный вариант - можно перемонтировать /mnt/builder с другим “верхним слоем” и в нем производить изменения софта. в этом случае не придется даже бекапов делать(экономия места на харде). Единственный минус - на данный момент объединение всех слоев потребует некоторого знания aufs и времени.

тогда это становится фишкой кальки - почему об этом не пишем?

некрасиво за других отвечать, но я думаю потому что этот функционал изначально не задумывался, и требует либо написания многих скриптов (и документации к ним), либо много ручной работы, которую тоже где-то надо расписать

многим для экспериментов нужна неубиваемая система,

ну вот выше я и расписал как это делается

… на сервера например,

у себя на сервере я запускаю некоторые службы в виртуалках поднятых через lxc на подобных многослойных фс-ах (директории с данными и неизменяемыми конфигами само собой через bind с оригинальной fs, для надежности и упрощения бэкапов).
Где-то в блоге кажется я описывал общий принцип. Выкладывать свое решение пока не буду, на данный момент - это набор страшных (но работоспособных) костылей.
Как руки дойдут - оформлю их в приличные скрипты, может даже модуль + набор шаблонов для calculate-3 напишу, думаю это будет лучший вариант.

тема великолепная.

напоминает мне MagOS, который разработчики собираю в стиле а ля Slax - вся система упакована в модули .lzm или .xzm доступные только на чтение, система получается неубиваемой.

надо эту тему хотя бы на форуме расписать, хотя лучше всего расписать в документации все плюсы такого экспериментального режима установки)))

получается это альтернатива установке на жесткий диск с двумя корнями…?) в плане неубиваемости системы.

Михаил, правильно ли я понимаю схему:

1. ставим программы в build режиме
(надо ли потом обновить livecd.squashfs файл, выполнив: cl-image squash ?
этой командой мы изменения из дельта слоя вносим в livecd.squashfs и дельта слой снова очищается???)

2. выходим из build режима и юзаем данную программу как обычно - уронить ее нам не под силу, она записана в livecd.squashfs доступном только на чтение

надо поизучать взаимодействие слоев - предназначение, команды… где почитать можно?

п с: еще идея: можно загружаться в вообще в неубиваемом режиме с обновленным livecd.squashfs, я так делал распаковывая содержимое livedvd CLD на жесткий диск и прописываю в grub параметры загрузки как в лайвдвд.

становится интересно… это же и правда фишечка… можно не ждать btrfs и идеальную неубиваемую систему построить пораньше…))

правильное ли понимание:
/mnt/scratch/workspace - тут хранятся юзерские изменения системы, директории хомяка?

/mnt/scratch/delta - тут хранятся только программы новые, обновленные.

п с: еще одна Идея: можно создать неубиваемый режим для экспериментов или вообще для такого использования системы, примонтировав тот же /mnt/scratch/delta как tmpfs
)))))))))))))))))))))))))))))))))))))))))))

п п с: чем отличаются calculate-assemble и cl-builder? есть ли дополнительные фишки в calculate-assemble???

Про основное назначение cl-builder можно почитать здесь:
http://www.calculate-linux.ru/main/ru/interactive_system_build
Про calculate-assemble тут:
http://www.calculate-linux.ru/main/ru/calculate-assemble

Александр, в чем преимущество calculate-assemble перед cl-builder???
в принципе, они делают одно и тоже, как я понимаю?
существенное отличие - для использования calculate-assemble не нужно систему предварительно устанавливать в режиме builder.

В загрузочном меню livedvd Calculate Linux есть пункт builder, планируется ли заменять cl-builder на calculate-assemble в встроенном в iso режиме сборки системы???

Преимущество в том, что при помощи calculate-assemble я могу одновременно собирать 14 систем на одной машине, зато в случае использования builder режима, я смогу видеть все то, что устанавливаю и тут же вносить изменения в профиль или шаблоны.

Александр, спасибо за ответ.
Пробовал собирать iso через builder режима, загрузившись с livedvd CLD, для пробы сил решил добавить opera в состав дистрибутива.
В итоговом образе появилась opera, но нет моих настроек - обои, закладки в опере, пароли на вайфай подключение.
Возможно ли в builder режима создать livedvd идентичный установленной системе в builder режиме?
или для этого надо копировать каталоги из guest в /mnt/scratch/delta?
либо надо править шаблоны?

Скопировать guest это самый простой способ. Для этого есть даже директория /etc/skel. К сожалению не всегда подходит. Часто в настройках прописываются полные пути, либо указывается логин. У нас же даже директория Desktop локализована. Конечно вносить изменения в настройки при помощи шаблонов сложней но эффективней.

пример шаблона можно? не знаю, что это и как, попробую разобраться.
многие хотят сделать в виде livedvd копию своей настроенной системы.
может в cl-builder включить допкоманду/ключ/опцию, позволяющую такое?

система установленная в режиме builder работает медленне, чем установленная штатно.

есть возможность файл livecd.squashfs загружать в оперативную память?

памяти 3 гига.

есть возможность файл livecd.squashfs загружать в оперативную память?

В LiveDVD (RAM) используется “docache”. Попробуйте в GRUB добавить этот параметр.

в развитие темы неубиваемого CL открыл топик:
http://www.calculate-linux.ru/boards/16/topics/19060?r=19061

docache в установленной CLD builder не срабатывает, livecd.squashfs в ОЗУ не уходит…
Возможно доработать этот вопрос?
Плюсы: в режиме builder система становится не только неубиваемой и удобной для “бесчеловечных” )))))))))) экспериментов, но еще и быстрой.
Минусы: не вижу.

Сейчас calckernel не поддерживает docache для builder режима. Возможно будет добавлена в следующей версии.

Михаил, это было бы интересно.
Мне лично это интересно в рамках использования CL в качестве “неубиваемой” системы, чтобы снизить зависимость от ошибок при обновлениях и прочих экспериментов.
Как я уже писал выше, я считаю что возможности builder режима в CL не раскрыты до конца)))

чтото мысль возникла случайно-закономерно):
а реально сделать вариант установки кальки на основе builder режима, но чтобы в workspace сохранялись только изменения /home? (функционал delta оставить как есть).
плюс добавить поддержку docache для builder режима (livecd.squashfs работает в оперативной памяти).
как я понимаю, это будет достаточно просто - ниаких революций не надо, функционал может быть использован например модифицированием загрузочных параметров в грубе хоть вручную, хоть автоматически. можно этим функционалом управлять через консоль калькулэйта - отдельный пункт сделать “Builder” - ? как идея?
плюсы: имеем на выходе неубиваемую систему.
обновляем заменой ядра инитр и livecd.squashfs - что тоже можно автоматизировать (аналог уже есть - обновление из образа).