26

по 81-savetomodule. Михаил сменил алгоритм, и у нас все работает. В том числе если выдрать и вставить флешку (с параметром uird.freemedia). По этому в uird будет так как сейчас. Вы можете адаптировать мой 81-savetomodule под то как сейчас либо патчить исходники 
uird  в src.rpm. Первый вариант естественно лучше.
Machines у нас тоже работает, по этому надо смотреть что у вас не так.

27

mkuird.sh можно просто переименовать в mkuird. Он решает две задачи: меняет текущий каталог для  сборочной uird  и переносит собранный uird в папку запуска. В остальном он для пользователя идентичен mkuird из папки urd.

28 (2018-10-05 17:28:32 отредактировано ingvaro)

ingvaro⇓ пишет:

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

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

Если задать только  uird.machines, то  $LAYER_BASE/0/machines не монтировался.
А /memory/machines/dynamic получался сам по себе
Установил :

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

Все ок !

betcher⇓ пишет:

по 81-savetomodule. Михаил сменил алгоритм, и у нас все работает.

81-savetomodule не находит /memory/machines
С другой стороны  /memory/machines это адрес монтирования.
Реальная папка находится ведь  допустим в   /memory/layer-base/0/machines/dynamic
А будет ли писать  модуль 80-savetomodule от Михаила   20 мин , при выключении системы ?
После ~ 12 мин паковки уже не работает допустим  системный systemd-poweroff.service.
Пришлось команду  /usr/bin/shutdown --halt  в /usr/lib/magos/rc.halt/90-umountmodules
А 81-savetomodule работает вроде от UIRD и пишет !!!

29 (2018-10-05 18:27:03 отредактировано ingvaro)

При запуске MGAREMIX  что то режим rootcopy меня помучил.
Кликаешь на активную флэшку, а там папка rootcopy
Режим то вроде интересный, но постоянно забываешь, что вместо флэшки появляется папка rootcopy
Это на раб-столах LXQt и Plasma
Пришлось использовать опцию :

uird.load=/base/,/modules/

Но есть же copy_rootcopy_content   в  livekitlib
Копирует rootcopy
Кликаешь на активную флэшку, и там флэшка

Изменения в uird-init   стр 221 :

LOAD=$(cmdline_value 'uird.load')
LOAD_NAME=${LOAD##*,}
[ "$LOAD_NAME" == "/rootcopy/" ] && copy_rootcopy_content $LAYER_BASE/0 $UNION

43-uird-1.0.3-4.xzm  -  https://cloud.mail.ru/public/Jr37/t6TFbyqQK

Теперь порлучилось два режима rootcopy :

uird.load=/base/,/modules/,rootcopy        -      штатная загрузка rootcopy
uird.load=/base/,/modules/,/rootcopy/        -      загрузка rootcopy при помощи  copy_rootcopy_content

30

ingvaro⇓ пишет:

Если задать только  uird.machines, то  $LAYER_BASE/0/machines не монтировался.

А, вроде понял о чем вы. Путь для machines задается в параметре uird.changes. Вы имеете ввиду ситуацию когда путь не указан? Если так то надо поправить. согласен.

ingvaro⇓ пишет:

А будет ли писать  модуль 80-savetomodule от Михаила   20 мин , при выключении системы ?

Не будет. Но и механизм machines мы позиционируем только для настроек, а не для установки софта и обновлений из реп. То есть задачи такой нет 20 минут писать. Вы как то писали, что своп рано отключается и по этому тоже machines не работает, когда changes занимает часть свопа. А если своп в файле?  То если вы не отмонтируете своп вы и фс не отмонтируете. Модули machines распаковываются в changes, не монтируются. А если вы пакуете 20 минут какой там размер?
Я бы вашу задачу решал иначе как-то.

31 (2018-10-05 18:41:29 отредактировано betcher)

ingvaro⇓ пишет:

Теперь порлучилось два режима rootcopy :

У вас всегда вместо общего решения проблемы свой особенный костыль smile)

ingvaro⇓ пишет:

copy_rootcopy_content

Это рудимент от liblinuxlive.

ingvaro⇓ пишет:

Кликаешь на активную флэшку, а там папка rootcopy

