1

Сделал спек на основе последнего дракута для шестерки и betcher. Пакет собрался вроде бы без проблем. При запуске ошибки:

[root@localhost bin]# mkuird.sh 
./configs/uird_configs/multi is not exist
mv: не удалось выполнить stat для './uird*': Нет такого файла или каталога

Если запускать make_uird_magos.sh, то

[root@localhost uird]# ./make_uird_magos.sh

modinfo: ERROR: Module ext3 not found.
modinfo: ERROR: Module cbc not found.
modinfo: ERROR: Module aes-generic not found.
modinfo: ERROR: Module aes-i586 not found.
modinfo: ERROR: Module ahci not found.
modinfo: ERROR: Module sd_mod not found.
modinfo: ERROR: Module scsi_mod not found.
modinfo: ERROR: Module jbd not found.
modinfo: ERROR: Module jbd2 not found.
mv: не удалось выполнить stat для 'uird.MagOS.cpio.xz': Нет такого файла или каталога

Подобные ошибки возникали у меня и обычной сборке, но ...cpio.xz создавался.
Спек

Spoiler
%define gitrev 4373909
%define gitdate 20180923
# define _unpackaged_files_terminate_build 0
# Git repo: https://github.com/neobht/uird.git

# How to prepare the source archive from the git tree:
# $ hash=`git log -1 --format='h'` ; date=`git log -1 --format='cd' --date=short | tr -d -` ; tar czf  ../uird-${date}-git${hash}.tar.gz  ../uird

Summary:    Unified Init Ram Disk system
Name:        uird
Version:    1.0.3
Release:    %{gitdate}git.1
License:    GPLv2+
Group:        System/Base
Url:        http://neobht.github.io/uird
Source0:    %{name}-%{gitdate}-git%{gitrev}.tar.gz
Source1:    mkuird.sh
AutoReq:    no

BuildRequires:    git
Requires(pre):    filesystem
Requires:    udev
Requires:    util-linux
Requires:    kmod
Requires:    e2fsprogs
Requires:    cpio
Requires:    coreutils
Requires:    findutils
Requires:    grep
Requires:    mktemp
Requires:    bash
Requires:    dash
Requires:    kbd
Requires:    tar
Requires:    gzip
Requires:    bzip2
Requires:    file
Requires:    kmod
Requires:    bridge-utils
Requires:    initscripts
Recommends:    plymouth
Requires:    bootloader-utils
Requires(post):  rpm-helper >= 0.24.8-1
Requires(preun): rpm-helper >= 0.24.8-1
# (cg) Replace mkinitrd and nuke all it's sub-packages
Provides:    mkinitrd = 6.0.93-32
Obsoletes:    mkinitrd < 6.0.93-32
Obsoletes:    nash
Obsoletes:    libbdevid-python
# plymouth-populate-initrd in old plymouth-scripts packages fails to find
# dracut-functions
Conflicts:    plymouth-scripts < 0.8.4-0.20111214.2
Conflicts:    bootsplash < 3.3.9-1
%if %{with doc}
BuildRequires:    asciidoc
BuildRequires:    docbook-dtd45-xml
BuildRequires:    docbook-style-xsl
BuildRequires:    xsltproc
%endif
BuildRequires:    dash
BuildRequires:  lib64kmod-devel


%description
UIRD - dracut based uinified init ram disk system 
Dracut contains tools to create a bootable initramfs for Linux kernels.

%prep
#setup -q
%setup -qn %{name}

%build
./make_busybox.sh
./make_dracut.sh


