пожелания к функционалу cl-builder в связи с его переездом на новую версию утилит CL - предлагаем, обсуждаем

Предлагаю обсудить пожелания к функционалу cl-builder в связи с его переездом на новую версию утилит CL - Александр Трацевский вконтакте посоветовал создать топик на форуме специально для пожеланий к функционал builder - значит, есть надежда, что “хотелки” юзеров совпадут с “могу” разработчиков.

Озвучу свои мысли:
есть режим установки системы builder и, собственно, сама утилита cl-builder.
I.
Пожелания к режиму установки builder:

  1. данный режим интересен двумя элементами:
  • по идее, должен работать быстро - поэтому просьба научить livecd.squashfs уходить в ОЗУ (параметр docache сейчас не работает, хотя он работает на livedvd).
    Теоретически интересно вообще грузить систему в ОЗУ с карты или по сети и работать с жестким диском как с хранилищем файлов;
  • можно создать неубиваемую систему, предусмотреть вариант установки кальки на основе builder режима, но чтобы в workspace сохранялись только изменения /home? (функционал delta оставить как есть).
    если чтото пошло не штатно (обновился криво) - сносим дельта - и возвращаемся к исходному состоянию но с целым хомяком.
    как я понимаю, это будет достаточно просто - никаких революций не надо.
    назовем это экспериментальным режимом - в конце концов, таким образом можно ставить CL на флешки - и хомяк будет сохраняться у юзеров.
    конечно, интересно было бы, чтобы в консоли калькулэйта еще и указывать изменения в каких директориях сохранять - некоторым захочется сохранять изменения не только в хомяке.
    II.
    Пожелания к утилите cl-builder:
    одно простое “хочу”: одной кнопкой или командой в консоли - из установленной системы - получить образ iso livedvd.
    в самом обычном режиме установки > просто нажал кнопку в консоли калькулэйта > и вуаля: система упакована в iso livedvd.
    в pclinuxos есть такой функционал, еще в ряде дистрибутивов.
    причем, желательно чтобы на livedvd был полный набор видео драйверов как на установочном livedvd CL - чтоб работало везде…
    п с: на настоящий день изменять можно относительно легко состав программ, а вот чтобы сохранить изменения в хомяке пользователя - необходимо погружаться в шаблоны…

да, еще одна мысль, если не хочется революций: возможно дополнить builder режим установки кальки следующим: если юзер довел систему “до ручки” - то просто удаляет через тот же mc в консоли директории /workspace и /delta…
при перезагрузке - эти директории восстанавливаются девственно чистыми как при начальной установке - условно говоря, калька думает, что запустилась в первый раз.
дешево сердито элегантно - не усложняем существующий порядок вещей, но чуточку его улучшаем качественно.

ау, кто то вообще хочет что то сказать по теме???

Возникла идея:
доработать builder режим установки кальки, чтобы в грубе появилась новая строка - загрузка защищенного buider-livedvd режима - загрузка CL без внесенных изменений.
Т е можно если уронил builder кальку изза экспериментов или обновления - можно не возиться с лайвсиди, а просто перезагрузиться в чистую от изменений систему.
И да, в этом режиме все изменения не должны сохраняться. А ля запуск распакованного iso с харда через grub2.

САМОЕ ГЛАВНОЕ
ПЕРЕСТАТЬ ВЫПОЛНЯТЬ prelink В build-РЕЖИМЕ,
это засирает /mnt/scratch/workspace, что имеет нехорошие последствия при обновлении.
Я и раньше об этом писал, но как-то безрезультатно.


Второе - недавно я обнаружил, что при установке происходит восстановление /usr/portage и /var/lib/layman/calculate из .git.
Это хорошо, но ЭТО НЕОБХОДИМО ДЕЛАТЬ В /mnt/builder, чтоб это все было в delta а не в workspace, по тем же самым причинам.


Также предлагаю реализовать следующий вариант из коробки(сам я его давно использую, но описать все времени не хватало)

# Устанавливаю систему в builder-режиме
# Перезагружаюсь, захожу из под root-а, перехожу в /mnt/scratch, далее работа в этой директории
# создаю директорию /mnt/scratch/<версия_системы>, где версия_системы, к примеру cldg-20130321-i686, по сути - имя iso-образа из которого устанавливаю(лень смотреть как эта переменная называется)
# создаю симлинк active на эту директорию

  # pwd
/mnt/scratch
  # ls -l active
lrwxrwxrwx 1 root root 22 марта 16 18:11 active -> cldg-20130321-i686

# Перемещаю в эту диретокрию livecd.squashfs и delta/

mv livecd.squashfs delta cldg-20130321-i686/

можно делать и на живой системе, aufs не потеряет эти точки монтирования, можете глянуть до перемещения и после командой
cat /sys/fs/aufs/si_*/br*
# создаю симлинки

 # pwd
/mnt/scratch
ln -s active/livecd.squashfs livecd.squashfs
ln -s active/delta delta

# и копирую boot из iso в эту дриекторию

mount $isofile /mnt/cdrom
cp /mnt/cdrom/boot cldg-20130321-i686/

# Вношу незначительные изменения в boot/grub/grub.cfg

linux   /active/boot/vmlinuz ...
 # вместо linux   /boot/vmlinuz-3.3.8-i686-CLDG
initrd  /active/boot/initrd

# Правлю /etc/conf.d/prelink
прописываю PRELINKING=""
# …
# PROFIT
Все, теперь обновлять систему из iso можно на той же партиции, просто распаковав из нового образа livecd.squashfs и boot/ в новую директорию, создав в ней (новой директории) delta/, и указав симлинк active на нее. Особо приятно будет владельцам маленьких дисков SSD-накопителей, которым не придется жертвовать местом для запасной партиции.

PS
Кстати, никто не мешает указать grub-у iso-образ из которого он будет брать /boot/{vmlinuz,initrd} для загрузки. Ведь grub умеет монтировать iso
Если-бы системе можно было бы указать еще тот же образ, чтоб она из него брала linux.squashfs, и отдельным параметром путь к delta (или чтоб он вычислялся из имени образа)

PPS
И еще, я не вижу необходимости монтировать /mnt/builder из ядра.
Напротив, гораздо лучше это делать при вызове cl-builder. Это позволит реализовать многие интересные фишки.

PPPS
Очень нехватает дополнительных точек монтирования.
Я обычно “ручками” дописываю в /etc/fstab что-то вроде

/dev/sda5       /mnt/calculate  ext4        noatime,acl     0 0
/mnt/calculate/home             /home   none    bind    0 0
/mnt/calculate/tmp              /var/calculate/tmp      none    bind    0 0
/mnt/calculate/remote   /var/calculate/remote   none    bind    0 0
/mnt/calculate/linux    /var/calculate/linux    none    bind    0 0

Это удобно тем, что /var/calculate/templates каждый раз свежие, из моей сборки.

PPPPS
Также, очень нехватает tmpfs

что прокомментируют разработчики???

)))

еще один PS
На данный момент на системе установленной в builder-режиме не производится fsck.

Это связано с тем, что:

  • партиция монтируется ядром в /mnt/scratch в rw
  • эта партиция никак не упоминается в /etc/fstab

И это нехорошо.