Попробуйте монтировать флешку в конкретную папку.
uird.mounts=/dev/sda1::/mnt/flash_drive дальше как обычно.
Или так:
uird.from=/dev/sda1/MagOS::/mnt/MagOS;/MagOS-Data

Говорил с Антоном по шрифтам. Если UniCyr будет работать везде его и оставим. Короче надо проверять.

32 (2018-10-05 19:46:20 отредактировано ingvaro)

betcher⇓ пишет:

А если вы пакуете 20 минут какой там размер?

Мой рекорд это 1.8 Гб в папке  changes  при 2 Гб памяти (~ 20 мин). Естественно  память была расширена через swap
Если комп крутой, то и время естественно будет меньше
Это в Магее бывают такие обновления, особенно если  установить тестовую версию. На стабильной версии таких объемов нет.
Swap работает до конца и не отключается. Просто не надо вмешиваться в систему и не отключать его раньше времени, как это делается в МагОС

/usr/lib/magos/rc.halt.pre/30-umount :

swapoff -a >/dev/null 2>/dev/null

Вот если что то из changes записано в swap, то модуля не получится

Конечно с отмонтированием надо разбираться.
Как то отмонтировался  диск а там что то нужное было. Убрал отмонтирование после паковки.
Точно уж не помню.

33 (2018-10-05 19:52:49 отредактировано betcher)

А не проще использовать сохранения в папку, а затем паковать папку в модуль. Надежнее же. Или даже не паковать, а прямо папку подключать как модуль.
А еще есть pfs-utils, а там sync2layer, pfsrebuild, syschanges любой вариант можно попробовать.
Паковать 2 гига перед выключением надеясь, что не отрубится как-то не айс smile

34 (2018-10-05 19:55:51 отредактировано ingvaro)

Да  действительно надежнее, но чистить от машинно-зависимых файлов же надо.
А при отключении  системы многое само отключается.
Вроде сети в /etc/sysconfig/network-scripts ( файлы ifcfg*) уже нет в системе
Да как то даже в голову не приходило про такой вариант
Сейчас  у меня пакетная сборка.Как накопятся обновления  обновления то обновляю сборку.

35

Так я и предлагаю после выключения.
Грузитесь с uird.mode=changes uird.changes=updates, обновляетесь, перегружаете в чистый и пакуете папку updates.
Все.
Правда в два хода.
Или так. Грузитесь как угодно, обновляетесь и pfsrebuild distrib-lzma.sqfs. Этот вариант менее надежный и почти не тестированный, но в один ход smile
Или  запускаете  syschanges, обновляетесь, сливаете папки с новыми и измененными файлами и пакуете, там машинозависимого не будет.
Или.  sync2layer папка1, обновляетесь, sync2layer папка2. Во второй папке будут только обновления, сразу пакуете.

36 (2018-10-05 20:12:48 отредактировано ingvaro)

betcher⇓ пишет:

А еще есть pfs-utils, а там sync2layer, pfsrebuild, syschanges любой вариант можно попробовать.

Пробовал как то  pfs-utils да что то ничего не получилось.
syschanges  -  очень хорошая утилита,  но на малых объемах.
Еще на базе urpmi2xzm сделал chroot2xzm
Тут и обновления можно установить и LiveDVD от Магеи  обновить и перепаковать и с диска смонтировать систему, почистить и запаковать.
Просто пакетную сборку все равно надо отрабатывать.
Сейчас отладил настройку пакетной сборки перед паковкой и  получилось вроде как LiveDVD.
Сама может запускаться  с UIRD и без МагОС.
Раньше запускалась только с UIRD +  МагОС

37 (2018-10-05 20:16:22 отредактировано betcher)

кстати да, для обновлений пойдут и urpm2pfs, chroot2xzm  и т.д. Всяко лучше чем machines под эти задачи.

38 (2018-10-05 20:42:35 отредактировано ingvaro)

betcher⇓ пишет:

Так я и предлагаю после выключения.
Грузитесь с uird.mode=changes uird.changes=updates, обновляетесь, перегружаете в чистый и пакуете папку updates.
Все.
Правда в два хода.

