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

Разработки проекта PuppyRus => Разработка PFS и Initrd => Тема начата: sfs от 16 Июнь 2017, 09:06:10

Название: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 16 Июнь 2017, 09:06:10
https://wiki.archlinux.org/index.php/Mkinitcpio
Озадачился :
1. загружать full из папки. Т.е. на одном разделе винта иметь несколько установок. https://aur.archlinux.org/packages/mkinitcpio-loop-subdir/
2. опционально с aufs, т.е. поверх папки с системой вешать верхним слоем типа сохраненки в RAM или папке
Т.е. любые эксперименты без повреждения системы, альтернативный мультиюзер (у каждого своя сохраненка)
https://github.com/aur-archive/mkinitcpio-rootaufs/blob/master/rootaufs_install
Необходимо ядро с aufs. Можно взять в http://mirror.yandex.ru/mirrors/manjaro/pool/overlay/

Изначально пытался решить задачу с UIRD (http://forum.puppyrus.org/index.php?topic=19923.msg132460#msg132460) - проблемно
С mkinitcpio все получилось. hook-и пришлось доработать. При совместной работе были проблемы (не видно было "сохраненку")
Если еще покрутить rootaufs - можно использовать и для frugal (http://wiki.puppyrus.org/users_os/af/af?&#rootaufs). Как я в начале и делал. Даст правильную сборку инитрд под любое aufs ядро

Скачать: http://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/ mkinitcpio-rootaufs2-yyyy.mm-dd-any.pkg.tar.xz
Документация (http://wiki.puppyrus.org/soft/arch-initrd)

Swap (http://forum.puppyrus.org/index.php?topic=19924.msg136153#msg136153)
Название: Re: Arch Linux. mkinitcpio - дополнительные hook-и initrd
Отправлено: DdShurick от 16 Июнь 2017, 09:19:44
Правильную сборку инитрд под любое aufs ядро
Опять initrd привязана к ядру.
Название: Re: Arch Linux. mkinitcpio - дополнительные hook-и initrd
Отправлено: sfs от 16 Июнь 2017, 11:38:19
Опять initrd привязана к ядру.
Если ядро наше или аналогичное (с мололитно вкомпиленными модулями, нужными для загрузки) - привязки нет.
Привязка связана с ядром
mkinitrd соберет любой вариант
Тут правильное встраивание своего в арч  + халявные ядра с видеодровами из manjaro
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 29 Июнь 2017, 15:40:52
Доработал пакет и доку, выложил http://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/mkinitcpio-rootaufs2-2017.06-28-any.pkg.tar.xz и проверил с ним и pf ядром в разных режимах
Скоро переделаю pra-roll-full  (http://forum.puppyrus.org/index.php?topic=19901.0) на него
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 03 Июль 2017, 15:45:24
http://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/mkinitcpio-rootaufs2-2017.07-03-any.pkg.tar.xz
Исправил ошибку в sort=
Добавил автомонтирование и noauto
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 27 Июль 2017, 13:07:48
Rootaufs2. Не понимаю, что там нового, примонтировать каталог к корню. Так монтируется changes.
С точки зрения aufs нового нигде нет и быть не может
Остальное в шапке. Где еще есть фул из папки с сохраненкой?
Возможно в uird - но  у меня были с ним проблемы, а авторы слились (http://forum.puppyrus.org/index.php?topic=19923.msg132460#msg132460)
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 19 Октябрь 2017, 13:10:28
flugal загрузка без параметра noswap.
swap не подключен ! а надо бы.
в http://wiki.puppyrus.org/soft/arch-initrd-rootaufs2 нет noswap
Более того в его первоначальном коде он при фругале вырезается из fstab (строка (https://github.com/fandrieu/archlinux-aur/blob/master/mkinitcpio-rootaufs/rootaufs_hook) 254)

Тут надо определиться как оптимально...
FRUGAL:
Пожалуй лучше http://wiki.puppyrus.org/soft/porteus-initrd#noswap не придумать...
Хотя можно реализовать http://wiki.puppyrus.org/soft/porteus-initrd#autoexec_my_script и туда писать swapon

FULL:
Ничего не делать. Что юзер прописал в fstab - то и будет
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 19 Октябрь 2017, 16:59:52
почему fstab пустой, авто определение отключено чтоли и теперь :
Цитировать
Что юзер прописал в fstab - то и будет
пустой потому что initrd сам все монтирует
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: DdShurick от 19 Октябрь 2017, 18:36:27
потому что initrd сам все монтирует
А разве это правильно?
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: arcad от 19 Октябрь 2017, 19:19:19
пустой потому что initrd сам все монтирует
и сам затирает fstab.
прописываю swap раздел в fstab, подключаю, swap работает, в changes сохранился,перегружаюсь, в fstab пусто.
Это что-постоянно надо настраивать swap ?  и думать еще чего не забыть, пока все настроишь и солнце взойдет,(зато все настроил!)  ???
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: betcher от 20 Октябрь 2017, 07:17:22
Монтировать из инитрд удобно в случае наших с вами дистров, тоже к этому пришли. У нас, кстати,  есть кое какие изменения в uird, надо будет собрать для pra свежий. Для какой сборки лучше?
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 20 Октябрь 2017, 09:24:33
    initrd сам все монтирует
А разве это правильно?
А какие варианты?

есть кое какие изменения в uird, надо будет собрать для pra свежий. Для какой сборки лучше?
Pra-roll. В идеале бы в нем и собрать, а потом опакетить все компоненты. Летом начал это делать, но не довел по ума
Вижу перспективы для uird в Ролл. Над докой надо в вики продолжить работу
Сильно поучаствовать в uird сейчас вряд ли смогу. Надо воплотить эти планы (http://forum.puppyrus.org/index.php?topic=20115.msg135690#msg135690)

SWAP
прописываю swap раздел в fstab, подключаю, swap работает, в changes сохранился,перегружаюсь, в fstab пусто.
Это что-постоянно надо настраивать swap ?
в его первоначальном коде он при фругале вырезается из fstab (строка 254)
Думаю оптимально будет реализовать http://wiki.puppyrus.org/soft/porteus-initrd#noswap
Т.е.
1. В инитрд по дефолту делаем swapon и не трогаем swap  в fstab
1. При noswap - не делаем swapon и вырезаем его в fstab
Думаю так будет хорошо и для фул и для фругал. Есть другие идеи? Вы умеете пересобирать initrd (распаковать - запаковать в mc f2) - чтобы мне весь инитрд не выкладывать
У Вас фругал? Хорошо бы тестить в обоих вариантах

Если своп файлом... Наверное только в /etc/rc.local прописывать
Или файлом и в fstab можно прописать....?

Можно еще заморочиться вырезать из фстаб в файл и потом возвращать.... Только где такое хранить... Особенно при фругале c save.pfs
Пожалуй, надо еще http://wiki.puppyrus.org/soft/porteus-initrd#autoexec_my_script реализовать. Тогда этим и пр. можно будет на уровне grub управлять...
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: betcher от 20 Октябрь 2017, 10:15:01
Постараюсь выкроить времени и собрать в пра-ролл.
У нас со свопом так.
uird.swap=auto - найти разделы со свопом и подключить первый найденный
uird.swap=/dev/sda2 - подключить конкретный раздел, можно по метке или uuid
uird.swap=swapfile.swap - найти и подключить файл, можно указать с путем от /dev, метки или uuid. Файл подключается с любой фс, даже с тех где свопфайл не поддерживается (btrfs). Не удивлюсь если и по сети будет работать :), все лень проверить.
А вот по умолчанию своп не ищет.
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 20 Октябрь 2017, 10:22:54
подключить первый найденный
В чем смысл не подключать все... И зачем несколько свапов...
uird.swap=swapfile.swap - найти и подключить файл
Да. можно что-нибудь такое прикрутить
если и по сети будет работать
Это какую же быструю сеть (медленный винт) надо иметь, чтобы было актуально...
по умолчанию своп не ищет.
Не логичнее ли - если своп есть его по дефолту подключить... Раз своп есть - не для прикола же...
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: betcher от 20 Октябрь 2017, 10:31:57
Несколько свопов, что удивительно, случается. К примеру два линукса стоит и каждый спит в свой своп. Иначе без спящего режима только.
Подключает первый найденный, потому, что в uird  везде такая логика. Нашлось подходящее - использовать и поиск прекратить.
Подключать по умолчанию считаю не правильным. У нас после подключения свопа еще размер tmpfs пересчитывается. Возможны непонятки с копи2рам, например. Но в конфиг для пра-ролл, могу добавить auto и у вас будет по умолчанию :)
Ну а сеть -  побочный эффект магоса, хотя для бездисковых может и интересно.
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: betcher от 20 Октябрь 2017, 10:36:20
Подключить все, кстати, тоже можно. Просто перечислить через запятую, можно и с файлами вперемешку.
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 20 Октябрь 2017, 10:37:32
Сон - да подкинет проблем...
Мы так с ним и не разобрались...
Спорная полезность... и ненадежно (а как не проснется)
Подключать по умолчанию считаю не правильным
Я вообще своп не юзаю, где памяти достаточно
Т.к. в портеус по дефолту - swapon - мне лучше не плодить разночтений
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 21 Октябрь 2017, 08:47:50
Что-то теряюсь. Который  roll качать?
Из шапки форума. Наверное xfce (менее экспериментальный)
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 20 Ноябрь 2017, 10:45:02
Думаю оптимально будет реализовать http://wiki.puppyrus.org/soft/porteus-initrd#noswap
Добавил манипуляции с fstab
http://wiki.puppyrus.org/soft/arch-initrd-rootaufs2?&#noswap
http://wiki.puppyrus.org/soft/arch-initrd-rootaufs2?&#overlay_path1_path2_pathn
2a-aarch64/pkg-repo/2a-any/mkinitcpio-rootaufs2-2017.11-19-any.pkg.tar.xz
roll/170808/initrd-4.11-x86_64-sf02.xz - для manjaro ядра
roll/170808/initrd-rafs2-pf-sf06.xz - для всех *-pf ядер. В pra-roll-170808-ols.iso initrd-rafs2-pf-sf01.xz с ошибкой : не работал load=a;b

Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: Pro от 20 Ноябрь 2017, 10:54:23
2a-aarch64/pkg-repo/2a-any/mkinitcpio-rootaufs2-2017.11-19-any.pkg.tar.xz
roll/170808/initrd-4.11-x86_64-sf02.xz - для manjaro ядра
roll/170808/initrd-rafs2-pf-sf06.xz - для всех *-pf ядер. В pra-roll-170808-ols.iso initrd-rafs2-pf-sf01.xz с ошибкой : не работал load=a;b
смотри, ты такими заклинаниями однажды демона вызовешь :)))
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 20 Ноябрь 2017, 11:02:24
 :D
Надеюсь все догоняют что 2a-aarch64/pkg-repo/2a-any/mkinitcpio-rootaufs2-2017.11-19-any.pkg.tar.xz - это
http://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/mkinitcpio-rootaufs2-2017.11-19-any.pkg.tar.xz
Т.е. везде надо добавлять http://mirror.yandex.ru/puppyrus/
Мне так удобнее - копирую выхлоп rsync при заливе на яндекс
Юзерам это прилетит и так с обновлениями модулей и пакетов
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 26 Ноябрь 2017, 17:53:24
Загрузочную флешку с пра смонтировало так (параметр rw я при загрузке задал):
    root@pra-roll:home# mount |grep sdb
    /dev/sdb1 on /mnt/home type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
Вероятно это сделано функцией rootaufs2
_mnt_dev() {
    src="${1}"
    mnt="${2}"
    msg2 "::: Mounting device ${src} to ${mnt}"
    mkdir -p "${mnt}"
    /bin/mount "${src}" "${mnt}"
}
Просто добавить http://wiki.puppyrus.org/soft/porteus-initrd#mopt
Или мутить варианты для фат и нтфс....

Может поможешь добить эту тему. Все можно передрать в портеус
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: betcher от 26 Ноябрь 2017, 18:27:30
Мы у себя опции монтирования прикрутили через "::" удобно.
uird.from=/MagOS::ro+noexec
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 26 Ноябрь 2017, 18:49:48
Раз уж стараюсь придерживаться ключей портеуса - надо стараться новых не изобретать
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: Pro от 27 Ноябрь 2017, 02:37:49
Может поможешь добить эту тему. Все можно передрать в портеус
здесь нечего помогать, нужно изменить параметры монтирования. Параметры уже давно известны.
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 27 Ноябрь 2017, 18:04:06
Дай готовый rootaufs2
Т.е. не ждать  :'(

roll/170808/initrd-rafs2-pf-sf10.xz починил copy2ram
Другие imirtd пересобрать с hook/rootaufs2 из initrd-rafs2-pf-sf10.xz
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 28 Ноябрь 2017, 11:49:10
    Загрузочную флешку с пра смонтировало так (параметр rw я при загрузке задал):
        root@pra-roll:home# mount |grep sdb
        /dev/sdb1 on /mnt/home type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

Вероятно это сделано функцией rootaufs2
Оказывается это делается до rootaufs2
Т.е. флаги монтирования надо указывать в параметре ядра (это общеядерный (http://man7.org/linux/man-pages/man7/bootparam.7.html) , не связанный с initrd) параметр
Цитировать
'rootflags=...'
              This parameter sets the mount option string for the root
              filesystem (see also fstab(5)).
Прошу опробовать загрузку пра-рол с
fat : rootflags=umask=0,check=s,quiet,utf8=true,codepage=866,iocharset=utf8
Так в porteus-initrd
Возможно для русского в именах достаточно: codepage=866,iocharset=utf8
Для доступа rw для live : umask=0
Прошу попробовать и отписаться
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: Pro от 28 Ноябрь 2017, 12:16:18
Ну remount то в initrd должен делаться, всегда делалось определение диска с которого идёт загрузка, потом монтирование, потом поиск модулей.

А щас что? Что доступно там и ищем?
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 29 Ноябрь 2017, 08:57:32
По итогу экспериментов - _mnt_dev - вероятно монтирует раздел с сохраненкой
Туда можно перенести код из портеуса
root= по итогу экспериментов монтируется  раньше rootaufs2
Возможно вообще без участия инитрд

rootflags - ты попробовал. Чем не устраивает?
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 29 Ноябрь 2017, 09:41:28
Посмотрел внимательнее - root= монтирует rootaufs_mount_handler который передает default_mount_handler который читает rootflags=
Надо протестировать
rootflags=umask=0,check=s,quiet,utf8=true,codepage=866,iocharset=utf8и в вики
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: Pro от 29 Ноябрь 2017, 10:47:28
Раздувание параметров загрузки - это плохо.
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 29 Ноябрь 2017, 11:14:48
Раздувание скрипта и изобретение велосипеда  - тоже
fat уже редкость, а с русскими именами тем более - оно того не стоит
Проверил rootflags?
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: DdShurick от 29 Ноябрь 2017, 11:19:19
изобретение велосипеда
Относительно чего?
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 29 Ноябрь 2017, 11:38:05
Этот функционал есть в голом ядре. Зачем его переписывать
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: Pro от 29 Ноябрь 2017, 11:58:35
Раздувание параметров загрузки - это плохо.
Я все сказал. Хау.
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: RoDoN от 29 Ноябрь 2017, 12:30:16
fat уже редкость, а с русскими именами тем более
C чего такой вывод? Флешки по умолчанию из магазина - Fat32
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 29 Ноябрь 2017, 12:34:29
Имел ввиду на винте. Для фругала можно юзать портеус - будет только лучше
Ну так проверьте на ней rootflags - тогда будет что обсуждать
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: Pro от 29 Ноябрь 2017, 13:35:11
Я уже давно понял что дистрибутив оторвался от земли и улетает все дальше и выше от людей.
Пытаться расшифровать название initrd дело гиблое, зачем? Зачем в итоговом виде эти названия. Не нужно ответов,  кто-то из нас явно не с планеты земля.
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 29 Ноябрь 2017, 17:49:55
Сделал загрузочную fat32 флэшку
http://wiki.puppyrus.org/soft/arch-initrd?&#rootflag

Причем с 4.4.1-pf3 и rootaufs2 - система не загрузилась.
blkid видит раздел
mount пишет - нет такого раздела
Наверное, чего-то не хватает для фат в инитрд
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 30 Ноябрь 2017, 14:11:22
Сделал загрузочную fat32 флэшку
Повторил эксперимент
blkid видит раздел, руками монтируется
Если загружаться со step - работает
В обычном режиме :
mount: /mnt/home: special device /dev/sdb1 does not existДобавляю rootdelay= (http://rootdelay=http://man7.org/linux/man-pages/man7/bootparam.7.html)=5 - без улучшений (хотя в initrd он есть, но похоже обрабатывается позже чем надо)
Доработал rootaufs. Теперь на моем старом железе работает с rootdelay=5

Итог: http://wiki.puppyrus.org/soft/arch-initrd?&#rootdelay
roll/170808/initrd-rafs2-pf-sf11.xz
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 04 Декабрь 2017, 11:30:22
Оказалось, арч не умеет монтировать ntfs (что не удивительно). Научил
Для монтирования ntfs rw надо это (http://wiki.puppyrus.org/soft/arch-initrd#%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D1%81_ntfs)
Заодно доработал автоопределение параметра root= (только когда задан dir= и rootdir= + changes)
Если root= задать - автоопределение отключается
На стационаре так лучше и делать - будет быстрее (особенно где много разделов и дистр на последних по алфавиту разделах)

roll/170808/initrd-4.11-x86_64-sf12.xz
roll/170808/initrd-rafs2-pf-sf12.xz
Название: Re: Arch Linux. mkinitcpio-rootaufs2 - hook initrd. Аналог pra-porteus-initrd
Отправлено: sfs от 11 Декабрь 2017, 11:42:23
http://forum.puppyrus.org/index.php?topic=19579.msg138532#msg138532 - чтобы заработал .wh надо еще поправить параметры монтирования сквошей

roll/170808/initrd-4.11-x86_64-fallback-sf14.xz
roll/170808/initrd-4.11-x86_64-sf14.xz
roll/170808/initrd-rafs2-pf-sf14.xz

2a-aarch64/pkg-repo/2a-any/mkinitcpio-rootaufs2-2017.12-11-any.pkg.tar.xz