%install
mkdir -p %{buildroot}%{_datadir}/uird %{buildroot}%{_bindir}/
cp -fr ./* %{buildroot}%{_datadir}/uird/
install -m 755 %{SOURCE1} %{buildroot}%{_bindir}/
chmod +x %{buildroot}%{_bindir}/mkuird.sh
rm -rf %{buildroot}%{_prefix}/lib
rm -rf %{buildroot}%{_prefix}/src


%files 
%{_datadir}/uird/*
%{_bindir}/mkuird.sh
%changelog

2 (2018-09-29 12:27:17 отредактировано betcher)

Ошибки, которые вы показали это норм.  Собирать надо mkuird MagOS,  магос здесь имя конфига, для магеи пока нет. Будет.

3

betcher⇓ пишет:

Собирать надо mkuird MagOS,  магос здесь имя конфига, для магеи пока нет. Будет

Так конфиг   configs/uird_configs/full вполне подойдет для запуска штатно установленной  на диск Магеи
Только если диск в конфиге full определен как    uird.from=/dev/sda1
Если у вас другой диск, то надо в строке ядра загрузчика переопределить  -  например   uird.from=/dev/sda5

4

Full не очень удачное название. Взято из терминологии принятой у puppyrus.org. Фругал это модульная сборка с aufs,  а фулл  - обыкновенный линукс. Переименую пожалуй в legacy, по аналогии с uird.scan=legacy

5

https://yadi.sk/d/YnmXkN4o7s8cAw
https://yadi.sk/d/qlwD4s4k6-hPcA
Это src.rpm  и rpm собранные в магея 6 dvd, который с плазмой. Проверяйте.
Грузил в виртуалбоксе. На диск (vdi) поставл загрузчик, туда же копировал ядро и uird (тот что по ссылке).  Система подключалась из sqfs файла прямо с подключенного к виртуалбоксу исо. Проверял чистый режим и с сохранением в папку. Полет нормальный. Вот прям сейчас с этого гибрида и пишу smile
cat /proc/cmdline
uird.from=loopbacks uird.load=* uird.ro=*.sqfs  uird.mode=changes uird.changes=/dev/sda1/changes

6 (2018-09-30 19:28:18 отредактировано ingvaro)

betcher⇓ пишет:

Full не очень удачное название. Переименую пожалуй в legacy,

А может проще - disk
Раз основное предназначение  для запуска штатно установленной  на диск линукса

betcher⇓ пишет:

https://yadi.sk/d/qlwD4s4k6-hPcA
Это src.rpm  и rpm собранные в магея 6 dvd, который с плазмой. Проверяйте.



Загрузилось, только дальше не проверял
И ссылок нет из ~usr/share/uird/initrd/usr/lib/locale  в ~usr/share/uird/initrd/usr/share/locale
Но это мелочи. Вообще то Магея не балует русским при загрузке
Все на английском

Хотел то же тему открыть о UIRD, но kvv-vp меня опередил.
Можно тут о проблемах писать, если kvv-vp  не против

7

Ссылки в гит уже есть. В rpm'ках старый архив просто. Задача была чтоб собиралось и работало. Если поновой пересобрать с гит ссылки будут.
Давайте с кофигами решим и все сделаю разом.

8 (2018-09-30 21:34:12 отредактировано ingvaro)

betcher⇓ пишет:

Давайте с кофигами решим и все сделаю разом.

Тут вероятно речь идет о запуске  LiveDVD от Магеи
Я запускал    магеевский distrib-lzma.sqfs в стандартном конфиге MagOS
Только делал правку :
uird.ro=*.xzm;*.rom;*.rom.enc;*.pfs;*.sqfs
Если этой  правки в  конфиге MagOS  не будет, то буду давать в меню опцию :
uird.ro+=*.sqfs
Дальше все так же, как и с xzm-модулями. Запоминаю сис-изменения, но в виде xzm-модуля


Сейчас у моей сборке  :
Запуск с magos-модулем      -   загрузка  Магеи с настройкой от МagOS при загрузке и запуске системы.
Запуск без  magos-модуля   -   загрузка   пакетной сборки Магеи 6 с настройками запуска, сделанными, при настройке сборки,  утилитами от Магеи

В принципе удобно.

Если делать конфиг для LiveDVD от Магеи
Можно ведь использовать  конфиг full ?
Основное различие в строчках :

3)  uird.ro=*.sqfs
5)  uird.from=/loopbacks/
или вроде можно так :
uird.from=loopbacks
Как правильно ?

Назвать можно к примеру так -  livedvdm
Буква m на конце это значит Mageia
Для Suse - livedvds   и т. д.
Но этот вариант, как я понимаю, для загрузки только distrib-lzma.sqfs
Т к magos-модуль  без правок уже не запустишь
В рекламных целях да такой конфиг можно сделать
Т е у LiveDVD меняется загрузчик и все запускается и работает.
Нужно большего запускай UIRD с конфигом MagOS
Если нужен livedvdm то проверю завтра.

9 (2018-10-01 10:24:28 отредактировано betcher)

Итого.
Для загрузки обычной магеи подойдет конфиг full (legacy). Ну и uird.scan=legacy никто не отменял.
Для загрузки с dvd делаю конфиг LiveDVD-mga, типа того с которого грузился уже. Хорошая идея делать такие конфиги под разные лайвы.
Для загрузки вашей системы не знаю как лучше сделать пока. Варианты:
1. Добаить в конфиг MagOS *.sqfs - не хотелось бы, в магос такое расширение не используется, я бы и pfs убрал, так как у наших pfs расширение xzm.
2. Отдельный конфиг с любыми параметрами на ваше усмотрение. - если отличий не много то есть ли смысл?
3. Ничего не делать, прсото используйте MagOS добавляя uird.ro+=*.sqfs
4. Если исо вы все равно распаковываете, то почему бы просто не переименовывать файл.sqfs в xzm?

З.Ы. После сборки uird все конфиги остаются доступными. То есть можно собрать с MagOS, а грузить с параметром uird.basecfg=legacy и все магосовские настройки будут заменены на парметры из конфига legacy.

10

betcher⇓ пишет:

Для загрузки вашей системы не знаю как лучше сделать пока. Варианты:

betcher⇓ пишет:

3. Ничего не делать, прсото используйте MagOS добавляя uird.ro+=*.sqfs

Мне лучше подходит 3 вариант

betcher⇓ пишет:

Для загрузки обычной магеи подойдет конфиг full (legacy).

Это для загрузки обычной Магеи. Но у меня нет штатно установленной Магеи и с проверкой проблемы

Конфиг для LiveDVD (загрузка  c папки /loopbacks в корне флэшки ) сделал на базе стандартного MagOS
Конфиг full что то не пошел
С писалкой изменений в модуль проблемы. Писать то он теперь должен в  папку /loopbacks в корне флэшки
А он у меня пишет в папки /MagOS. А там у меня своя сборка ?
Думаю, что без проблем подойдет режим сохранения сис-изменений machines и changes
Да наверно хватит для  LiveDVD. Магос-модуль мне из-за режима  LiveDVD усложнять не хочется.
Попробую еще, да вечером выложу.

11

https://yadi.sk/d/SzvE807Mx4YvdA      -rpm
https://yadi.sk/d/EmXTqC2F8Vm6zg   -src.rpm
С последними правками. По умолчанию собирает с legacy  конфигом (работу не проверял, не на чем). Добавлен конфиг LiveDVD-mga, этот рабочий. В виртуалке проверял. То есть если загрузить ядро и uird собранное с этим конфигом, то он загрузит магею с диска в чистом режиме без доп параметров. С сохранениями тоже работает, проверил; uird.mode=changes uird.changes=/dev/sda1/changes имею ввиду. Чтоб сохранять в модуль одного uird не достаточно, нужны скрипты в системе.

Спасибо сказали: kvv-vp1

12

ingvaro⇓ пишет:

(загрузка  c папки /loopbacks в корне флэшки

Это уже LiveUSB-mga   smile

13 (2018-10-01 14:27:15 отредактировано ingvaro)

О  пакетной базе сборки

В modules.d/00uird/livekit/uird-init стр 266 :

header "$HEADER_END $LIVEKITNAME"

Пишет  -

 UIRD закончил работу, стартует MagOS

Хорошо бы что бы  показывалась и пакетная база сборки.
Я загружаю например разные дистры.
Заменил стр 266 :

header ""
header "$HEADER_END"
header "$(cat etc/mandriva-release)"
MGSNAME=$(find memory/bundles -maxdepth 1 -name ??-MagOS*)
[ ! -z  "$MGSNAME" ]  &&  header "Starting $LIVEKITNAME"
header ""

Теперь стал писать :

UIRD закончил работу, стартует
Mageia release 6 (Official) for x86_64        ( В МагОС будет инфоа о Росе)
Starting MagOS

заменил стр 252 :

 echolog $RC_PREINIT

на

[ -x "etc/rc.d/rc.preinit" ] && echolog $RC_PREINIT

Теперь у меня и надеюсь что в МагОС :
Загружаю с магос-модулем (пакетная сборка дистра с управлением от МагОС) и инфа о  загрузке магос-модуля появляется.
Загружаю сборку без  магос-модуля (просто пред настроенная пакетная сборка дистра )  и инфа о загрузке магос-модуля не появляется.
Загружаю сборку от МагОС и инфо о пакетной базе от Росы
Загружаю свою сборку  и инфо о пакетной базе от Магеи
Что несомненно логично и удобнее

14 (2018-10-01 16:08:59 отредактировано ingvaro)

betcher⇓ пишет:

Это уже LiveUSB-mga

Магея флэшrе  -  это LiveDVD, поэтому я для начала дал название LiveDVDM   ( где М на конце означает Mageia)
Но название не принципиально.

ingvaro⇓ пишет:

Конфиг для LiveDVD (загрузка  c папки /loopbacks в корне флэшки ) сделал на базе стандартного MagOS

Изменил  параметры :

uird.ro=*.xzm;*.rom;*.rom.enc;*.pfs;*sqfs
uird.load=distr*
uird.from=/loopbacks;/MagOS;/MagOS-Data
/loopbacks         -  тут лежит distrib-lzma.sqfs из LiveDVD от Магеи
/MagOS;/MagOS-Data    -  Стандартная сборка для МагОС, причем из МагОС/base нужен только магос-модуль

Плюсы данного конфига :

- Можно в меню дать uird.load+=88  -  загрузится distrib-lzma.sqfs + магос-модуль (88-MagOS)
   В такой загрузке работают режимы сохранения сис-изменений  uird.mode=machines и uird.mode=changes (если загрузиться с МагОС-модулем )

К сожалению МагОС-модули в Магее и МагОС (Роса) хоть и немного, но различаются
Если кто заинтерисуется, то выложу свой для Магеи

Минусы
-  Не работает в uird+Mageia  утилита  draklive-install
   Причем в сборке MagOS_2016.64_20180825  от  MagOS draklive-install работает
   Устранить пока не могу, но учитывая, что работает режим сохранения сис-изменений  uird.mode=changes, это не так актуально
   Режим uird.mode=changes на моей флэшке тянет и сильно.
   Лучше всего его применять при  установке сборки на диск. Тут со скоростью ОК !

15

Если нужно, чтоб показывал пакетную базу делайте это патчем  в  src.rpm. Это вещь дистроспецифичная, а мы по возможности стараемся от такого избавляться. Даже все что привязано к магос не в коде а в конфигах.
По конфигу для  LiveDVD-mga.
Согласен с uird.load=distrib*, это лучше чем просто звездочка.

16

betcher⇓ пишет:

Согласен с uird.load=distrib*, это лучше чем просто звездочка.

Если uird.load=*  , то с MagOS/base грузятся все модули.
А с uird.load=distrib* можно управлять загрузкой модулей через опцию   uird.load+=

17 (2018-10-01 18:07:17 отредактировано betcher)

Да, все так. Лучше даже uird.load=/distrib-lzma
А вот по MagOS,MagOS-Data думаю это не сюда. Конфиг для загрузки магеи, при чем здесь магос.
То, что вы описываете с 88-magos.xzm Антон называет магос мульти, как то так и надо назвать конфиг.

18

betcher⇓ пишет:

С последними правками.

Проверил в mageia 6-64. Пакет собрался и установился без проблем. конфиг legacy. Система, также, загружается без проблем. Спасибо.

19 (2018-10-01 22:18:36 отредактировано ingvaro)

betcher⇓ пишет:

Лучше даже uird.load=/distrib-lzma

Сделал uird.load=/di* то загрузились у меня  distrib-lzma и 32-multimedia.xzm
Вроде длинное название не прошло. Или ошибка или UIRD не пропускает. Укоротил и заработало.


betcher⇓ пишет:

А вот по MagOS,MagOS-Data думаю это не сюда.

Ну это вам решать, но LiveDVD-mga это  рекламный конфиг, меня больше устраивает стандартный конфиг MagOS
Т к distrib-lzma я буду запускать из Add/MGAREMIX Так меньше  папок в корне флэшки.

- Сначала новичок просто загрузит LiveDVD-mga из /loopbacks
- Потом загрузит distrib-lzma+магос-модуль
- потом дело дойдет до стандартной загрузки модульного МагОС

           Т е  есть преcпектива с    uird.from=/loopbacks;/MagOS;/MagOS-Data
К тому же не работает в uird+Mageia  утилита  draklive-install, а uird.mode=machines перекрывает этот недостаток.

betcher⇓ пишет:

То, что вы описываете с 88-magos.xzm Антон называет магос мульти, как то так и надо назвать конфиг.

Так меня жизнь заставляет. У меня порою на флэшке новая сборка, старая сборка, ваша МагОС-сборка или MGAREMIX
К тому же на диске у меня как правило установленная сборка.
И все запускались как близнецы и братья.
Без дополнительной инфы, во время загрузки, можно ошибиться с пунктом меню и узнать об этом только после загрузки системы
У меня и пунктов меню много и поэтому инфа о активном  диске или флэшки выводится на экран монитора в grub2

ingvaro⇓ пишет:

Русский язык на Магее заработал нормально и на ter-u16n.psf  и на UniCyr_8x14.psf (это в  стр 35 в modules.d/00uird/livekit/uird-init )
Непонятно почему раньше работал стабильно только UniCyr_8x14.psf

Загружал я сборку MGAREMIX , так там стабильно работает UniCyr_8x14.ps
А у ter-u16n.psf  по прежнему:

- загрузка UIRD  -  русский
- загрузка системы - русский, но инфа о UIRD переключается на кракозябры

Свою сборку я обновил и видимо система переключилась на ter-u16n.psf

20

betcher⇓ пишет:

https://yadi.sk/d/SzvE807Mx4YvdA      -rpm

Проверил на Магее все заработало "из коробки"
Правда запускал по старинке и с  /usr/bin/mkuird.sh еще не разбирался.

Спасибо сказали: betcher1

21 (2018-10-02 12:52:18 отредактировано ingvaro)

betcher⇓ пишет:

Лучше даже uird.load=/distrib-lzma

Проверил опция uird.load=/distrib-lzma   работает

МагОС к /loopbacks/distrib-lzma лучше подключать из конфига MagOS
Задал опции  в меню:

uird.from=/loopbacks;/MagOS;/MagOS-Data uird.load=distrib-lzma,88"

Из конфига LiveDVD-mga что то со сложностями
Файл /etc/sysconfig/MagOS не формируется
Если задать  uird.config=MagOS.ini то  /etc/sysconfig/MagOS  появился но все равно были сложности
МагОС-модуль настроен на стандартную загрузку а переделывать не сложно но смысл.
Думаю что для LiveDVD-mga  лучше  и остановиться на простой загрузке


Если задать uird.from+=/ADD в меню, то в UIRD папка ADD или любая другая папка  находится два раза
Что как то странно ???

22

Да, тоже думаю конфиги для лайвов оставить простыми. Но конфиг для загрузки с магос.ини и 88-magos.xzm тоже надо сделать. Может удастся скрестить с legacy. Вы так не пробовали, чтоб первым слоем /dev/sda1, а вторым 88-magos.xzm? Есть подозрение, что могут быть проблемы с таким конфигом.
Что делаем с крокозябликами после передачи загрузки системд?

23 (2018-10-04 10:37:47 отредактировано ingvaro)

Ну в общем то решилась проблема и  все оказалось достаточно просто.
Для UIRD все равно где находится  distrib-lzma от LiveDVD.
Это initrd от Магеи загружает его только с /loopbacks. Ну и пусть себе грузит ...
Сделал в корне флэшки папку  LVUSB
И здесь можно положить все что надо загрузить.
  Для Магеи  создал  /LVUSB/Mageia ( для других дистров будут другие папки)  и в этой папке :
-  Создал   папку base, скопировал  папку machines из /MagOS   и  MagOS.ini из MagOS-Data,
-  Скопировал sgn-файл из /MagOS
    В МагОС это MagOS.sgn   
    В моей сборке   NAME.sgn
    Где NAME  -   метка  активного раздела флэшки.
-   Скопировал в /LVUSB/Mageia/base  файл  distrib-lzma.sqfs, переименовав его как 01-distrib-lzma.sqfs   
-   Скопировал 88-magos.xzm  ( у меня 40-magos.xzm)  в /LVUSB/Mageia/base

Использовал стандартный конфиг MagOS  и опции для запуска  в меню :

uird.ro+=*.sqfs uird.from=/LVUSB/Mageia

Все  !!   
Настроить писалку изменений  в   /LVUSB/Mageia/MagOS.ini ( для моей сборки)  и можно запускать.
Вроде  distrib-lzma от LiveDVD работает как  обычная модульная сборка  и  пишет писалка изменений  и т д  .....
Так же можно поступить и с запуском из папки /loopbacks, ну а если будут LiveDVD от нескольких дистов ?
К каждому дистру свою папку в корне флэшки что ли делать ?

Ограничение:
    Нельзя в LVUSB  создавать папки  с именами от папок в корне флэшки. Особенно MagOS   и  MagOS-Data
    Создал в /LVUSB  папку  MagOS  и запустил Магею с опцией :
  uird.from= /LVUSB;/MagOS;/MagOS-Data
И модули из /MagOS у меня не грузились. Это я  88-magos.xzm  из /MagOS/base пытался загружать.
Опция работаeт, 88-magos.xzm грузится, но все таки настройки могут быть разными.
Лучше когда 88-magos.xzm лежит в /LVUSB/Mageia/base

Теперь как вашу сборку обозвать.  Может MagOS-Rosa  ????


betcher⇓ пишет:

Может удастся скрестить с legacy

У меня с этим проблема т к нет штатно установленной Магеи
Помощь может оказать  kvv-vp т к он в этом режиме и использует Магею + UIRD
Описал бы свой опыт. Но он что то молчит
В скорости вроде должна появиться свежая Магея 6.1, так на свежей попробую.
Вроде же не срочно.

24 (2018-10-04 21:46:36 отредактировано ingvaro)

betcher⇓ пишет:

Что делаем с крокозябликами после передачи загрузки системд?

Правки :

1)
Я так понял, что UniCyr_8x14.ps   в uird-init  работает устойчивее и без крокозябликов
стр 35 в  /usr/share/uird/modules.d/00uird/livekit

loadfont < /usr/lib/consolefonts/UniCyr_8x14.psf >/dev/null

2)
стр 1892   в   /usr/share/uird/modules.d/00uird/livekit/livekitlib
#    echo "$CHANGESMNT" > $3/.savetomodule
   

echo "$MACHINES/dynamic/$MUID.xzm" > $3/.savetomodule

  В режиме uird.mode=machines в /.savetomodule  появился адрес machines/dynamic, а не место его монтирования
С /memory/machines/dynamic  не пишет 81-savetomodule
81-savetomodule это ведь ваш скрипт. Работает очень хорошо.
Рекорд -  20 мин паковки. Дальше что то  просто комп отключает. Вероятно биос

3)

стр 1876     в   /usr/share/uird/modules.d/00uird/livekit/livekitlib

[ -z "$MACHINES" ] && $MACHINES=$LAYER_BASE/0/machines     -   явная ошибка 

     

 [ -z "$MACHINES" ] && MACHINES=$LAYER_BASE/0/machines

   

RPM-пакет переделал пока в модульный вариант. Так мне проще править и тестировать

43-uird-1.0.3.xzm -  Вариант с вышеописанными правками

43-uird-1.0.3-2.xzm  - Изменения по сравнению с 43-uird-1.0.3.xzm  :
- Конфиг MagOS  переименовал в magos
- добавил ссылку  /usr/bin/mkuird  на  /usr/bin/mkuird.sh
- по дефолту  конфигурируется конфиг magos
-  Запуск  -  в терминале набрать mkuird и будет сконфигурирован  загрузчик и скопирован в эту папку (uird.magos.cpio.xz)
-  в папке запуска копируются не только загрузчик, но и vmlinuz и все логи

Ссылка  -  https://cloud.mail.ru/public/Jr37/t6TFbyqQK

25

По шрифту. Unicyr добавлял еще в инитрд, когда qs делал,  в uird Антон шрифт сменил, причин не знаю. Проверю юникир в магос, а там решим. Может uird.font прикручу, как вариант.