Я устанавливаю  обычно на диск :

uird.mode=changes uird.changes=/dev/sda3

А там дальше работа как обычно и без всяких сохранений.

У меня сейчас у писалки три  режима сохранения :

- Если установлены пакеты или работа под root  - то режим обновления
- Если работа под обычным пользователем          - то пользовательский режим сохранения
- uird.mode=machines   

Для каждого режима свой фильтр. Выбираются фильтры автоматически  Работа как в штатно-установленной  системе
Но обычно я работаю под  root  и это  режим обновления. Тут максимально убраны машинно зависимые файлы.

39 (2018-10-06 12:10:57 отредактировано ingvaro)

betcher⇓ пишет:

    Кликаешь на активную флэшку, а там папка rootcopy

Попробуйте монтировать флешку в конкретную папку.
uird.mounts=/dev/sda1::/mnt/flash_drive дальше как обычно.
Или так:
uird.from=/dev/sda1/MagOS::/mnt/MagOS;/MagOS-Data

Пробовал  $UUID@/boot::/mnt/flash_drive
Где $UUID - UUID-диска
Флэшка смонтировалась в /mnt/flash_drive, так есть же /memory/data/mounts/0
Для Plasma сделал отдельный вход
Загружался с LXQt так там опять вместо флэшки - rootcopy
Так что же теперь. Во всех раб-столах  делать правки ?
Да я rootcopy использую редко
А что нельзя что бы rootcopy монтировалась скажем в /memory/roopcopy, а не на флэшку ?

betcher⇓ пишет:

    copy_rootcopy_content

Это рудимент от liblinuxlive.

betcher⇓ пишет:

У вас всегда вместо общего решения проблемы свой особенный костыль

Так я  общих решений порою просто не знаю
Извините за бестолквость, но так и не понял чем плох copy_rootcopy_content
Его огромное преимущество, то что во время загрузки выводится  сообщение о копировании папки rootcopy
После такого сообщения как то спокойнее
В штатном режиме все молчком.  Это минус, на мой взгляд.

40 (2018-10-06 12:28:33 отредактировано betcher)

Не хотел обидеть, просто два руткопи повеселило.
Вы конечно можете использовать, раз мы удалить забыли.
По теме. В uird совсем нет руткопи в том понимании как это было в либлинукслайв. У нас есть фильтр    uird.cp  который определяет что нужно копировать. Это может быть и папка и модуль, и  исо. Если вам не нужно ничего копировать уберите из конфига и все.
По монтированиям. Тут, сказать по честному, проблема не в уирд, а в том как файловые менеджеры интерпретируют ситуацию когда диск смонтирован несколько раз ( mount --bind). Видимо показывает ту точку монтировпния, которая была смонтирована последней, или может по алфавиту. А у нас там может оказаться не корень раздела, а подкаталог. Посмотреть что и как  смонтировано удобнее командой findmnt. Как решить разом для всех DE я не знаю. С помощью uird.mounts удавалось обойти для KDE.

41

В штатном режиме не молчком. В момент когда подключаются модули те что подошли под фильтр  uird.cp помечаются справа в скобках другим цветом.

42 (2018-10-06 12:50:28 отредактировано betcher)

То есть еще раз о  uird.cp  на примере конфига для   LiveDVD.
Если вместо uird.ro=*.sqfs сделать uird.cp=*.sqfs, то модуль будет распакован в ченджез и флешку можно вытащить, а если добавить еще uird.mode=changes uird.changes=/dev/sda2 то по сути при загрузке ваша магея установится на /dev/sda2. Останется только натравить на нее загрузчик.

43 (2018-10-09 08:58:26 отредактировано ingvaro)

betcher⇓ пишет:

    copy_rootcopy_content
Это рудимент от liblinuxlive.

betcher⇓ пишет:

У нас есть фильтр    uird.cp  который определяет что нужно копировать. Это может быть и папка и модуль, и  исо

Попробовал.  Конечно копировать через фильтр    uird.cp удобнее
Но учитывая, что поддерживаемые в МагОС загрузчиком syslinux файловые системы :

fat32, ntfs, ext2, ext3, ext4, btrfs

