1 (2023-01-21 21:37:49 отредактировано ingvaro)

UIRD - https://github.com/neobht/uird
Info-Overlay - https://russianblogs.com/article/87631492796/
Это разновидность initrd, его задача собрать из слоёв aufs/overlayfs корневую файловую систему и передать загрузку /sbin/init (systemd) с этой корневой файловой системой.
Но для Mageia и Lubuntu требуются правки.
Скачать исправленный конфигуратор uird  для Магеи8 - https://drive.google.com/drive/folders/ … share_link

Для других дистрибутивов надо из /usr/share/uird удалить busybox и dracut.
Запустить в терминале make_busybox.sh и make_dracut.sh
При этом для Lubuntu надо править /usr/share/uird/mkuird.cfg

Spoiler

# mkuird config file

#########################################
#uncomment this string if work dir is not ./
#WORKDIR=/usr/lib/uird
#
#BINBUSYBOX=/usr/bin/busybox                    # busybox binary, default is ./busybox/busybox
#OUTD=/boot                             # like par -o
#EXCLUDE=BIN_extra,nbd,zram                    # like par -e
#NAME=myUIRD.cpio.xz                        # like par -n
#KERNEL=4.19.10-x86_64                        # like par -k
#KMODPATH=/tmp/kernelmods                    # like par -m
#LOGD=/var/log/uird                        # like par -L
##########################################

KM_base="loop  pata_acpi ata_generic ahci xhci-hcd  xhci-pci xhci-plat-hcd ohci-pci  usb-storage uhci-hcd lockd evdev af_packet
        atkbd i8042    hid usbhid ehci-hcd ohci-hcd ehci-pci ehci-platform  hid-generic sr_mod sd_mod scsi_mod jbd jbd2 sunrpc cbc
        hid-apple mac-hid nouveau
        =drivers/ide =drivers/ata =drivers/gpu  =drivers/usb/storage  =drivers/usb/host =drivers/mmc  =drivers/net =drivers/video/fbdev"
KM_network="=drivers/net/ethernet =fs/nfs"
KM_dev="nbd zram mptspi mptfc mptsas nvme vmw_pvscsi"
KM_crypto="aes-generic aes-i586 aes-x86_64 dm-crypt cryptoloop"
KM_compAlg="z3fold lz4 zstd"
KM_virt="virtio virtio_blk virtio_pci virtio_scsi virtio_net"

FS_KM="aufs squashfs vfat msdos iso9660 isofs xfs fuse nfs cifs udf nls_cp866 nls_utf8 reiserfs overlay ext3 ntfs btrfs"

BIN_base="mksquashfs gettext loadkeys  reboot poweroff file cryptsetup kmod"
BIN_network="aria2c sshfs curlftpfs httpfs"
BIN_filesystem="mhddfs mkfs.ext4 mkfs.btrfs qemu-nbd qemu-img fsck fsck.ext2 fsck.ext3 fsck.ext4 fsck.exfat fsck.vfat fsck.xfs fsck.btrfs btrfsck ntfsfix parted resize2fs"
BIN_extra="rsync"

DM_uird="uird uird-network uird-soft"
#DM_base="base ntfs kernel-modules crypt shutdown plymouth i18n"
# Для Ubuntu
DM_base="base ntfs kernel-modules crypt shutdown"

#INST_all="/usr/lib64/plymouth/label.so /usr/share/fonts/TTF/FreeSans.ttf /etc/pki/tls/cert.pem"
# Для Ubuntu
INST_all="/usr/share/fonts/TTF/FreeSans.ttf /etc/pki/tls/cert.pem"

#use for --addon only
ExtraDM="uird-dev"

Изменения в UIRD

В Магеиа-9  и Lubuntu uird уже не запустится или запустится с ошибками.
Причины :
1)  В Магее-9  egrep устарел и отсутствует

Spoiler

~$ egrep
egrep: warning: egrep is obsolescent; using grep -E

Lubuntu то же egrep  уже отсутствует.

Spoiler

Консоль: root
[root@localhost ~]# # egrep
Использование: grep [ПАРАМЕТР]… ШАБЛОНЫ [ФАЙЛ]…
Запустите «grep --help» для получения более подробного описания.

Заменил egrep на grep -E во всех скриптах

Конфиг для UIRD

Конфиг я сделал magosm. Лежит в /usr/share/uird/configs/uird_configs
За основу взят конфиг MagOS
Но в нем отсутствуют строки  uird.from, uird.noload, uird.changes
Которые я стал задавать в меню для grub
В этом даже есть преимущество. Эти строки, перед запуском, можно откорректировать.
Получился один конфиг на оба дистра.
magosm :

