Сайт | Скачать | Видео | Wiki

Автор Тема: Initrd UIRD  (Прочитано 242524 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Initrd UIRD
« Ответ #600 : 06 Январь 2019, 07:55:53 »
А вот uird похоже подключает именно оригинальные версии файлов
UIRD не в курсе которые версии оригинальные. Он подключает по алфавиту, но не по именам файлов модулей, а по полным именам, с путями. По этому, то что в base будет всегда раньше чем то что в modules, а в modules раньше чем optional. Плюс к этому еще источники также по порядку 1,2,3 и так далее. Так что можно разрулить любую последовательность при желании. Мы же не ограничены ни папками ни источниками. Сделайте папку abase и все что в ней будет грузиться раньше чем в base. Сделайте папку saves и храните там модули с изменениями, из saves будет подключаться после optional. Или сделайте папку вторым источником и модули оттуда будут грузиться после остальных.
« Последнее редактирование: 06 Январь 2019, 07:57:40 от betcher »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Initrd UIRD
« Ответ #601 : 06 Январь 2019, 10:58:45 »
минус overlayfs - невозможность горячего подключения модулей
Что почти убивает идею фругала в том виде, как мы привыкли
Т.е. ovfs актуален только если ну совсем никак не прикрутить aufs
ощущение  что uird путает все слои.
Проверяйте aufs-n
В пра 089 090 всегда сверху. Переложите их с юирд в /base

Количество слоев overlayfs сейчас ограничего?

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Initrd UIRD
« Ответ #602 : 07 Январь 2019, 14:43:34 »
Вобщем такое ощущение  что uird путает все слои.
Поправка, uird не причем. :)  В PRA модули с индексом 089-, 090- загружаются в самом конце, после всех из /base, /modules и, если есть, /optional.

 Вот часть inxi из pra6408-01.iso. Если будут свои сохранения в 090-save, то они окажутся в самом конце загрузочного списка:
Цитата
Параметры загрузки ядра:
dir=pra64  rw quiet load=mesa;theme-pop;-gtk2-;palemoon

Лог porteus-initrd:
# Опознаны устройства:
/dev/sr0: LABEL="isolinux hybrid iso" TYPE="iso9660"

# Загрузочное устройство:
/mnt/sr0

# Модули дистрибутива найдены в:
/mnt/sr0/pra64

# Изменения сохранены в:
memory

# Нестандартная директория /rootcopy :
none

# Модули активированые во время загрузки:
/mnt/sr0/pra64/base/000-kernel-4.15.4-pf_64.pfs
/mnt/sr0/pra64/base/001-prar-c-180101-sf14.pfs
/mnt/sr0/pra64/base/035-gtk2-2.24.31-1-180101-sf07.pfs
/mnt/sr0/pra64/base/040-de-ols-gtk2-180101-sf15.pfs
/mnt/sr0/pra64/base/084-theme-pop-green-blue_any-sf03.pfs
/mnt/sr0/pra64/modules/Noxbit-p-20170703-sf04.pfs
/mnt/sr0/pra64/modules/deadbeef-static-p-0.7.2-3-sf02.pfs
/mnt/sr0/pra64/modules/ffmpeg-light-3.4.1-180101-sf01.pfs
/mnt/sr0/pra64/modules/linux-firmware-20180518_any.pfs
/mnt/sr0/pra64/modules/mhwd-p-0.6.3_64-sf01.pfs
/mnt/sr0/pra64/modules/mpv-light-0.27.0-17-180101-sf04.pfs
/mnt/sr0/pra64/modules/nss-3.34.1-180101-sf02.pfs
/mnt/sr0/pra64/modules/pra-installer-2018.12-30-any.pfs
/mnt/sr0/pra64/modules/premote-180101-sf02.pfs
/mnt/sr0/pra64/optional/gtk2/083-palemoon-profile-28.1.0_any-sf03.pfs
/mnt/sr0/pra64/optional/gtk2/atril-gtk2-1.16.1-180101-sf02.pfs
/mnt/sr0/pra64/optional/gtk2/geany-gtk2-p-1.32.0_64-sf01.pfs
/mnt/sr0/pra64/optional/gtk2/gmtp-gtk2-1.3.10-2-180101-sf01.pfs
/mnt/sr0/pra64/optional/gtk2/gparted-gtk2-0.30.0-3-180101-sf02.pfs
/mnt/sr0/pra64/optional/gtk2/inkscapelite-gtk2-p-0.36._64-sf01.pfs
/mnt/sr0/pra64/optional/gtk2/lxhotkey-gtk2-p-0.1.0_64-sf01.pfs
/mnt/sr0/pra64/optional/gtk2/mtpaint-gtk2-p-3.49_64-sf01.pfs
/mnt/sr0/pra64/optional/gtk2/palemoon-p-28.2.2_64-sf01.pfs
/mnt/sr0/pra64/optional/gtk2/soft-ext-gtk2-1801-sf01.pfs
/mnt/sr0/pra64/optional/gtk2/synapse-gtk2-p-0.2.10_64-sf01.pfs
/mnt/sr0/pra64/optional/gtk2/transmission-gtk2-p-2.60_64-sf01.pfs
/mnt/sr0/pra64/optional/mesa-17.3.1-2-180101-sf01.pfs
/mnt/sr0/pra64/base/089-prar-upd-180101-sf48.pfs