Но ведь с fat32 копировать на линукс-фс  проблематично.
Поэтому вероятно на  fat32 все должно быть запаковано в модули.
С xzm-модуля все монтируется в корневую фс нормально. И копирование не проверял, но должно быть все ок.
Поэтому  в кофиге   /usr/share/uird/configs/uird_configs/magos  применил :

uird.cp=*.xzm.cp

А  копирование в  MagOS/rootcopy сделал из cop1.xzm.cp, cop2.xzm.cp  и т д
Преимущество что можно папок для копирования делать много.
Добавил cop1.xzm.cp.old  и модуль не копируется
И монтирование флэшки происходит штатно.
Но есть у меня знакомый программист, который использует для работы в том числе и сборку от МагОС.
Так ему монтирование флэшки как папка rootcopy даже нравится.
И учитывая что копирование с папки rootcopy может быть применено только для линукс-фс
То данную возможность  можно добавить их меню :

uird.cp+=*/rootcop

43-uird-1.0.3-5.xzm  -  https://cloud.mail.ru/public/Jr37/t6TFbyqQK

copy_rootcopy_content в /usr/share/uird/modules.d/00uird/livekit/uird-init закоментировал вдруг пригодится.

44 (2018-10-09 08:13:41 отредактировано betcher)

В этот момент доступны все фс драйвер которых вкомпилен в ядро или есть в uird. 
Загрузчик здесь не при чем. А в остальном да, все так. Если критичны права на файлы, то для фат/нтфс модули или образы. Также собственно как  с 
uird.ro.

45 (2018-10-09 09:38:22 отредактировано ingvaro)

Только для удобства работы добавил в  /usr/share/kservices5/ServiceMenus/magos-folder.desktop возможность паковки папки  в xzm.cp

[Desktop Action dir2xzm-cp]
Name=Compress into the xzm module
Name[ru]=Свернуть каталог в xzm.cp модуль
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm %f %f.xzm.cp

magos-folder.desktop :

Spoiler

[Desktop Entry]
Encoding=UTF-8
ServiceTypes=KonqPopupMenu/Plugin
MimeType=inode/directory;
Type=Service
Actions=dir2xzm;dir2xzm-cp;dir2noxzm;dir2xzm-root;dir2noxzm-root;open-as-root;nfs;smb;ftp;

[Desktop Action dir2xzm]
Name=Compress into the xzm module
Name[ru]=Свернуть каталог в xzm модуль
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm %f %f.xzm

[Desktop Action dir2xzm-cp]
Name=Compress into the xzm module
Name[ru]=Свернуть каталог в xzm.cp модуль
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm %f %f.xzm.cp

[Desktop Action dir2noxzm]
Name=Pack into the noxzm module
Name[ru]=Свернуть каталог в xzm без сжатия
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm -b %f %f.noxz.xzm

[Desktop Action dir2xzm-root]
Name=Compress into the xzm module (root)
Name[ru]=Свернуть каталог в xzm модуль (root)
Icon=application-x-xzm-compressed-tar
Exec=kdesu dir2xzm %f %f.xzm

[Desktop Action dir2noxzm-root]
Name=Pack into the noxzm module (root)
Name[ru]=Свернуть каталог в xzm без сжатия (root)
Icon=application-x-xzm-compressed-tar
Exec=kdesu -с "dir2xzm -b %f %f.noxz.xzm"

[Desktop Action open-as-root]
Name=Open folder as root
Name[ru]=Открыть с правами root
Icon=folder-red
Exec=kdesu dolphin %f

[Desktop Action nfs]
Name=nfs share
Name[ru]=Временный доступ по NFS
Icon=folder-remote-nfs
Exec=kdesu share.nfs %f

[Desktop Action smb]
Name=smb share
Name[ru]=Временный доступ по smb
Icon=folder-remote-smb
Exec=kdesu share.smb %f

[Desktop Entry]
Encoding=UTF-8
ServiceTypes=KonqPopupMenu/Plugin
MimeType=inode/directory;
Type=Service
Actions=dir2xzm;dir2xzm-cp;dir2noxzm;dir2xzm-root;dir2noxzm-root;open-as-root;nfs;smb;ftp;