Spoiler

uird.config=MagOS.ini
uird.ramsize=70%
uird.ro=*.xzm;*.rom;*.rom.enc;*.pfs;*.sqfs
uird.rw=*.rwm;*.rwm.enc
uird.cp=*.xzm.cp
uird.load=/base/,/modules/
uird.find_params=-maxdepth_3
uird.mode=clean
uird.syscp=/livekitlib::/usr/lib/magos/scripts
# Комментарии могут быть только в конце файла
#uird.home=/MagOS-Data/homes
#uird.cache=/MagOS-Data/cache

Другие изменения :

2)  UIRD при выключении формирует модуль, где сохраняются сделанные изменения в системе
DROPFILTER формирует список файлов и папок, которые надо исключить

DROPFILTER может содержать строки с полным путем до папок, которые надо исключить :

Spoiler

/etc/X11/xorg.conf
/etc/X11/xorg.conf.d
/usr/share/mga/backgrounds

Или просто имена папок или файлов, которые надо найти в системе и  исключить :

Spoiler

MagOS
magosm
uird
Trash

Тестирование показало что в Магее не всегда корректно находятся путь до папок или файлов, которые надо найти в системе и  исключить.

Разделил DROPFILTER на два фильтра :
DROPFILTER

Spoiler

/etc/X11/xorg.conf
/etc/X11/xorg.conf.d
/usr/share/mga/backgrounds

SEARCHFILTER

Spoiler

MagOS
magosm
uird
Trash

3)  И наконец что лучше AUFS или OverlayFS

AUFS более функциональна. Но тени из AUFS не работают в OverlayFS
OverlayFS более универсальна.Тени, из OverlayFS работают в AUFS
   Ограничения OverlayFS :

Spoiler

- в OverlayFS пока нет возможности при монтировать в развернутую систему  дополнительный модуль (горячее подключение).
   Приходится, сделав новый модуль, перезагружать систему.
   На мой взгляд надо обладать опытом работы с сервисами, что бы  пользоваться горячим подключением.
   Если опыта мало то лучше, даже в AUFS, не рисковать и  перезагрузиться.

- в UIRD, при выключении, сделанные изменения в системе сохраняются в модуль
  При этом /memory/changes должны суммироваться со старым модулем сохранения.
  Если это делать в OverlayFS то теряются тени, что недопустимо.
  В UIRD для  сохранения файлов +тени есть режим mount+wd
  Тут старый модуль сохранения копируется в /memory/changes
  Претензий к этому режиму у меня нет. Удивительно, но задержек нет и все копируется быстро.
  Но я попробовал применить для суммирования /memory/changes  и старый модуль сохранения утилиту mhddfs
  При этом mhddfs монтирует как файлы, так и тени файлов из memory/changes и старого модуля сохранения  .
  Скачать mhddfs  - https://raw.githubusercontent.com/rpmsp … x86_64.rpm
  Для Lubuntu пакет mhddfs присутствует в репозиториях
  При этом, если mhddfs отсутствует в UIRD, то работает авторское копирование модулей.