UPD.
В пра 089 090 всегда сверху.
« Последнее редактирование: 07 Январь 2019, 14:45:14 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Initrd UIRD
« Ответ #603 : 07 Январь 2019, 17:59:58 »
Не понятно зачем sfs так прибил гвоздями этот момент. Припоминаю, что специально это прибивалось. Тогда не понял - зачем и сейчас не понимаю. Как в uird сделано - гораздо логичнее - алфавитный порядок. И без всяких исключений для модулей патчей.
Разве сохраненку (090) и фиксы (089) не логично иметь сверху?

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
Re: Initrd UIRD
« Ответ #604 : 07 Январь 2019, 18:29:47 »
Разве сохраненку (090) и фиксы (089) не логично иметь сверху?
/patches/ - для патчей
/saves/    - для сохранений

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Initrd UIRD
« Ответ #605 : 07 Январь 2019, 18:35:58 »
У нас такого нет. Делаю максимально близко к portrus, чтобы не изобретать стандартов

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
Re: Initrd UIRD
« Ответ #606 : 07 Январь 2019, 18:54:04 »
У нас такого нет
У нас тоже )) Но думаю логичное решение, чтоб патчи и сейвы были там где надо при загрузке с уирдом.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Initrd UIRD
« Ответ #607 : 11 Январь 2019, 15:31:12 »
Спасибо за наводку:
http://forum.puppyrus.org/index.php?topic=21315.msg152027#msg152027
Развивая идею похоже получилось сделать для UIRD полное размонтирование всех разделов, а также сохранение в модуль без поддержки со стороны ОС.
Пока сыро, но в МагОС вроде работает. Для того, чтоб создавался /run/initramfs нужно добавить параметр uird.shutdown. Сохранение в модуль включается как обычно ( uird.mode=machines  uird.changes=папка ) либо ( uird.mode=changes uird.changes=модуль.xzm ) только теперь для сохранения скрипты магос уже не нужны. Только Uird и ОС c systemd.

Оффлайн stea.61

  • Пользователь
  • **
  • Сообщений: 45
  • Репутация: +6/-0
Re: Initrd UIRD
« Ответ #608 : 13 Март 2019, 00:10:15 »
Всем привет!
По ходу знакомства с UIRD на предмет использования "в личных целях" - нативной загрузки Linux из VDI-VHD-VMDK и применения файлов VD в качестве слоев AUFS - появились у меня пара предложений и одна "непонятка".
Обращаюсь к авторам и знатокам UIRD.
Начну с предложений.
1. Предлагаю в UIRD заменить qemu-nbd на vdfuse.
Быстродействие вирт-дисков, подключенных с использованием vdfuse, выше в 3-5 раз.
Подключение стабильно, на данный момент проблем в тестах пока не замечено.
Собрал и потестил с MagOC ядро 4.15 (ради поддержки BTRFS с zstd) и UIRD с поддержкой монтирования VDI-VHD-VMDK с использованием vdfuse - подумал, что можно предложить командам MagOS и Puppy на "посмотреть-потестить" - > MagOS+VD
В архиве дополнение к стандартному составу MagOS из "крайнего на сегодня" x64 дистра и в файле magos-menu.cfg используемый мной конфиг.

2. Попутно немного дополнил UIRD - к режиму RW-слоя "использовать ZRAM" (uird.zram) добавил вариант с алгоритмом сжатия zstd: запись в конфиг -  uird.zstd
В ZRAM пока вроде бы zstd на прикрутили - пришлось изобретать самостоятельно. На RAM-слой без ощутимого замедления в работе получается впихнуть примерно в 1,4 раза больше данных, чем в варианте uird.zram c lzo. Мне этот вариант показался привлекателен при компилировании.
Немного иллюстраций:
1. UIRD.ZRAM - исходное состояние.