[Desktop Action dir2xzm]
Name=Compress into the xzm module
Name[ru]=Свернуть каталог в xzm модуль
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm %f %f.xzm

[Desktop Action dir2xzm-cp]
Name=Compress into the xzm module
Name[ru]=Свернуть каталог в xzm.cp модуль
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm %f %f.xzm.cp

[Desktop Action dir2noxzm]
Name=Pack into the noxzm module
Name[ru]=Свернуть каталог в xzm без сжатия
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm -b %f %f.noxz.xzm

[Desktop Action dir2xzm-root]
Name=Compress into the xzm module (root)
Name[ru]=Свернуть каталог в xzm модуль (root)
Icon=application-x-xzm-compressed-tar
Exec=kdesu dir2xzm %f %f.xzm

[Desktop Action dir2noxzm-root]
Name=Pack into the noxzm module (root)
Name[ru]=Свернуть каталог в xzm без сжатия (root)
Icon=application-x-xzm-compressed-tar
Exec=kdesu -с "dir2xzm -b %f %f.noxz.xzm"

[Desktop Action open-as-root]
Name=Open folder as root
Name[ru]=Открыть с правами root
Icon=folder-red
Exec=kdesu dolphin %f

[Desktop Action nfs]
Name=nfs share
Name[ru]=Временный доступ по NFS
Icon=folder-remote-nfs
Exec=kdesu share.nfs %f

[Desktop Action smb]
Name=smb share
Name[ru]=Временный доступ по smb
Icon=folder-remote-smb
Exec=kdesu share.smb %f