Spoiler

                  if [ -f '/usr/sbin/mhddfs' ]; then
                        mhddfs "$SRC","${UNION}-bundle" $UNION
                        SRC="$UNION"
        else
                    mount -o remount,rw ${SYSMNT} # need if uird.rootfs=zram
                    which rsync >/dev/null 2>&1 && \
                    rsync -aq --ignore-existing ${UNION}-bundle/* ${SRC}/ || \
                    cp -Rn ${UNION}-bundle/* ${SRC}/
fi                   

2

Сообщите автору. Тут писать нет смысла.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

3 (2022-12-30 07:35:10 отредактировано ingvaro)

Это сообщение прежде всего для пользователей Магеи
Автору  сообщил - https://forum.magos-linux.ru/t/sborka-20221225/216
Но все что касается Магеи или Lubuntu там могут просто не обратить внимание и это просто потеряется.
Так как МагОС прежде всего для Росы.

PS
С командой egrep было много работы. Она буквально во всех скриптах и ее много.
Чем Магею не устроил egrep не совсем понятно.

4 (2022-12-28 07:34:46 отредактировано AlexL)

ingvaro, https://github.com/neobht/uird/issues
Сообщать надо, где положено, а не абы где. Да и сообщение на том форуме не описывает проблему, а отсылает сюда. По ссылкам не перешли - проблему не заметили.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

5 (2022-12-29 21:08:09 отредактировано ingvaro)

Им хоть как пиши, но Росе таких проблем нет и делать они с этими ошибками ничего не будут.
И МагОС уже распадается на форки. Появился - http://barium.rosalinux.ru/
И я больше тяготею к barium так как для Магеи он лучше подходит.
Кроме того требование автора, что бы старые версии МагОС запускались а у меня их нет.
Главно непонятно а кому старые версии нужны ?
Пробовал общий магос-модуль делать но в Росе и без него все работает. Лишние изменения  это всегда опасность что будут глюки.
Надо ждать следующей сборки МагОС, не изменят egrep на grep -E то опять напишу.
Но изменений в скриптах очень много и маловероятно что автор согласится на это изменение.

6

AlexL⇓ пишет:

ingvaro, https://github.com/neobht/uird/issues

Что то ссылка не открывается.

7

ingvaro, issues на странице гитхаба.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

8 (2023-01-14 21:18:59 отредактировано ingvaro)

Задал вопросы о багах в МагОС.
Был один ответ  и дольше молчек - https://forum.magos-linux.ru/t/testim-uird/58/54
И непонятно  ничего.  Хоть бы если не похвалили то обругали.
Но это их нормальная реакция на вопросы не относящиеся к их сборке.
И это еще не все мои изменения но как то  нет у меня желания что то с ними обсуждать.

9

Разбираться с dash желания ни у кого нет, ибо пока необходимости нет, один только человек нуждается, и это вы.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

10 (2023-01-15 17:15:12 отредактировано ingvaro)

Разбираться надо не с dash  а с опциями -а -о в условных операторах.
Я не виноват, что в Ubuntu они не работают и даже в bash

11

Так и сообщите нормально автору, что проблема с bash.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

12 (2023-01-16 07:50:54 отредактировано ingvaro)

Уже заменили  egrep на grep -E  и это главное.
Но в Магее 9 выявил еще проблему. 
Магея 8 и Убунту у меня работают. Одна Магея 9 удаляет /memory/changes при выключении и uird не пишет изменения.
Сообщил - https://forum.magos-linux.ru/t/testim-uird/58/56
Пока ответа нет. Но это несложно самим исправить. И Магея 9 пока только альфа.
Для окончательного решения нужно ждать финальную версию.
А может это мой косяк ? Может криво собрал Магею 9.
Все нуждается в проверке и видимо проверяют.
Я бы делал сборку из LiveCD от Магеи, но она выходит раз в году и потом не обновляется.
В Убунте в этом плане лучше. Беру свежий LiveCD от Убунту, добавляю модуль с нужными пакетами. Вот и вся сборка.
Опциии -а -о в условных операторах не работают в Ubuntu .
И проблема с dash это то же из Убунты.
Так что для Магеи все хорошо.

13 (2023-03-21 13:07:52 отредактировано ingvaro)

UIRD - https://github.com/neobht/uird
Info-Overlay - https://russianblogs.com/article/87631492796/
Это разновидность initrd, его задача собрать из слоёв aufs/overlayfs корневую файловую систему и передать загрузку /sbin/init (systemd) с этой корневой файловой системой.

Для других дистрибутивов надо из /usr/share/uird удалить busybox и dracut.
Запустить в терминале make_busybox.sh и make_dracut.sh


Новое
1)  Автор заменил  egrep на grep -E  в UIRD
2)  Я  изменил работу Overlay
   Папка /memory/ovl/changes перемещена в /memory/changes
   Теперь функционирование Overlay ничем не отличается от AUFS
   Правленные папки в /usr/share/uird/modules.d/00uird/livekit. Это - livekitlib и uird-init
   Тестирование проводилось  для режимов TOXZM,Changes, Machines
3) Выяснилось, что Overlay может создавать несколько модулей сохранения при отключении системы.
    Поэтому для режима ToXZM создаются два фильтра
    - системный  -  /memory/layer-base/0/saves/x-changes/X-base.xzm
       тут фильтром /memory/layer-base/0/saves/unionfiltres/base-filtr удаляются машинно-зависимые файлы
      при необходимости этот модуль можно перенести в папку base и сделать системным
   - пользовательский  -  /memory/layer-base/0/saves/unionfiltres/home-filtr
     тут машинно-зависимые файлы сохранены

Скачать мой конфигуратор uird  для Магеи8  -  https://drive.google.com/drive/folders/ … share_link

14 (2023-03-23 06:40:42 отредактировано ingvaro)

Отмечу, что моя версия UIRD отличается от версии автора.
Версия автора это прежде всего логика монтирования AUFS
В моей же версии  это логика монтирования  OverlajFS.
Изменения не затрагивают сам код и обе версии рабочие.
Исправить Overlay монтирование в UIRD автор обещает только в следующей версии - https://forum.magos-linux.ru/t/sborka-u … gee/43/107