загрузка RAMD копированием двух комплектов /usr/lib/*

очистка


2. UIRD.ZSTD - исходное

загрузка RAMD копированием ТРЕХ комплектов /usr/lib/*

очистка

PS Параметры алгоритма UIRD.ZRAM несколько изменены, относительно авторского варианта.
Код
#	echo $mem_zram >/sys/block/zram1/disksize
# echo $mem_zram >/sys/block/zram1/mem_limit
echo $(($mem_zram * 4 / 3)) >/sys/block/zram1/disksize
echo $(($mem_zram * 3 / 4)) >/sys/block/zram1/mem_limit   

Теперь про "непонятку" - при добавлении источника по uird.from+=... в параметрах загрузки обращение к источнику и его инициализация выполняется дважды.
Если в загрузочной записи полностью записать конфиг  uird.from, то все источники инициируются однократно.
Так должно быть, или это я чего-то своей рихтовкой исходника накосячил?
« Последнее редактирование: 13 Март 2019, 00:23:27 от stea.61 »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Initrd UIRD
« Ответ #609 : 13 Март 2019, 00:33:31 »
 На всех скриншотах в zramctl алгоритм lzo? А zstd?

Оффлайн stea.61

  • Пользователь
  • **
  • Сообщений: 45
  • Репутация: +6/-0
Re: Initrd UIRD
« Ответ #610 : 13 Март 2019, 00:41:45 »
В режиме uird.zstd  подключен ramdisk, точнее, RW-слой AUFS,  а zram  используется для swap.
Внимательно прочитай листинг.
« Последнее редактирование: 13 Март 2019, 20:18:35 от stea.61 »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Initrd UIRD
« Ответ #611 : 13 Март 2019, 09:22:17 »
"посмотреть-потестить"
Уже обсуждали - наиболее удобный формат - iso

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
Re: Initrd UIRD
« Ответ #612 : 13 Март 2019, 16:46:48 »
В ZRAM пока вроде бы zstd на прикрутили
За то прикручен механизм смены алгоритма (только для uird.swap). Отдельно каждый алгоритм не прикручивается. Если ничего не трогать, то используется алгоритм по умолчанию, на данный момент, по крайней мере в Росе, это lzo. Для смены алгоритма он указывается следующим образом: uird.zram::zstd(ошибся, это только для uird.swap работает) uird.swap=zram::zstd. Таким же образом указывается размер, в процентах от ОЗУ. Например uird.zram::zstd::100 uird.swap=zram::zstd::100 можно и со знаком процента uird.zram::100%::zstd uird.swap=zram::100%::zstd
Теперь про "непонятку" - при добавлении источника по uird.from+=... в параметрах загрузки обращение к источнику и его инициализация выполняется дважды.
Если источник указываемый через uird.from+ совпадает с источниками по умолчанию, то наверно будет дважды инициализироваться. "+" добавляет к уже заданному значению параметра дополнительное, а без "+" значение переписывается.
Предлагаю в UIRD заменить qemu-nbd на vdfuse.
Быстродействие вирт-дисков, подключенных с использованием vdfuse, выше в 3-5 раз.
Подключение стабильно, на данный момент проблем в тестах пока не замечено.
Если собирается из исходников и лицензия позволяет, то можно конечно. Надо потестировать.
« Последнее редактирование: 13 Март 2019, 19:06:02 от Ильфат »

Оффлайн stea.61

  • Пользователь
  • **
  • Сообщений: 45
  • Репутация: +6/-0
Re: Initrd UIRD
« Ответ #613 : 13 Март 2019, 20:12:52 »
За то прикручен механизм смены алгоритма
Привет.
Спасибо за информацию.
Эта информация мне известна - из анализа скриптов UIRD. )

Для смены алгоритма он указывается следующим образом: uird.zram::zstd(ошибся, это только для uird.swap работает) uird.swap=zram::zstd. Таким же образом указывается размер, в процентах от ОЗУ. Например uird.zram::zstd::100 uird.swap=zram::zstd::100 можно и со знаком процента uird.zram::100%::zstd uird.swap=zram::100%::zstd
Увы, но не совсем так.
Алгоритм для zram выбрать можно, но только из того состава тех, которые поддержаны в zram - lzo, lz4, lz4hc, 842.
ZSTD в этом составе, увы, нет - будем надеяться, что пока нет. )
Поэтому и пришлось изобретать для тестов собственную схему, близкую по функционалу к zram.

Если источник указываемый через uird.from+ совпадает с источниками по умолчанию, то наверно будет дважды инициализироваться. "+" добавляет к уже заданному значению параметра дополнительное, а без "+" значение переписывается.
По описанию UIRD должно быть так - по факту иначе. Так, как я описал.
Причину сегодня уже нашел - небольшая "шероховатость" в авторском скрипте uird-init, в строке 49 дубль записи в /tmp/cmdline.
 eval echo $(cat /proc/cmdline /tmp/cmdline 2>/dev/null | tr -s ";" ",") >/tmp/cmdline

Если собирается из исходников и лицензия позволяет, то можно конечно. Надо потестировать.
Исходников не видел (не искал) - просто взял готовые бинарники из состава пакета virtualbox, который и так есть практически в каждом, уважающем себя, дистрибутиве. )))
Я их просто немного иначе использовал. )

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Initrd UIRD
« Ответ #614 : 13 Март 2019, 20:20:48 »
Да действительно, задать алгоритм можно только для зрам-свопа. По uird.zram надо еще подумать как сделать аккуратно. Пока никому просто не надо было :)
echo $mem_zram >/sys/block/zram1/mem_limit
   echo $(($mem_zram * 4 / 3)) >/sys/block/zram1/disksize
   echo $(($mem_zram * 3 / 4)) >/sys/block/zram1/mem_limit   
Это опасненько. Жмется далеко не все. Попробуйте с такими настройками копировать в ченджез модули например. Как вариант - можно.  Как дефолт - нет.

1. Предлагаю в UIRD заменить qemu-nbd на vdfuse.
В целом не против. Но торопиться не стоит, как бы обратно не пришлось менять:) Тормоза с qemu-nbd подтверждаю, но только с динамическими файлами. Если сразу создавать нужного размера, то скорость упирается уже в носитель.