[[Desktop Entry]
Encoding=UTF-8
ServiceTypes=KonqPopupMenu/Plugin
MimeType=inode/directory;
Type=Service
Actions=dir2xzm;dir2xzm-cp;dir2noxzm;dir2xzm-root;dir2noxzm-root;open-as-root;nfs;smb;ftp;

[Desktop Action dir2xzm]
Name=Compress into the xzm module
Name[ru]=Свернуть каталог в xzm модуль
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm %f %f.xzm

[Desktop Action dir2xzm-cp]
Name=Compress into the xzm module
Name[ru]=Свернуть каталог в xzm.cp модуль
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm %f %f.xzm.cp

[Desktop Action dir2noxzm]
Name=Pack into the noxzm module
Name[ru]=Свернуть каталог в xzm без сжатия
Icon=application-x-xzm-compressed-tar
Exec=dir2xzm -b %f %f.noxz.xzm

[Desktop Action dir2xzm-root]
Name=Compress into the xzm module (root)
Name[ru]=Свернуть каталог в xzm модуль (root)
Icon=application-x-xzm-compressed-tar
Exec=kdesu dir2xzm %f %f.xzm

[Desktop Action dir2noxzm-root]
Name=Pack into the noxzm module (root)
Name[ru]=Свернуть каталог в xzm без сжатия (root)
Icon=application-x-xzm-compressed-tar
Exec=kdesu -с "dir2xzm -b %f %f.noxz.xzm"

[Desktop Action open-as-root]
Name=Open folder as root
Name[ru]=Открыть с правами root
Icon=folder-red
Exec=kdesu dolphin %f

[Desktop Action nfs]
Name=nfs share
Name[ru]=Временный доступ по NFS
Icon=folder-remote-nfs
Exec=kdesu share.nfs %f

[Desktop Action smb]
Name=smb share
Name[ru]=Временный доступ по smb
Icon=folder-remote-smb
Exec=kdesu share.smb %f

[Desktop Action ftp]
Name=ftp share
Name[ru]=Временный доступ по ftp
Icon=folder-remote-ftp
Exec=kdesu share.ftp %f

46 (2018-10-09 09:36:08 отредактировано ingvaro)

Получилось  запаковал  в rootcopy папку  cop1 в cop1.xzm.cp и она копируется
Если не нужно копирование то удалить cop1.xzm.cp.
Причем папку cop1 можно из rootcopy не удалять.

47 (2018-10-17 06:32:04 отредактировано betcher)

Вот такие получились параметры для загрузки обычного линукса с /dev/sda1 плюс 88-magos.xzm
uird_cp=*88-magos.xzm
uird_from=/dev/sda1;/MagOS
uird_load=/0,/base
uird_ro=*layer-base/0

Как обозвать конфиг?

Можно еще сделать конфиг для загрузки из live.iso прямо с сервера (http,ftp) без скачивания вот только надо чтоб этот исо железно лежал в одном месте. Либо что-то типа live_latest.iso чтоб всегда свежий, а название одинаковое.
Можно сделать с предзагрузкой с сервера, там можно несколько зеркал указать.
Есть какие идеи?

48 (2018-10-17 07:45:43 отредактировано ingvaro)

betcher⇓ пишет:

Как обозвать конфиг?

Я бы назвал disk или diskload
Только первую строчку  хорошо бы так :

uird_cp=*magos.xzm

Т к  у меня порою есть и 89-magos.xzm, если что то пробую изменить и протестировать
Завтра специально установлю Магею и протестирую
Штатно-установленная Магея у меня уже давно отсутствует

  Тут проблема в Магее с ядром   4.14.70-desktop-2.mga6
Ядро 4.14*   новое - https://safezone.cc/threads/reliz-jadra … -14.30453/

Linux 4.14 имеет ряд новых функций и изменений. Данный релиз ядра станет следующей версией долгосрочной поддержки (LTS), и будет поддерживаться в течение нескольких лет.

Все вроде работает, но только команды uird.swap=auto и  uird.ramsize=200%  номинально увеличивают память за счет swap
Но когда, при копировании большого файла,  заканчивается оперативная память, то система зависает, особенно плазма
Если памяти мало, то система может зависнуть и при просмотре интернета.
Конечно в Росе этого ядра вроде нет, но в будущем  вероятно будет.
Проблема вроде в ядре 4.14*, т к на ядре 4.9.56-desktop-1.mga6 все работает
Вроде как возможность расширения памяти за счет swap в ядре 4.14* или отсутствует или заблокирована
На работе комп у меня старый , 1,2 Гб памяти и без расширения памяти за счет swap мне его не запустить
И нового пока не предвидится.

49 (2018-10-17 08:03:00 отредактировано betcher)

По *magos.xzm, согласен, можно так сделать.
Название disk и diskload не очень. Сути не отражают. Должно быть что-то типа legacy+magos-scripts.
По ядру надо внимательно все проверить. Просто залить в / файлов размером больше рам, хотябы немного. Если продолжит работать хоть и с тормозами то дело где-то в другом месте. Swapiness например.
Для вашего компа попробуйте uird.zram тогда все что у вас в changes в рам будет находиться в сжатом виде. А там очень прилично жмет,  в 2 раза и больше.

50 (2018-10-17 09:20:34 отредактировано ingvaro)

betcher⇓ пишет:

Просто залить в / файлов размером больше рам, хотябы немного. Если продолжит работать хоть и с тормозами то дело где-то в другом месте

Так и пробовал. Не работает. Система зависает и только перезагрузка.

betcher⇓ пишет:

Для вашего компа попробуйте uird.zram тогда все что у вас в changes в рам будет находиться в сжатом виде. А там очень прилично жмет,  в 2 раза и больше.

Пробовал по всякому :
1) uird.swap=auto uird.zram
2) uird.zram

Т к памяти мало то uird.zram осбо то ничего не сжимает и если есть эфект, то небольшой.. По крайней мере   зависает после заполнения оператиной памяти

Swapiness пробовал менять устанавливал 90 %
Но все равно зависает

Вроде надо пересобрать ядро 4.14* , только непонятно что там менять

Например в ядре 4.14 есть опции в file:///proc/config.gz

CONFIG_ARCH_WANTS_THP_SWAP=y
CONFIG_THP_SWAP=y

В старом ядре их нет. Явно что в ядре 4.14 что то добавлено для swap
Так то ли пересобрать и удалить эти опции или задать:

CONFIG_ARCH_WANTS_THP_SWAP=n
CONFIG_THP_SWAP=n

PS :
Ну поздравляю !!
В Росе то же уже есть ядро 4.14*  - http://wiki.rosalab.com/ru/index.php/%D … D0%BE_4.14