Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Разработка PFS и Initrd => Тема начата: sfs от 14 Июнь 2017, 12:44:27

Название: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 14 Июнь 2017, 12:44:27
Экспериментирую на pra-roll-full (http://forum.puppyrus.org/index.php?topic=19901.msg132403#quickreply) по рецепту (http://forum.puppyrus.org/index.php?topic=19900.msg132326#msg132326)
В качестве эталона использовал
http://magos.sibsau.ru/repository/netlive/2014.64/MagOS/uird.magos.cpio.xz
с http://magos.sibsau.ru/repository/netlive/2014.64/MagOS/vmlinuz
и http://magos.sibsau.ru/repository/netlive/2014.64/MagOS/base/00-kernel.xzm (перепакованный под арч)
Работает (находит фулл установку и загружает ее в ro)
Ищет достаточно долго. Можно как-то указать раздел? А из папки на разделе не загрузить?

Опакетил uird. Наладил сборку инитрд в арче. Дальше эксперименты с одинаковым результатом на родном и собранном в арче uird.initrd
Меняю ядро на pf из ПРА - норм
Меняю ядро на арч - не работает (ожидаемо, т.к. нет aufs)
Меняю ядро на manjaro - не находит (aufs есть модулем, как в ядре магос). Добавляю в параметры ядра debug - заработало... ??? Что-то можно сделать? Хотелось бы это ядро (есть полностью готовые пакеты, новее магос). Это же ядро нормально работало в составе последнего pra-roll-frugal

Всегда при uird.scan=legacy вылезает не мешающая ошибка dirname (см. скрин).

Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 14 Июнь 2017, 18:07:36
В арче есть возможность запускать систему из папки https://aur.archlinux.org/packages/mkinitcpio-loop-subdir/
Как в uird загрузить систему не из корня?
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 15 Июнь 2017, 10:51:47
Опакетил uird. Наладил сборку инитрд в арче
Похоже зря. И раньше в итоге приходилось перепаковывать (подгонять либы ядра) initrd-iurd из магос и теперь - собранный в арче - проблемный (работает не все, вылетают доп. ошибки)
Как ни крутил - ядро от манджаро работает только с debug (что отдельная загадка) и только с собранным в магос initrd-iurd
С пра ядром все ок - вероятно т.к. основное в него вкомпилено монолитно

Короче пока проблемно с универсальностью uird
Оптимально юзать только initrd + kernel из магос. :(
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: Pro от 15 Июнь 2017, 14:21:32
Debug возможно даёт больше информации в логи или dmesg, а эти данные используются при загрузке.
Нечто подобное делаем  в Puppy ядре накладывая патч usb-storage чтобы в логах были строки об окончании сканирования USB. Потом эти строки ищутся и init делает что-то нужное
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 15 Июнь 2017, 14:52:20
Возможно, но в скрипты uird при живых авторах не хочется лезть
Они особой простотой не отличаются.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 15 Июнь 2017, 21:08:58
О сколько вопросов. Всех ответов не знаю, напишу Антону, чтоб тему глянул.
По uird.scan=legacy,  uird ищет раздел с линуксом и сам себе создает конфиг для его загрузки. То есть это не для постоянной работы, а чтоб быстро запустить не разбираясь с конфигурацией uird. Если линуксов несколько установлено в системе можно указать номер uird.scan=legasy::2 это в порядке поиска. Первый найденный, второй и т.д.
Для постоянной работы нужно прописать параметры uird.from, uird.ro и т.д. Подсмотреть их можно после загрузки с uird.scan=legacy в /etc/initvars
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 15 Июнь 2017, 21:14:46
Скрипты там не сложные. Там по сути один скрипт и либа с функциями к нему, вот она довольно объемная получилась :)
Из папки загрузить думаю можно, если правильно подобрать параметры, uird.scan не найдет сам.

Вот наша тема по такой загрузке.
http://www.magos-linux.ru/index.php?option=com_agora&task=topic&id=1005&Itemid=55 (http://www.magos-linux.ru/index.php?option=com_agora&task=topic&id=1005&Itemid=55)
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 16 Июнь 2017, 09:07:10
Пока добился желаемого (http://forum.puppyrus.org/index.php?topic=19924.new#new) арч средствами
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 16 Июнь 2017, 09:40:27
В каком окружении нужно собрать uird? Есть исошка? Я бы попробовал.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 16 Июнь 2017, 11:45:40
В каком окружении нужно собрать uird?
В любом арче
Есть исошка?
http://file.puppyrus.org/users/pra64/iso/pra64roll-170130.iso - наиболее близок к арчу
Я бы попробовал.
Из подводных камней - busybox надо из magos
А еще в каких-нибудь дистрах пробовали собирать uird?
Если получится нормально - выложу свои арч-пакеты. Сравним
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 30 Июль 2017, 11:35:27
Наконец нашел пару часов поразбираться.
Итого. pra6407-1707light
доустанавливаем пакманом:
git
make
pkg-config
kmod
gcc
glibc

Далее:
rm -f /usr/bin/busybox
pacman -S busybox

Не хватает несколько бинарников не особо важных fsck. ___ для разных фс, rsync еще что то. Я только rsync устанавливал, можно упустить пока.
Далее:
git clone --recursive https://github.com/neobht/uird.git
cd uird
./make_dracut.sh
cd dracut
make install
cd ..

Правим конфиг uird:
В строку uirs.syscp=
добавляем через ";"
/usr/bin/busybox::/usr/bin/
Заменяем в этой же строке пути с  /usr/lib/magos/scripts на /usr/bin
uird.from заменяем на это
uird.from=/pra64

Ну и наконец:
./make_uird_magos.sh

Получается вот такой uird: https://yadi.sk/d/3aaufuhC3LYNy3

Pra в виртуалке загрузился без видимых ошибок.

title ▒▒ PRA uird чистый
set d=pra64
kernel /%d%/vmlinuz-4.11.6-pf5_64 dir=%d% 
initrd /%d%/uird.magos.cpio.xz

Надеюсь ничего не перепутал :)

P.S. еще один пакет пропустил, точно не помню название типа linux-api-headers. Не записал почему-то.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 09:56:01
Итого. pra6407-1707light
Лучше на http://file.puppyrus.org/users/pra64/iso/pra-roll-170604-test2.iso и с manjaro или др. НЕ спец. ядром
Я опакетил uird под арч. Но по итогу (т.к. выявил проблемы) не выкладывал. Не удалять пока?

В итоге я сделал (http://wiki.puppyrus.org/soft/arch-initrd-rootaufs2?&#full_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0) запуск FULL из папки с сохраненкой. Так и не понял - в uird такое возможно?
Жаль что пришлось уйти от uird. Совместная работа по pfs удалась :(
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 10:21:41
Задача загрузить из папки, а не из корня как uird=legacy? Так? Я пока не совсем понимаю смысл такой загрузки. Обрисуйте подробнее задачу.
А есть такое iso где сразу нужное ядро и модули ядра? Чтоб сразу делать то что надо.
Сейчас попытаюсь немного переписать скрипт сборки uird. Чтоб проверял наличие бинарников и модулей ядра перед сборкой. А то не всегда понятно какой модуль попал в uird, а какой нет.
Вот на пра потом и проверю :)
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 10:48:40
Задача загрузить из папки, а не из корня как uird=legacy? Так?
Да. Куча дистров на одном разделе - как у фругала
Сохраненка - поэкспериментировать на фул установке без ущерба
А есть такое iso где сразу нужное ядро и модули ядра?
да http://file.puppyrus.org/users/pra64/iso/pra-roll-170604-test2.iso - там же и мой альтернативный uird инитрд
Вот на пра потом и проверю
Эту проблему я не решил
Меняю ядро на manjaro - не находит (aufs есть модулем, как в ядре магос). Добавляю в параметры ядра debug - заработало...
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 11:09:56
Ок. Понятно. Быстро не обещаю, со временем как обычно швах.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 11:19:45
Здесь почитайте, кстати. Близкая тема.
http://www.magos-linux.ru/index.php?option=com_agora&task=topic&id=992&p=17&Itemid=55#p18625
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 12:59:46
sobral v vashem ISO https://yadi.sk/d/RT4-v4Q63La9BS proverit poka nekogda. Pishite poka chto probovat. Nu ili sami :)
Vot takoi log dobavil, v nem to, chto ne ustanovleno
Код
kernel module: aes-generic not found
kernel module: aes-i586 not found
kernel module: xhci-plat-hcd not found
kernel module: ehci-platform not found
kernel module: jbd not found
kernel module: af_packet not found
executable file:  resume - not found
executable file:  rsync - not found
executable file:  fsck.exfat - not found
executable file:  fsck.xfs - not found
executable file:  fsck.btrfs - not found
executable file:  btrfsck - not found
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 13:05:39
Свежим взглядом uird.from+=/dev/sda1 uird.ro+=*layer-base/2,*layer-base/3 uird.load+=* все-таки жесть
У меня попроще получилось (http://wiki.puppyrus.org/soft/arch-initrd-rootaufs2) (на мой взгляд)
Ну и ответа на главный вопрос я так и не получил: возможно ли загрузить фул из папки с сохраненкой
Без этого мне уже uird не будет интересен
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 13:16:00
Свежим взглядом uird.from+=/dev/sda1 uird.ro+=*layer-base/2,*layer-base/3 uird.load+=* все-таки жесть
Это не жесть а плата за универсальность :) Но все не так страшно, uird поддерживает преднастроенные конфиги.  uird.basecfg=FULL.cfg - так норм?
Из папки можно наверняка но на вскидку не соображу как правильно, надо пробовать.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 13:23:13
sobral v vashem ISO https://yadi.sk/d/RT4-v4Q63La9BS proverit poka nekogda.
Проверил. Вообще не грузится. debug не помог
Это не жесть а плата за универсальность
Я тоже хотел так думать и планировал встроичь в арч и использовать в пра-ролл, но на практике пока получил вывод :
Короче пока проблемно с универсальностью uird
Оптимально юзать только initrd + kernel из магос. :(
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 13:43:25
Сорри. Забыл конфиг изменить под пра :(
Нужно
uird.from=/pra64
uird.syscp+=/usr/bin/busybox::/usr/bin
 Вроде так.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 14:01:49
uird.from=/pra64
Этого хватило, для запуска пра-ролл из исо в вбоксе
Я сегодня пробовал с  uird.from=/dev/sr0
А изначально - уже не помню ...
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 14:04:23
А как же бизибокс? Или в ролл он не копируется из инитрд? Косяки какие есть?
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 14:12:00
в ролл он не копируется из инитрд?
Нет. Рол сейчас чистый арч с использованием своей репы, в которой свои скрипты и т.п.
Косяки какие есть?
Слои по другом (http://wiki.puppyrus.org/soft/porteus-initrd#%D1%81%D0%BB%D0%BE%D0%B8_aufs)у. Но это проблема не uird. У меня везде специально 08* 09* модули сверху
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 17:18:22
Ну то есть условно говоря uird с этим ядром рабочий? Какой FULL и как надо загрузить?
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 17:26:31
Ну то есть условно говоря uird с этим ядром рабочий?
Если со слоями решить (красиво не получится, а у меня на  08 09 получается много чего завязано)- во всяком случае у меня в шапке получалось хуже. Уже не помню с какой версией ядра мандж. пробовал
Какой FULL и как надо загрузить?
Не совсем понял - это? http://wiki.puppyrus.org/puppyrus/pra-roll#full
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 17:30:26
Я понял так,  что нужно full из папки плюс ченджез.  Или задача другая?

Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 17:33:37
нужно full из папки плюс ченджез
Да. Нужны параметры загрузки ядра
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 17:49:30
Вот и спрашиваю под какую конфигурацию. Чего и как установить и загрузить?
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 18:00:30
Недопонял
Фул установлен в папку. сохраненка в память
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 18:29:44
У меня нету ни одного фула, дайте ченить с инструкцией как в папку установить :)
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 19:29:01
Пересобрал с исправленным конфигом.
https://yadi.sk/d/0L8_LepT3LayNg
Грузит этот же исо только в openbox. Что-то с юзером подозреваю.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 31 Июль 2017, 20:28:18
UIRD, FULL in folder and changes in folder works correct.
two folders in /dev/sda1 (LABEL- "pra")
1. full (clone base dirs from root "/", when the system boot as frugal)
2. changes (empty)

kernel cmdline additions:
uird.from=pra@ uird.ro=*0/full uird.load=full uird.mode=changes uird.changes=pra@/changes

I think that  all uird pars will works too. Sorry about english. I can't find keys switching to russian keymap.

З.Ы. надо было флажок нажать :)
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 31 Июль 2017, 22:01:20
У меня нету ни одного фула, дайте ченить с инструкцией как в папку установить :)
http://wiki.puppyrus.org/puppyrus/pra-roll#full

Грузит этот же исо только в openbox.
Слои по другому. Но это проблема не uird. У меня везде специально 08* 09* модули сверху
В uird это как-то можно сделать?

uird.from=pra@ uird.ro=*0/full uird.load=full uird.mode=changes uird.changes=pra@/changes
Все таки это жесть  :). Язык программирования с регексами
Вряд ли юзера такое сами напишут, а в доке этих примеров по прежнему нет :'(
uird.ro=*0/full - точно надо? модулей-то нет - фул...

У меня тоже самое выглядит (на мой взгляд логичнее):
root=/dev/sda1 rootdir=dirname changes
Правда с сохранением в папку на тот же раздел есть проблемы.
По функционалу rootaufs2, конечно пока до uird далеко. Реализовал только самое необходимое

Спасибо +. Перепроверю - отпишусь
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 01 Август 2017, 03:48:10
uird.ro=*0/full  тут full это имя папки которую нужно смонтировать ro, а 0 это точка монтирования первого источника. Почему просто */full не срабатывает сам не пойму :) Как вы понимаете таких папок можно сколько угодно намонтировать вперемешку с модулями и исо.
Проблемы с ченджез будут если папку для ченджез внутрь папки с фул положить, а так вроде работает.
pra@ можно везде заменить на /dev/sda1 как у вас,  можно сделать uird.from=/full, но тогда uird.ro=*/layer-base/0 и uird.load=*, но так менее гибко и ченджез на этот же раздел не записать наверное.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 01 Август 2017, 07:03:25
А uird.mode  это переключатель режимов, появилось не так давно может не писал еще. Доступно сейчас 4 режима clean, changes, hybrid, machines. А в uird.changes задается только путь. По умолчанию в магос uird.changes=/MagOS-Data/changes, а режим - clean. То есть для включения сохранений в стандартнуб папку нужно только переключить режим uird.mode=changes
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 02 Август 2017, 12:05:45
Пропустил вопрос про последовательность модулей. В общем так. Для uird все модули равнозначны, изменить последовательность подключенич каким то параметром возможности нет. И врядли такая нужна.
Но есть варианты. Первое и самое простое переименовать модули так чтоб сместились в конец списка по алфавиту. Второе вынести в отдельную папку post_modules например и дописать (а может и не понадобится) в uird.load.  И третий переместить в подпапку modules/post, дописывать не нужно тогда, но возможно потребуется увеличить глубину поиска find (параметр find_params).
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 02 Август 2017, 12:43:50
изменить последовательность подключенич каким то параметром возможности нет. И врядли такая нужна.
А как же модуль сохраненки.pfs ? Его бы выше всех логично...
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 02 Август 2017, 13:38:11
Если хотите именно монтировать этот модуль, то на общих условиях по алфавиту, можно назвать zz-save.xzm например и он будет последним. Если же использовать механизм uird.changes=module.xzm,  то модуль распаковывается в rw слой. И тогда файлы из него перекроют файлы из модулей независимо от имени модуля с сохранениями. Ни кто не запрещает использовать uird.cp для этого модуля и тогда будет ровно как rootcopy работать.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 02 Август 2017, 13:51:45
Если же использовать механизм uird.changes=module.xzm,  то модуль распаковывается в rw слой.
Тогда не понятно зачем pfs а не папка
В uird огромный функционал, а примеров его использования (уровня сложности - как в этой теме) мало
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 02 Август 2017, 14:04:34
Модуль записывается один раз при завершении, в папку пишется постоянно. Сейчаа у нас сломано, но еще весной можно было загрузиться с флешки в ram, вытащить флешку поработать, воткнуть флешку и при выключении системы изменения сохранятся в модуль. Это раз, ну и модуль сильно меньше папки это два.
Uird не сложный, он просто очень удачно, на мой взгяд, спроектирован. Это не я делал, по этому могу восхищаться смело :) Все эти возможности вроде загрузки обычных инсталляций линукс не задумывались заранее. Они просто возможны потому, что для uird без разницы что, откуда и как соединять в aufs. В нем нет предопределенных файлов, папок, расширений и так далее. Из-за этого и не совсем очевидные параметры.  Вот ду маю как случай с установкой фулл линукса в папку упростить, может достаточно добавить поиск в папках для uird.scan=legacy?
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: Ильфат от 03 Август 2017, 16:56:36
Тогда не понятно зачем pfs а не папка
Для сохранения в папку еще и линуксовая ФС нужна. На флешке не всегда оправдано.
в папку пишется постоянно
Да, для флешки не очень хорошо и изменения отменить не так просто как с модулем.
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 11 Август 2017, 22:53:59
Немного ускорил uird.scan. Теперь он обращает внимание на uird.find_params= где у нас по умолчанию -maxdepth_3, работает сильно быстрее но хомяки не находит там глубина поиска нужна больше. Пока так, но надо думать.
uird.scan=legacy разогнал еще больше. После первого совпадения поиск прекращается.
Кроме порядкового номера по поиску (uird.scan=legacy::2) можно теперь делать так uird.scan=legacy::/dev/sda1/dir/subdir
Должно грузить  в чистом режиме. То есть full --> RO, переписываются только три параметра from,ro,load то есть  можно использвать uird.scan вместе с  uird.changes, home, mounts и т.д  одновременно.
Пойдет так?
Изменения в гит. У нас пока не анонсирую. Если что откатим :)
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: sfs от 13 Август 2017, 09:09:38
хомяки не находит
А зачем их искать?
После первого совпадения поиск прекращается.
Если uird.scan=legacy::/dev/sda1/dir/subdir работает - надо ли что-нибудь еще (т.е. нужны ли поиски - лишнее усложнение)
Пойдет так?
Так удобнее, надо проверить и поправить вики
Название: Re: uird.scan=legacy (загрузка установленного full линукса)
Отправлено: betcher от 13 Август 2017, 12:40:09
Еще порция изменений, будете проверять лучше качнуть заново.