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

Разработки проекта PuppyRus => Разработка PFS и Initrd => LF (linux frugal). => Тема начата: sfs от 25 Апрель 2013, 15:25:13

Название: Initrd PRA-Porteus
Отправлено: sfs от 25 Апрель 2013, 15:25:13
Доработал initrd из Porteus 2.0 (http://forum.puppyrus.org/index.php/topic,14184.msg75908.html#msg75908).  Перевод на русский for_wov, sfs
Воткнул .pfs от Байт008 (http://forum.puppyrus.org/index.php/topic,13284.0.html) - работает. От SFSL (http://forum.puppyrus.org/index.php/topic,12651.0.html) - работает. Т.е., похоже, начинку можно любую вставлять... Т.е. делать frugal из любого линукса. Ядро нужно от porteus или PR(A), т.е. монолитное, т.к. udev в porteus-initrd нет (https://wiki.puppyrus.org/soft/porteus-initrd?&#аналог_udev)
В итоге такой initrd используется в PRA и LF*. Свежая версия (https://forum.puppyrus.org/index.php?topic=14190.msg185521#msg185521)
Скачать пример: pr218b008tmp03p01.iso (http://www.mediafire.com/?hz9bm95zmksvw) 60мб
Используется в PRA (https://sourceforge.net/projects/puppyrusa/)

Особенности porteus-initrd:
 
  *лог загрузки /var/log/porteus-livedbg
  *очень быстро грузится
  *не содержит либ ядра (при смене ядра не надо пересобирать)
  *база строится из любого количества модулей лежащих в /porteus/base. Слои по алфавиту. Верхний zzz*
  *загрузка всех или указанных модулей в память
  *выполнение после загрузки указанных скриптов
  *сохраненка на девайс, в папку или файл (можно зашифровать)
  *автозагрузка перечисленных модулей  extramod=/mnt/sdb3/porteus-modules ; extramod=/mnt/sdb3/porteus-modules;/mnt/sdc4/inkscape_modules выше базы
  *fsck
  *login=user_name
  *kmap=keyboardmap
  *можно указать опции mount : mopt=realtime,sync,users,nosuid,noexec
  *noload=module[1];module[n]
  *nonetwork
  *noswap
  *Выделение памяти под / :ramsize=40%
  *timezone=region/zone
  *PXE загрузка из сети
Это не весь список.
В initrd уже включен почти весь функционал s-frugal (http://wiki.puppyrus.org/soft/sfrugal)

Документация
Англ. (http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/117-cheatcodes-what-they-are-and-how-to-use-them.html) ; Рус. перевод (http://wiki.puppyrus.org/soft/porteus-initrd)

FAQ
временное монтирование 000-kernel (http://forum.puppyrus.org/index.php/topic,14190.msg87542.html#msg87542)

Слои aufs (https://wiki.puppyrus.org/soft/porteus-initrd#слои_aufs)

Список файлов:
  */boot - grub4dos и т.п. Там же инсталляторы под вин и лин (не проверял)
  *000-kernel382pf.pfs - модули ядра. Должны быть совместимы с дистрибутивом
  *005-kern+.pfs - firmware и результат depmod -b /. Если ядро не от базы - загрузиться в текстовый режим и пересоздать. Проверять загрузку модулей ядра : lsmod.
  *Остальные /porteus/base/*.pfs - от Вашей системы

Доработка: (https://wiki.puppyrus.org/soft/porteus-initrd?&#доработки_porteus-initrd_для_puppyrus-a_расширение_функционала)

Доработал porteus-initrd для работы с любым AUFS ядром  (http://forum.puppyrus.org/index.php/topic,14190.msg86465.html#msg86465)+ скрипт сборки

freememapplet_tray (http://forum.puppyrus.org/index.php/topic,13900.msg76616.html#msg76616) - переделан под этот initrd

Неудобства:
1. При перечислении модулей через ";" слои - по алфавиту, а не в порядке перечисления
2. changes= не знает squashfs. Обмануть переименованием в dat не получилось. pfs-сохраненку вверх aufs можно подключить только через optional или extra. (https://wiki.puppyrus.org/soft/porteus-initrd?&#pfs_09_pfs_всегда_в_верхнем_слое)
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: DdShurick от 25 Апрель 2013, 19:08:52
 *очень быстро грузится
Richy с моим init_maxi - ноздря в ноздрю.
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 25 Апрель 2013, 19:50:01
Richy с моим init_maxi - ноздря в ноздрю.
Значит предел достигнут  ;)
А функционал не впечатляет?
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: DdShurick от 25 Апрель 2013, 21:29:46
А функционал не впечатляет?
Впечатляет, но не чересчур.
Распаковал initrd.lz, буду изучать.
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 30 Апрель 2013, 10:53:25
В моем initrd.lz c 0 - это оригинальные скрипты (2шт). Менял только xzm. Подробно не смотрел.
Надо бы понять весь ли функционал в initrd или еще есть что-то внешнее.
PXE точно внешнее.
Внешний chroot тоже пришлось добавить. Может его в initrd...
Интересно, как они обходятся без модулей ядра в initrd...
Может рус. яз туда прикрутить как в PR...

130430
Доработал initrd. См. шапку
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: Pro от 16 Май 2013, 08:37:33
а не проводились ли тесты по работе данного скрипта для следующих случаев:
1. файл сохраненки зашифрован
2. на диске имеется несколько save файлов
2. система установлена на раздел который у нас сделан модулем ядра, например reiserfs и т.п.

Думаю универсальность тут еще не достигнута.
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 16 Май 2013, 10:14:49
Лично мною не проводились ввиду отсутствия интереса к именно этим пунктам
1. Заявлено. В оригинале, похоже, все для этого есть
2. Что задать - то и будет
Код
changes=/dev/device
changes=/path/
changes=/path/file.dat
3. Насколько я понял - можно. Даже, вроде, в Initrd было fsck для reiserfs

На мой взгляд этот initrd интересен:
a. Нет либ ядра (не надо пересобирать)
б. За счет noload можно избежать длинных строк загрузчика
в. rootcopy
г. база из сколько угодно модулей
д. debug
С этими полезными функциями надо разбираться, а Вы в какие-то дебри...
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: Pro от 16 Май 2013, 10:57:37
КАК он загрузит систему с раздела если поддержка этого раздела в ядре сделана модулем и на момент выполнения init ядро еще модули не подключило.

тоже самое и с шифрованием.
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 20 Май 2013, 20:30:44
КАК он загрузит систему с раздела если поддержка этого раздела в ядре сделана модулем и на момент выполнения init ядро еще модули не подключило.
Глубоко не вникал, но похоже, он монтирует временно что-то из модулей , потом отключает и собирает aufs как мы привыкли. Так и обходится без модулей ядра. С шифрованием аналогично.
Кстати у меня с ядром с дефолтным конфигом не грузится. А ядро с Вашим конфигом - ок. Возможно, что-то еще связано с вкомпилением в ядро (без модуля)
Я же пишу - надо изучать. Работает точно.
В init монтируется 000-kernel.pfs. У меня работает и с другим именем. Пока секрет не разгадал.

Немного переделал скрипт в initrd http://cdn.2safe.com/610718033046/initrd.lz : теперь он создает /mnt/home - как в puppyrus. Удобно и для совместимости.

Поэкспериментировал с русификацией - можно сделать, но в porteus busybox нет loadfont
Можно взять busybox из puppyrus. Там нет uniq. Обойти : sort -u.
Вообще бы лучше перекомпилить родной с добавлением loadfont. Пока русификация меня не вдохновляет.
Прикрутил к AF - работает


Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: Zay от 21 Май 2013, 21:00:39
На мой взгляд этот initrd интересен:
a. Нет либ ядра (не надо пересобирать)
Вот это, я думаю, большое преимущество на перспективу.
По идее можно будет очень легко заменить ядро, да и почти любой Linux запустить как PuppyRus (c AUFS, поддержкой PFS и т.д.).
ИМХО, ради таких возможностей можно и вкомпилить 1-2 лишних модуля в ядро. Универсальность Initrd того стоит.
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 21 Май 2013, 22:06:45
можно будет очень легко заменить ядро, да и почти любой Linux запустить как PuppyRus (c AUFS, поддержкой PFS и т.д.).
Я уже много попробавал. Большинство работает. Ядро с конфигом  Pro и firmware от PR
Т.е можно говорить о универсальном комплекте initrd + ядро + firmware. Frugal в массы!  ;)
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: for_wov от 13 Июль 2013, 12:51:31
Поюзал немного. Вопрос с broadcom-вским вайфай так и не решен (в PR как часики) даже на последней слако wlan интерфейсов нет но отключение b43 и перезагрузка все решает (ох и задрал он меня. и я других с этим вайфаем :)). bootmanager не сохраняет blacklist. Где еще этот b43 можно заблокировать?
Нет мастера нескольких звуковых карт(как и в риччи). некогда этим заниматся могу и без звука пока.
Поставил
title Porteus 2.0 32bit
rootnoverify (hd0,1)
kernel /porteus/vmlinuz-pf382 vga=791 xfce
initrd /porteus/initrd.lz

title PuppyRus_218-1212 Byte008p conky
rootnoverify (hd0,1)
kernel /porteus/vmlinuz-pf382 noload=Space
initrd /porteus/initrd.lz
  в первом звуковая карта вообще не определилась. со вторым некогда мусолится. sfs присылайте init будем работать.
Поиск наконец-то нормально работает. Ничего лишнего (разве что пингвинчик немного вызывающ) главное ссылки в меню есть.
Если вафлю не прикручу буду в слаку перезагружатся и отправлять результаты (лезть на чердак и конектится к роутеру по лан нет желания).
Впечатляет. Добротно сделано.
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 14 Июль 2013, 10:51:11
Эта тема только про initrd. iso исключительно для иллюстрации. Про porteus и byte вцелом есть другие темы

Заодно про популярную тему "сохранение в папку (http://forum.puppyrus.org/index.php/topic,14382.msg78662.html#msg78662)"  и "изобретение велосипеда " :)
Цитата
rootcopy=/path/to_folder/with_files

   ... Copy files from specified directory directly to the live
       filesystem. This directory will be used instead of the
       traditional /porteus/rootcopy.
       Example: 'rootcopy=/mnt/sda5/porteus-files'
Проверял - работает. Файлы из этой папки перекрывают итоговый aufs
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: imago31 от 14 Июль 2013, 19:18:31
 

Заодно про популярную тему "сохранение в папку (http://forum.puppyrus.org/index.php/topic,14382.msg78662.html#msg78662)"  и "изобретение велосипеда " :)
[
ну почему же велосипед?, это же просто варинт сохранения, который здесь осбо популярно почемуто не использовали, хотя все просто и работает! :)
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 24 Июль 2013, 13:32:18
Свои впечатления от использования добавил в шапку "Неудобства:"
Из удобств: rootcopy. При отладке удобно менять в нем, часто не пересобирая модулей (при больших модулях время сжатия ощутимо)
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: for_wov от 26 Июль 2013, 20:04:20
никак не было времени  переводить (времени много требует, а переработка за гуглом - еще больше времени отнимает)
вариант пока частичного перевода если "критические" моменты понимание которых затруднено указывайте номера строк над ними буду работать в первую очереть.
Параметры загрузки Porteus.
=========================================================================
Параметры загрузки (так же известные как чит-коды) используются чтобы влиять на процесс загрузки Porteus.
Чит-коды в списке ниже -- только те, которые специфичны для Porteus (see the final note for information on
cheatcodes that apply to all linux distributions, including Porteus).
Вы можете использовать эти параметры чтобы отключать не нужные определения железа, запускать Porteus
из специфического места, загружать дополнительные модули, и.т.д.
Перезагрузите ваш компьютер и подождите несколько секунд пока не появится логотип Porteus с загрузочным меню.
Выберите желаемый пункт меню и нажмите Tab - это позволит вам редактировать команндную строку.
Додайте желаемые опции загрузки из списка ниже чтобы повлиять на загрузку так, как нужно вам.
Ниже пример того, как может выглядеть строка загрузки после добавления чит-кодов noauto и copy2ram
в стандартное меню Porteus (по умолчанию меню имеет другие чит-коды).

APPEND initrd=initrd.xz lxde changes=/porteus/ noauto copy2ram

Эти чит-коды можно также добавить в строчку с APPEND в файле /boot/syslinux/porteus.cfg (или в другие файлы загрузки)
чтобы применять их автоматически при каждой загрузке
=========================================================================
=========================================================================
Список возможных чит-кодов в алфавитном порядке:
Приметка:Чит-коды, приведенные в примерах, иногда заключены в одиночные кавычки(напр.'example=somevalue') для ясности в документации.
Когда вы вводите эти чит-коды во время загрузки или в ваш porteus.cfg, кавычки использовать не нужно.
=========================================================================
autoexec=my_script
autoexec=my_script;reboot

   ... Выполнить указанные команды перед входом в Porteus.
   Используйте ";" как разделители, без пробелов.
   ... Если вам понадобится использовать пробелы в командной строке замените их на "~"
   Например: 'autoexec=echo~Shutting~power;poweroff'
   это выведет на консоль текст с пробелами вместо "~"
=========================================================================
base_only

   ... Этот чит-код не позволит системе грузить не "базовые" модули при запуске
   (только те которые по умолчанию в ISO:000-kernel.xzm, 001-core.xzm,и.др.)
   Это полезно при отладке, чтобы понять связаны ли ваши возможные проблемы
   с модулем, добавленным вами в систему.
=========================================================================
changes=/dev/device
changes=/path/
changes=/path/file.dat

   ... Все изменения, сделаные в Porteus, сохраняются в памяти до перезагрузки.
   С этим параметром вы указываете Porteus использовать ли вместо памяти
   другое устройство(или файл, или папку) для сохранения изменений.
   Вы можете, например, отформатировать раздел жесткого диска в файловую
   систему линукс(напр. xfs) и использовать 'changes=/dev/sdb2' для сохранения
   всех изменений на этот раздел.(/dev/sd[bc]aX) В этом случае вы не потеряете
   изменений после перезагрузки.
   ... Если вы используете образ вместо раздела и образ имеет (валидную) файловую систему
   Porteus подмонтирует его и будет сохранять изменения на него.
   ... Если вы используете папку - Porteus будет сохранять изменения в нее(создаст подпапку 'changes' внутри)
   Это должно использоваться только с файловыми системами линукс. Если нужно сохранять на разделах с
   FAT или NTFS должен использоваться контейнер(file.dat)
не могу выкладывать более 5000знаков(ограничения форума) перевод делаю из последней сборки AFX(от sfs)
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 27 Июль 2013, 09:56:49
Спасибо и +
Выкладывать можно текстовым файлом в аттаче.gz или связаться с RoDoN. Он создаст страничку в вики и даст Вам на нее права.
Русский initrd c Вашим переводом скоро выложу. Тех. проблемы решены. Надо немного текст поправить

Приятно осознавать что на форуме появляются новые люди, которые делают что-то кроме "хочу" , "дайте" , "научите"
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: for_wov от 27 Июль 2013, 23:57:34
RC(Release-Candidate) Перевода документации Porteus. Не точности, не ясности и прочие "не" думаю одолеете сами.
Но ели сложно подсоблю.

Если не сложно подсобите с распаковкой прошивки для роутера (http://vampik.ru/wl500g/rtn/5196/DIR320-3.0.6.5196.trx) или версию r5066M (http://vampik.ru/wl500g/rtn/5066/DIR320-3.0.6-r5066M.trx). Для хорошего друга обещал на могучий перевести да так и загруз по этому и тянулся перевод портеусовской доки долго. Ковырял с помощью fmk (https://firmware-mod-kit.googlecode.com/files/fmk_099.tar.gz) пришлось пересобрать wget с поддержкой ssl для закачки. Дальше файла *.img не идет. В HEX-редакторах не силен. Буду очень благодарен.
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 01 Август 2013, 09:52:59
Русифицированная версия http://cdn.2safe.com/983695033560/initrd.lz (перевод for_wov)

130801
Повторил эксперимент for_wov с AFX (http://forum.puppyrus.org/index.php/topic,13843.msg73577.html#msg73577) + porteus=initrd+kern374 - действительно не работает.
Вывод : для отсутствия либ ядра в initrd нужен тюнинг ядра. Осталось понять - что именно. Вероятно, поддержка файловых систем не модулями, а в монолите ядра...
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: Pro от 01 Август 2013, 12:42:56
в чем суть эксперимента? на какую фс ставили?

ps. Собственно не раз уже писал - никогда не употребляйте фразу "все работает".
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 05 Август 2013, 11:00:01
Суть эксперимента - использовать вместе с porteus-initrd ядро kernel-pf с дефолтным (а не Вашим ) конфигом
Методика - сборка iso+virtualbox.
Ядро заведомо рабочее. На http://wiki.puppyrus.org/users_os/af/af#rootaufs работает. В rootaufs-initrd модули ядра в initrd присутствуют

130805
Доработал http://cdn.2safe.com/819653033558/initrd.lz русификацию, поправил вывод ошибок при загрузке.
Вывод списка модулей сделал только при debug (все равно без него не успеть прочитать)
Модули ядра должны быть модулем 000-kernel.pfs и содержать /lib/modules (для AF это симлинк). Тогда они временно подключаются на стадии initrd.
Проблема "При перечислении модулей через ";" слои - по алфавиту, а не в порядке перечисления" - решаема убиранием sort
Поправил шапку
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sklimkin от 09 Август 2013, 22:15:07
Загрузил pr218b008tmp03p01.iso в вирт.машине.
Хотелось бы увидеть эту "малышку" в работе.
Что надо добавить/изменить внутри pr218b008tmp03p01.iso чтобы работало?
Может быть initrd.lz надо заменить на http://cdn.2safe.com/610718033046/initrd.lz ?

Вот скриншоты первых трех вариантов загрузки:

P.S. к сожалению загрузчик форума уменьшил скриншот до нечитаемого размера.
Вот кратко текст экранов загрузки:
1. ... ... ...
   SFRUGAL подключение PFSи SFS ... готово
   Загрузка модулей ядра ...
2. ... ... ...
   Работа сервера X завершена.
   Выполните "xwin [ ...
   если сервер X не стартует ...
3. ... ... ...
   Live system is ready now...
   cp: can't stat '/union/sbin/init' : no such file or directory
   !!ERROR!
   something wend wrong ...
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 12 Август 2013, 16:25:47
Похоже что у Вас автоподключились не все модули
md5 совпадает ?
Пeрeпроверил в virtualbox - работает.
initrd.lz - должно работать со всеми. В новом только русификация и мелочи
Ваши скрины удалил - буквы не разобрать
Название: Re:Универсальная Live система Porteus (initrd)
Отправлено: sfs от 15 Август 2013, 15:45:04
Доработал перевод for_vow параметров загрузки (cheatcodes)
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 24 Декабрь 2013, 09:41:56
Porteus v3.0-rc1 (http://forum.porteus.org/viewtopic.php?f=35&t=2953)
Цитата
cheatcodes:
- Added 'changes-ro' cheatcode which keeps saved changes in a frozen state. This is handy if you have set your system 'how you like' and do not want to make other modifications to it.
- Added 'utc' cheatcode which tell Porteus that the hardware clock is set to UTC time and not to localtime.
- Tweaked 'kmap=' cheatcode so now its possible to use keyboard layout variants. Cheatcode syntax is: 'kamp=$layout:$variant', example: 'kmap=pl:qwertz'. Old syntax: 'kmap=pl,us' or 'kmap=pl' is still valid

kernel config:
- Added squashfs multi-threaded decompression patch (backported from linux-3.13) which should make Porteus even faster on multi CPU machines

001-core.xzm:
- Updated txz2xzm, deb2xzm and rpm2xzm scripts to support converting of multiple packages. Example: 'txz2xzm /path/some_folder/*' will convert all packages from that folder in one run
- Fixed saving to .dat container when it is placed on ntfs partition
- Fixed 'changes=EXIT:' not saving the session with full paths
надо проработать и добавить в PRA
Pro, ты в теме squashfs multi-threaded decompression patch (backported from linux-3.13). Эта наверное та новость про увеличение скорости
В AUR linux-pf 312. Ждем 313 где все уже будет или какие мысли?
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: Pro от 24 Декабрь 2013, 10:13:33
да наверное лучше дождаться 3.13, смысла бэкпортировать нет. в 3.13 и выше уже и энергосбережение на свободных драверах видеокарт будет работать.
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 24 Декабрь 2013, 10:20:11
Пожалуй - да. Под это дело можно и пересобрать PRA по свежему срезу арчрепы
А это ускорение реальное ? Не углублялся?

Вот это не хочешь в портеусе посмотреть?
Цитата
kernel config:
- Added support for ACL and Security Labels to all filesystems which supports these features
- Compiled many drivers directly into kernel as there is no point for loading them by udev if they will be used anyway during live session
Может нам чего спереть....
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: Pro от 24 Декабрь 2013, 10:49:20
конкретно эти параметры в принципе уже выполнены, эти ACL я то включал, то отключал, щас даже незнаю в каком они виде.

Множество драйверов в ядре - ну так вкомпилил уже, вроде как оптимально пока
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 24 Декабрь 2013, 15:39:32
Посмотрел initrd от версии 3
Некоторые изменения связанные с сетевой загрузкой (у нас не используется) и ntfs (вроде порешали)

+ changes-ro - которого даже пока нет в документации. Надо ли еще усложнять про сохраненку?
Не проще ли вместо changes-ro делать .pfs сохраненку... Кто-нибудь вообще юзает changes , а с EXIT

Остальные изменения читкодов не в инитрд, а в дистре. kmap= нам не актуально
utc - нужен? Все это можно через сохраненку
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: imago31 от 24 Декабрь 2013, 22:53:04
change-ro, думаю pfs сохраненки достаточно, а тем более для флешек лучше чем папка.
если есть хард использую canges=папка, быстро, удобно, но папка получается большая, ну и некоторые глюки появляются, в последнее время использую только pfs сохраненку
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 25 Декабрь 2013, 09:34:36
Я тоже. Если использовать copy2ram - это оптимально. Нацеленность именно на такой вариант
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 11 Январь 2014, 14:58:07
Доработал porteus-initrd для работы с любым AUFS ядром. Пример (http://forum.puppyrus.org/index.php/topic,15288.new.html#new) Добавил в начало
Код
for x in `find /lib/modules/$(uname -r)/kernel -name "*.ko" 2>/dev/null | sed 's/.ko//g'`; do modprobe `basename $x` 2>/dev
for x in `find /lib/modules/$(uname -r)/kernel -name "*.ko.gz" 2>/dev/null | sed 's/.ko.gz//g'`; do modprobe `basename $x`

1. Методика сборки porteus-initrd в любом arch:
1.0. Подключить mkinitcpio-0.11.2-lf.pfs в PRA и скопировать нужные модули ядра
1.1. inirtd-edit initrd.xz (из аттача ;где initrd.xz- porteus-initrd
1.2. mkinitcpio -k ver -g initrd.gz ;где ver: версия нужного ядра (в формате `uname -r`)
В mkinitcpio.conf достаточно
Код
HOOKS=" pata sata usb"
MODULES="vfat ext4 iso9660 aufs squashfs"
1.3. inirtd-edit initrd.gz
1.4. cp -R initrd-tree-gz/usr/lib/modules initrd-tree-xz/lib
1.5. depmod -b initrd-tree-xz ver
1.6. inirtd-edit initrd-tree-xz

2. Методика сборки porteus-initrd в любом линукс:
1.1 (то же что выше)
2.2.1 Используя средства сборки initrd Вашего дистра (или универсальные типа dracut) собрать
initrd под нужное ядро с параметрами модулей аналогичными HOOKS MODULES из 1.2
Без aufs squashfs гарантировано не получится.
aufs можно скомпилить, вдохновясь (https://aur.archlinux.org/packages/aufs3/)
      2.2.2 Можно просто взять initrd нужного дистра, но там может не оказаться нужного и много ненужного
      2.2.3 Можно взять весь /lib/modules. Будет долго загружаться
В итоге получаем initrd.gz (lz bz узнать что имено утилитой file )
1.3 - 1.6

1. - проверенный вариант
2.2.1 для опытных
2.2.2 для везучих
2.2.3 для невезучих

Попутно нашел ошибку в оригинале
Код
#value() { egrep -o " $1=[^ ]+" /proc/cmdline | cut -d= -f2; }
value() { egrep -o "(^| )$1=[^ ]+" /proc/cmdline | cut -d= -f2; } #sfs

Изящнее конечно было бы переделать в hook для mkinitcpio, но пока лень
Полученные initrd дистронезависимы. Сборка не в арче возможна (mkinitcpio - bash скрипт), но не тестировалась

Ядра с модулями.gz лучше распаковать (в mc удобно : поиск *.gz + выделить+f2 +распаковать ). pfs получится на треть меньше
Вживление в дистрибутив (http://forum.puppyrus.org/index.php/topic,15276.msg86443.html#msg86443)

140113 3. dracut методика сборки porteus-initrd в любом линукс:
3.1. Установить dracut (http://pkgs.org/search/?query=dracut&type=smart) в любой линукс
3.2. Скопировать модули нужного ядра в /lib/modules
3.3. porteus-d (в аттаче) ,где k=версия нужного ядра
3.4. в menu.lst : initrd /%d%/initrd.xz /%d%/полученный.xz . В grub2 и grub4dos можно слоить
initrd.xz - из аттача
Собрать 2->1: cat  /%d%/полученный.xz /%d%/initrd.xz >/%d%/initrd2.xz
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 14 Январь 2014, 09:15:22
Дописал выше постом: dracut методика сборки porteus-initrd в любом линукс
Результат тестировал только в virtualbox. Bозможно придется добавить модулей в список porteus-p
Уже менее костыльно и оптимизированее по размеру. Т.е. initrd.xz - неизменен и универсален

Спасибо neobht (http://forum.puppyrus.org/index.php/topic,15129.msg86624.html#msg86624) за то, что вдохновлял

140114
Протестировал dracut-multi-initrd (вариант 3). В режиме debug на ноуте не работала внешняя usk клава. Добавил модуль ядра usbkbd. porteus-d перезалил. Теперь ок
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 18 Январь 2014, 10:11:29
Передрал у Вас (http://forum.puppyrus.org/index.php/topic,15129.30.html)
Код
dracut --force --xz --kernel-only -d " pata_acpi ata_generic ahci xhci-hcd iso9660 isofs ext4"
Это было осмысленно написано?
Кроме isofs и ext(причем 2) таких модулей ядра нет. Отрицательно на результат не влияет, но не лишнее ли?
и далее --filesystems "aufs squashfs vfat msdos ext4 isofs" - это не повтор...

Я добавил usbkbd (http://forum.puppyrus.org/index.php/topic,14190.msg86465.html#msg86465) - наверное и Вам надо
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: neobht от 18 Январь 2014, 10:24:22
это повтор. Просто забыл удалить.

другие модули ядра у нас есть.
возможно, у вас они в ядре. Это модули поддержки жестких дисков и USB3 в частности.
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 18 Январь 2014, 10:29:20
Т.е надо так?
Код
dracut --force --xz --kernel-only -d " pata_acpi ata_generic ahci xhci-hcd iso9660 usbkbd" \
        --filesystems "aufs squashfs vfat msdos ext4 isofs"
Модули я искал по имени в дефолтном юбунту ядре. Мне надо под любое ядро
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: neobht от 18 Январь 2014, 10:38:40
Т.е надо так?
Код
dracut --force --xz --kernel-only -d " pata_acpi ata_generic ahci xhci-hcd iso9660 usbkbd" \
        --filesystems "aufs squashfs vfat msdos ext4 isofs"
Модули я искал по имени в дефолтном юбунту ядре. Мне надо под любое ядро

Да. Ну и файловые системы какие могут быть нужны: btrfs, ntfs
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 18 Январь 2014, 11:43:16
btrfs - в портеусе не было - это уже отдельно
ntfs в портеус-инитрд монтируется внутренней ntfs-3g
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sklimkin от 19 Январь 2014, 18:41:17
Все делал в chroot-среде с уже установленным и тестированным debian-wheezy
Цитата
140113 3. dracut методика сборки porteus-initrd в любом линукс:
Цитата
3.1. Установить dracut в любой линукс
dpkg -i dracut_020-2_all_wheezy.deb
это потребовало удалиь initramfs-tools
следом были удалены linux-image-3.2.0-4-686-pae и vmlinuz-3.2.0-4-686-pae
т.е. /boot оказался пустым
далее сообщение: надо установить module-init-tools а к нему kpartx
установил, после этого установился dracut
Цитата
3.2. Скопировать модули нужного ядра в /lib/modules
скопировал
Цитата
3.3. porteus-d (в аттаче) ,где k=версия нужного ядра
команда из терминала (porteus-d распаковал в корень системы):
./porteus-d 3.2.0-4-686-pae
drakut естественно не находит ни initrd.img ни vmlinuz
копирую их в /boot из сохраненного архива и повторяю:
./porteus-d 3.2.0-4-686-pae
dracut уменьшил размер Дебиановского initrd.img с 11 до 7 MB
получаю только dracut.log в котором последняя строка:
F: installkernel failed in module kernel-modules

Вот была бы развлекуха, если бы я все это (установку dracut) проделал на HOST-машине, а не в chroot

dpkg -i dracut_020-2_all_wheezy.deb
Selecting previously unselected package dracut.
dpkg: regarding dracut_020-2_all_wheezy.deb containing dracut:
 dracut conflicts with initramfs-tools
  initramfs-tools (version 0.109.1) is present and installed.
dpkg: error processing dracut_020-2_all_wheezy.deb (--install):

root@ubuntu:/# apt-get purge initramfs-tools
The following packages will be REMOVED:
  initramfs-tools* linux-image-3.2.0-4-686-pae*
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 82.4 MB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 50876 files and directories currently installed.)
Removing linux-image-3.2.0-4-686-pae ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-4-686-pae /boot/vmlinuz-3.2.0-4-686-pae
update-initramfs: Deleting /boot/initrd.img-3.2.0-4-686-pae
The link /vmlinuz is a damaged link
Removing symbolic link vmlinuz
You may need to re-run your boot loader
The link /initrd.img is a damaged link
Removing symbolic link initrd.img
You may need to re-run your boot loader
Purging configuration files for linux-image-3.2.0-4-686-pae ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-4-686-pae /boot/vmlinuz-3.2.0-4-686-pae
rmdir: failed to remove `/lib/modules/3.2.0-4-686-pae': Directory not empty
Removing initramfs-tools ...
Purging configuration files for initramfs-tools ...

dpkg -i dracut_020-2_all_wheezy.deb
 dracut depends on kpartx; however:
  Package kpartx is not installed.
dpkg: error processing dracut (--install):

apt-get install module-init-tools
Package module-init-tools is not available, but is referred to by another package.
However the following packages replace it:
  kmod
E: Package 'module-init-tools' has no installation candidate

root@ubuntu:/# apt-get update                  

apt-get install module-init-tools
The following packages have unmet dependencies:
 dracut : Depends: kpartx but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

apt-get -f install
Setting up module-init-tools (9-3) ...
Setting up kpartx (0.4.9+git0.4dfdaf2b-7~deb7u2) ...
Setting up dracut (020-2) ...

./porteus-d 3.2.0-4-686-pae
====copy to /boot vmlinuz-3.2.0-4-686-pae & initrd.img-3.2.0-4-686-pae
then retry install dracut====
dpkg -i dracut_020-2_all_wheezy.deb
(Reading database ... 47318 files and directories currently installed.)
Preparing to replace dracut 020-2 (using dracut_020-2_all_wheezy.deb) ...
Unpacking replacement dracut ...
Setting up dracut (020-2) ...
dracut: Generating /boot/initrd.img-3.2.0-4-686-pae
E: Directories consolefonts, consoletrans, keymaps not found.  Please inform us about the issue including your OS name and version.
cм. log в attachment
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 19 Январь 2014, 19:54:31
Очень затейливо делаете
chroot не нужен
dracut надо было просто распаковать, чтобы зависимостями не парил
Да, сделайте Вы в PRA или дайте lib/modules - я Вам сделаю

Была проблема с загрузкой с флэшки. Частично решил
Код
dracut --force --xz --kernel-only -d " pata_acpi ata_generic ahci xhci-hcd iso9660 usbkbd usb-storage " \
        --filesystems "aufs squashfs vfat msdos ext4 isofs nls_utf8 nls_cp866" \
         -v -M initrd-$k+.xz $k >dracut.log 2>&1
Все равно fat парит опцией монтирования utf8
Вывод - лучше юзать тюнингованные ядра. Проблем меньше, размер меньше.
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sklimkin от 19 Январь 2014, 21:45:24
Цитата
Очень затейливо делаете
В чем затейливость? В том, что я целевую систему модифицирую по Вашему рецепту из chroot, и только потом собираю в ISO-образ?
Цитата
chroot не нужен
"скрипач не нужен" - к/ф Кин-Дза-Дза
Что так, а мне в нем спокойно и привычно - это не аргумент?
Цитата
dracut надо было просто распаковать, чтобы зависимостями не парил
Так ведь я читаю не по диагонали:
3.1. Установить dracut в любой линукс
Вот и устанавливал. Это для "чистоты эксперимента".
Цитата
Да, сделайте Вы в PRA или дайте lib/modules - я Вам сделаю
Ну Дебиан у меня, и делать надо в нем и для него.
Согласитесь, что на PRA Линуксы не заканчиваются.
Мы же сейчас говорим о методике сборки "в любом Линукс"
Если я правильно понял, то lib/modules надо из initrd.img-3.2.0-4-686-pae
сделайте пожалуйста, может тогда прояснится - выкладываю:
http://yadi.sk/d/tU2SM8mEGMUTY (http://yadi.sk/d/tU2SM8mEGMUTY)   modules.tar.gz 7,9 МБ
Цитата
Вывод - лучше юзать тюнингованные ядра
Моя не понимать "тюнингованные ядра"
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 20 Январь 2014, 09:45:56
chroot ... Что так, а мне в нем спокойно и привычно - это не аргумент?
chroot - необязателен. Все (ну или LF) манипуляции со сборкой ядра (кросскомпиляция (http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%BE%D1%81%D1%81-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80)) и инитрд можно делать в любом линуксе
Так ведь я читаю не по диагонали:
Вы переоцениваете уровень моих мануалов.  :)
Согласитесь, что на PRA Линуксы не заканчиваются.
Соглашусь. Но я писал и делал под ним. Чтобы адаптировать по другие дистры - правильный путь :
1. повторить эксперимент , получить результат в PRA
2. повторить эксперимент в другом дистре, описать отличия
Мы же сейчас говорим о методике сборки "в любом Линукс"
Если я правильно понял, то lib/modules надо из initrd.img-3.2.0-4-686-pae
Хотелось бы под любой
Подумал - пожалуй можно без дракут. Уже понятно, что он делает. Можно это скриптом
сделайте пожалуйста
ок
Моя не понимать "тюнингованные ядра"
Специально скомпиленные (PR(A), porteus) , работающие без либ ядра в инитрд
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 22 Январь 2014, 15:23:50
дайте lib/modules - я Вам сделаю
Если я правильно понял, то lib/modules надо из initrd.img-3.2.0-4-686-pae
сделайте пожалуйста, может тогда прояснится
В аттаче
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sklimkin от 23 Январь 2014, 18:09:11
Спасибо за помощь, Александр.
Я верю, что Вы нащупали решение, но пока все это зыбко.
Есть результат в PRA и в Porteus, но в них и без LF "все пучком".
А вот в Дебиан - увы. Остаются те самые мелочи, "в которых ..."
Получается вот такое:
1.
initrd /initrd.xz /initrd-3.2.0-4-686-pae+.xz
(как вариант: cat  initrd-3.2.0-4-686-pae+.xz initrd.xz >initrd2.xz
initrd /initrd2.xz)
собрал ISO и загрузил.
в обоих случаях сообщения:
идет поиск файла porteus-v2.0-i486.sgn
устройство еще не готово? Ждем 6 сек
Модули дистрибутива не найдены ... ... ... (т.е. это уже из fatal)

2.
скопировал из нового initrd-3.2.0-4-686-pae+.xz usr/lib/dracut и usr/lib/modules в исходный initrd и запаковал снова.
собрал ISO и загрузил. Сообщения об ошибках:
no filesystem could mount root, tried:
kernel panic - no syncing: VFS: Unable to mount root fs ... ... ...

3.
содержимое  моего ISO (по последнему варианту):
/initrd2.xz
/vmlinuz

/debian/base/01-port-wheezy-lf.xzm
... ... ...
####/debian/wheezy-i686.sgn
/debian/porteus-v2.0-i486.sgn

/isolinux/isolinux.cfg
Код
по 1-му варианту:
LABEL PortDeb-Live
MENU LABEL TEST Portdeb LF
linux /vmlinuz
initrd /initrd.xz /initrd-3.2.0-4-686-pae+.xz
append dir=/debian sgnfile=/debian/porteus-v2.0-i486.sgn

LABEL PortDeb-Live
MENU LABEL 0 Always Fresh Portdeb LF base_only norootcopy
linux /vmlinuz
initrd /initrd.xz /initrd-3.2.0-4-686-pae+.xz
append nomagic base_only norootcopy dir=/debian sgnfile=/debian/porteus-v2.0-i486.sgn

по 2-му варианту:
LABEL PortDeb-Live
MENU LABEL TEST Portdeb LF
linux /vmlinuz
initrd /initrd2.xz
append dir=/debian sgnfile=/debian/wheezy-i686.sgn

LABEL PortDeb-Live
MENU LABEL 0 Always Fresh Portdeb LF base_only norootcopy
linux /vmlinuz
initrd /initrd2.xz
append nomagic base_only norootcopy dir=/debian sgnfile=/debian/wheezy-i686.sgn

У меня есть Дебиан,который собран как Дебиан, загружается под управлением vmlinuz и initrd (modified) Портеус и остается Дебиан'ом, но я не уверен, что такая модификация initrd будет успешной в другом семействе Линукс.
portdebian-wheezy-LXDE-sfs.iso 205.5 MB
http://yadi.sk/d/Mvrcqj1TGF3PB (http://yadi.sk/d/Mvrcqj1TGF3PB)
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 23 Январь 2014, 20:33:24
portdebian-wheezy-LXDE-sfs.iso - не зайти под q 111111
Похоже depmod не сделан
Завтра подробнее
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sklimkin от 24 Январь 2014, 05:39:34
Я знаю - пользователь q "сломался" после манипуляций с dracut - разбираться не стал.
Есть root:root и user:user
Цитата
Похоже depmod не сделан
Что это дает в данном случае?
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 24 Январь 2014, 10:28:37
user:user - вошел
depmod - честно говоря, глубоко не копал. Иногда мне при пересадке ядра помогало.
Хуже точно не сделает. Но это видимо Вам не надо
Тогда что Вас не устраивает в Вашем portdebian-wheezy-LXDE-sfs.iso ?
Цитата
Дебиан,который собран как Дебиан, загружается под управлением vmlinuz и initrd (modified) Портеус и остается Дебиан'ом
Если бы Вы собирали initrd штатным средством (хотя-бы то что neobht делает с dracut) - тогда возможно да. А так это всетаки хирургическая операция и от нее возможно ждать сюрпризов
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 01 Февраль 2014, 10:14:26
из-за переименовывания 000-kernel в логе загрузки появляется эта информация, что не может его найти(зеленым цветом), но загрузка естественно проходит успешно
Насколько я понял init в inirtd - временное монтирование 000-kernel сделано для шифрованной сохраненки. Если ее нет (а мы так до этого и не дошли) разницы не будет. Можно юзать 000-kernel  с любым названием и в любой папке. Кроме выдачи зеленой инфы разницы не будет
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 05 Февраль 2014, 15:04:02
все мои пробы установки систем на винчестер провалились (почему-то ставился только загрузчик). По аналогии с пуппиками тоже не получилось. Я новичок-любитель, тонкостями не владею, поэтому прошу разъяснить как мне заиметь lf-porteus на винте и что прописать в menu.lst груб4дос чтобы запустить систему, желательно без перебора по трем менюшкам.
Доработал доку (http://wiki.puppyrus.org/puppyrus/pra?&#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_grub4dos)
Если не помогло - выкладывайте свой конфиг
Возможно, у Вас старая версия grub4dos, которая не поддерживает переменные. Замените свой grdl
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 31 Июль 2014, 11:08:55
Пофиксил проблему
http://forum.puppyrus.org/index.php/topic,14534.msg91662.html#msg91662
Поправил доку http://wiki.puppyrus.org/soft/porteus-initrd#changes_ro
Перезалил в шапке
Проверил changes=
RO:/f.dat ; /f.dat ; /dir
Название: Re:Эксперименты c Live (Initrd) из Porteus
Отправлено: sfs от 07 Октябрь 2014, 14:08:00
Дядя Шурик скомпилил (http://wiki.puppyrus.org/programming/busybox) статический busybox для pra. Спасибо+
Сейчас используется busybox от портеус + 2 прицепа моей компиляции с недостающим (что костыльно)
Т.е. никакого нового функционала. В идеале должен работать как старый
Из проблем - при загрузке с debug (http://wiki.puppyrus.org/soft/porteus-initrd#debug)
Код
sh: can`t access tty; job control turned off
Вроде ничему не мешает
Нашел https://www.linux.org.ru/forum/general/6211553 setsid в busybox нет. Просто сделал sh 2>/dev/null
В аттаче так же конфиг
Скомпил https://aur.archlinux.org/packages/busybox-static-musl-git и просто со static в конфиге - размер в 3 раза больше
Название: Re:Live (Initrd) из Porteus
Отправлено: sfs от 07 Апрель 2015, 17:25:18
По подсказке (спасибо и +)
Сохранёнку sfs надо монтировать с параметрами ro+wh при создании aufs
Решил проблему c pfs.save:
Например в сквоше на раб. столе ярлыки. Удаляем, делаем save.pfs в верхний слой. Перегружаем - ярлыки остались
http://www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/puppyrus-a/pra03/kernel/initrd.xz
Название: Re:Porteus Initrd
Отправлено: sfs от 15 Октябрь 2015, 09:29:03
что за каталог /m в initrd.xz ?
Пришло из porteus. Зачем нужно - не разбирался
Название: Re:Porteus Initrd
Отправлено: sfs от 27 Ноябрь 2015, 14:35:13
http://www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/puppyrus-a/pra03/iso/test/initrd.xz v.151127
1. Вывод версии initrd
2. Добавил параметр ядра stop - выводит загружаемые модули и останавливается перед запуском системы (почитать версию, ошибки и т.п.)
3. Убрал свой параметр xzm=. Теперь по умолчанию загружаются .pfs  и .xzm (как у portrus и nemesis)
4. Сделал возможным убрать копию busubox из http://www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/puppyrus-a/pra03/iso/test/075-Minirc-120.2915396-s12.pfs
Название: sort=
Отправлено: sfs от 15 Декабрь 2015, 09:47:49
К вопросу об оптимальности такой (http://wiki.puppyrus.org/soft/porteus-initrd#%D1%81%D0%BB%D0%BE%D0%B8_aufs) раскладки слоев
Чтобы иметь настройки DE в его модуле надо грузить 089 090 в самый верхний слой. Похоже надо этим озадачиться...
Название: sort=
Отправлено: DdShurick от 15 Декабрь 2015, 10:47:24
Чтобы иметь настройки DE в его модуле
Надо чтобы в базе этому ничего не мешало.
Название: sort=
Отправлено: sfs от 15 Декабрь 2015, 11:13:47
В базе не мешает. Проблема в том, что все загруженное через load= оказывается выше /base и /modules , в том числе и 090-save
Поэтому приходится нумеровать модули в base и перечислять в noload= что неудобно
Гарантированный перенос нумерных модулей  0[456789] не зависимо от их расположения в верхний слой решил бы проблему
Почти сделал в 11 строк
Название: Re:Porteus Initrd
Отправлено: sfs от 15 Декабрь 2015, 16:05:50
http://www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/puppyrus-a/pra03/iso/test/initrd151215.xz
Добавил опциональный параметр ядра sort=
Код
###sfs( Перенос номерных модулей в верхний слой aufs с сортировкой
SORT=`value sort'`
if [ "$SORT" ];then
    if [ "`echo "$SORT" |grep -v "^[0-9-]\+$"`" ];then
<------>echo -e "^[[31m""!!Ошибка!!\nВ параметре sort= можно указывать только цифры.\n
Например : sort=456789 или sort=4-9
Модули из /base и /optional, начинающиеся с 0xy- , будут загружены верхний слой
AUFS по алфавиту (т.е. перекроют остальные модули)
   x - указанное Вами маска в sort=; y - любая цифра

Например :
/mnt/sda1/pra3/base/000-kernel.pfs
/mnt/sda1/pra3/base/001-Pra03arch12nos.pfs
/mnt/sda1/pra3/base/040-jwm-pra3c.pfs
/mnt/sda1/pra3/base/070-Pra-151119.pfs
/mnt/sda1/pra3/base/089-pra-up.pfs
/mnt/sda1/pra3/base/090-save-150921net-pra.pfs
/mnt/sda1/pra3/modules/cow-notify-s04.pfs
/mnt/sda1/pra3/optional/075-Systemd-217-8-s03.pfs
        
с sort=4-9 :
/mnt/sda1/pra3/base/000-kernel.pfs
/mnt/sda1/pra3/base/001-Pra03arch12nos.pfs
/mnt/sda1/pra3/modules/cow-notify-s04.pfs
/mnt/sda1/pra3/base/040-jwm-pra3c.pfs
/mnt/sda1/pra3/base/070-Pra-151119.pfs
/mnt/sda1/pra3/optional/075-Systemd-217-8-s03.pfs
/mnt/sda1/pra3/base/089-pra-up.pfs
/mnt/sda1/pra3/base/090-save-150921net-pra.pfs

Нажмите Ctrl+Alt+Del для перезагрузки.""^[[0m"
     exit
    fi
grep -Ev "/(base|optional)/0[$SORT][0-9]-" /tmp/modules >/tmp/modules1
grep -E  "/(base|optional)/0[$SORT][0-9]-" /tmp/modules | while read i; do
    i1=${i##*/}
    i2=${i%/*}
    echo "$i1$i2"
done | sort -n | while read i; do
    i1=${i#*/}
    i2=${i%%/*}
    echo "/$i1/$i2"
done >/tmp/modules2
cat /tmp/modules1 /tmp/modules2 >/tmp/modules
fi
###sfs)
Что дает?
Восстановление нумерованных слоев AUFS при load=

Не слишком мудрено получилось? Смотрите пример в коде
Тестировать - переложить нумерованные модули в /optional и грузить sort=4-9 load=то_что_надо stop
stop - еще 1 ключ. Остановка в конце initrd с выводом слоев AUFS
Прочитать подсказку по sort : sort=help

Итоговое расположение слоев /var/log/porteus-livedbg
Название: Re:Porteus Initrd
Отправлено: ander от 15 Декабрь 2015, 20:10:40
А может просто сохраненку вынести из /base в какой-нибудь /save и грузить в конце отдельно?  Все остальное и так вроде проблем с сортировкой не создает.
Название: Re:Porteus Initrd
Отправлено: sfs от 15 Декабрь 2015, 20:23:44
Если сделать по дефолту sort=9 так и будет
sort - более универсальное решение
Цитата
Все остальное и так вроде проблем с сортировкой не создает.
Как удобно выбрать между minirc и systemd, разными DE?
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 22 Апрель 2016, 09:32:45
предлагаю убрать сообщение при загрузке "Проверка файловой системы на совместимость с posix"
ибо ненужно.
Саму проверку и сообщения о том что несовместима конечно оставить.
Тема чисто косметическая. только из-за одной строчки не хочется заморачиваться. Давай оставим до интернационализации
Название: Re: Initrd PRA-Porteus
Отправлено: sewar от 22 Апрель 2016, 09:59:59
Тема чисто косметическая. только из-за одной строчки не хочется заморачиваться
если уж будете заморачиваться, есть еще одна хотелка - во время загрузки модулей на экран выводится сообщение "загружено модулей" и цифры бегут до нуля...
Логичнее и информативнее было бы, если цифры росли от нуля к максимальному числу (количеству загружаемых модулей) и выводилось через дробь. К примеру 56/8 значит грузится восьмой модуль из 56-ти, и далее 9-10-11 и тд.....
Если это вобще реализуемо малой кровью..
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 22 Апрель 2016, 10:13:01
росли от нуля к максимальному числу
Т.е. хочется видеть сколько всего модулей будет загружено? А смысл?
Эта инфа проскакивает так быстро что не прочитать. Когда система загружено - модули можно посмотреть в sfs-get
Есть http://wiki.puppyrus.org/soft/porteus-initrd#debug
Надо ли что-то еще...
Название: Re: Initrd PRA-Porteus
Отправлено: sewar от 22 Апрель 2016, 10:27:13
хочется видеть сколько всего модулей будет загружено? А смысл?
если уж инфа по любому выводится, то пусть в этом будет смысл - т.е.  я вижу сколько всего, сколько осталось, как меняется если я убираю/добавляю модули..
сейчас информативности нет, даже наоборот - в итоге надпись "загружено модулей 0"
это хотелка из серии чтобы все было красиво и логично..на функционал конечно не влияет, это ясно..
Название: Re: Initrd PRA-Porteus
Отправлено: RoDoN от 22 Апрель 2016, 11:13:07
Эта инфа проскакивает так быстро что не прочитать.
Это зависит от мощности компа, на слабых очень даже хорошо читается.
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 22 Апрель 2016, 11:30:40
хочется видеть сколько всего модулей будет загружено? А смысл?
По мне - как сейчас логично. Число модулей не несет инфы без их размера и copy2ram...
Название: Re: Initrd PRA-Porteus
Отправлено: Pro от 22 Апрель 2016, 12:34:25
ну я вобще -то хотел еще предложить пару строк убрать при нормальной загрузке, ну нет так нет.
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 22 Апрель 2016, 13:08:35
Предлагай. Учту.
Название: Re: Initrd PRA-Porteus
Отправлено: Pro от 25 Апрель 2016, 05:21:03
Предлагаю убрать вывод строки "Подключены модули ядра"
"Файловая система совместима с posix" (сообщение о том что НЕ совместима - оставить)

"Идет поиск файла initrd.xz" тоже сомнительной полезности сообщение.
Название: Re: Initrd PRA-Porteus
Отправлено: Pro от 25 Апрель 2016, 08:42:04
https://github.com/Pro-pra/PRA-linuxrc/

Сделал репозиторий на гитхаб для редактирования initrc
Название: Re: Initrd PRA-Porteus
Отправлено: Pro от 28 Апрель 2016, 15:30:43
Тема чисто косметическая. только из-за одной строчки не хочется заморачиваться. Давай оставим до интернационализации
на гитхабе давай хоть по одной строчке правь.
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 13 Май 2016, 15:53:20
Доработал http://wiki.puppyrus.org/soft/porteus-initrd
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 09 Июнь 2016, 15:53:47
Посмотрел Porteus-v3.2rc3
Наконец и у них появилась сохраненка в модуль. Наша продвинутей
В initrd появилось (http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/117-cheatcodes-what-they-are-and-how-to-use-them.html)
Цитата
changes-ro

... Keep saved changes in a read-only state. This is useful when
you have your system set up exactly how you like it and do not
want to save any other changes you might make during a live
session. This cheatcode should be used in conjunction with the
'changes=' or 'changes=EXIT:' cheatcodes.
Example: 'changes=/path/file.dat changes-ro'
Кому-нибудь интересно?
По сути тот же эффект даст просто запаковка changes= в модуль
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 07 Октябрь 2016, 16:02:45
система движется к совершенству! :)
может и до такой мелочи руки дойдут - при загрузке пишет
** модулей загружено
а ведь правильней будет
** модулей осталось
там цифры **  все время убывают до нуля, пока не будет загружен последний модуль..
мелочь конечно, но было бы логичнее..
Наверное лучше "Х модулей осталось загрузить"
ОК - учту. Как раз планирую доработки initrd
Название: Re: Initrd PRA-Porteus
Отправлено: sewar от 07 Октябрь 2016, 16:17:44
"Х модулей осталось загрузить"
это хорошо будет..
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 07 Октябрь 2016, 16:55:02
Еще этот перевод надо поправить. Это сообщение об ошибке при попытке сделать changes= на fat,ntfs раздел
Цитата
Файловая ситсема Windows (FAT, NTFS) или другая не posix совместимая файловая система\nбыла обнаружена на $CHANGES.\nВаши изменения не могут быть сохранены прямо на the specified storage media с этой\nустановки. Пожалуйста используйте 'менеджер сохранения' чтоб создать .dat контейнер\nи используйте его для сохранения изменений после следующей перезагрузки.
Так понятнее: ?
Цитата
На $CHANGES обнаружена файловая ситсема (ФС) Windows (FAT, NTFS) или другая не posix совместимая ФС\nВаши изменения не могут быть сохранены на такой ФС\nИспользуйте сохранение в файл.dat или в модуль.pfs.\nПодробнее читайте в документации
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 08 Октябрь 2016, 11:50:05
может просто сохраненку вынести из /base в какой-нибудь /save
Зачем плодить папки
и грузить в конце отдельно?
А вот это пожалуй хорошая идея - делать так по дефолту без возможности изменения
Решит много проблем. Конфиги можно будет держать в модулях софта (paulus обрадуется)
В porteus-initrd не было 089(исправления) и 090(сохранения). Я приделал, но они не на месте - должны быть в самом верхнем слое
Переделал. Дополнительных ключей не требуется. sort= работает , но 089,090 - всегда сверху
http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/initrd.xz v.161008
Поправил тексты сообщений по итогу постов Pro sewar sfs
Проверять слои: /var/log/porteus-livedbg
Прощу протестировать и поправлю доки
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 01 Ноябрь 2016, 13:37:15
http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/initrd.xz
v.161009 - мелкие правки сообщений
v.161015 - оптимизация кода

Поправил документацию.  (http://wiki.puppyrus.org/soft/porteus-initrd?&#%D1%81%D0%BB%D0%BE%D0%B8_aufs) - так достаточно? всем понятно?
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 28 Февраль 2017, 11:40:03
http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/initrd.xz v.170225
Изменил порядок слоев
Изменено название модуля модулей ядра. (http://wiki.puppyrus.org/soft/porteus-initrd#%D0%B4%D0%BE%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_porteus-initrd_%D0%B4%D0%BB%D1%8F_puppyrus-a_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%B0)
    В porteus: 000-kernel.pfs (в PRA тоже работает)
    В PRA 000-kernel-версия_64.pfs, где «версия» - то что для этого ядра выводит uname -r. _64 - архитектура (для 32 -пусто). Из модулей ядра загрузится только 000-kernel-версия_64.pfs, и из видеодров загрузятся только для текущего ядра. Т.е. не надо в load= noload= писать фильтры для разных ядер

Раньше: 000 ; проприетарные драйвера ;001
Теперь:  000 ; 001 ;002 ;проприетарные драйвера

В PRA64 в 001*pfs включен gtk3 (которому нужны либы mesa)
Получалось - они перекрывали  проприетарные драйвера . В итоге не работали игры и Kodi

Название: Re: Пожелания пользователей по функционалу и оформлению PRA
Отправлено: sfs от 02 Август 2019, 09:59:17
porteus?
UUID (http://wiki.puppyrus.org/soft/porteus-initrd#from) в доке нет. Код не смотрел
http://wiki.puppyrus.org/soft/porteus-initrd#sgnfile или просто уникальные dir=
Не уверен что from= вообще работает
Если хочется UUID и т.п. лучше юзать rootaufs2
Название: Re: Re: Пожелания пользователей по функционалу и оформлению PRA
Отправлено: Pro от 02 Август 2019, 10:01:24
или просто уникальные dir=
ну так уж получилось что на винте и на флешке одинаково назвал.

Не уверен что from= вообще работает
видимо работает, раз описан даже в wiki

Название: Re: Re: Пожелания пользователей по функционалу и оформлению PRA
Отправлено: sfs от 02 Август 2019, 10:03:24
на винте и на флешке одинаково назвал.
Самое простое - переименовать
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 02 Август 2019, 10:05:06
перенес
Название: Re: Initrd PRA-Porteus
Отправлено: Pro от 02 Август 2019, 10:13:12
Самое простое - переименовать
это не решит возможную проблему с этим параметром в initrd.
Я могу найти сотню решений как обойти это, но на форуме я отписал о том что параметр from= сработал не так как ожидается.
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 02 Август 2019, 10:19:58
Посмотрел код - что-то про UUID есть
Готов разобраться?
Если нет - в доке нет - значит будем считать, что нельзя
Тем более
Я могу найти сотню решений как обойти это
И столько лет юзаем - никто по UUID не страдал. Скорее наоборот (http://forum.puppyrus.org/index.php?topic=16402.msg160122#msg160122)
Название: Re: Initrd PRA-Porteus
Отправлено: Pro от 02 Август 2019, 10:22:34
Если нет - в доке нет - значит будем считать, что нельзя
в доке как раз есть что /dev/sdb1 нормально указывать, а /dev/disk/by-uuid/ это сим.ссылки на соответствующие разделы в том числе и на /dev/sdb1
Название: Re: Initrd PRA-Porteus
Отправлено: knn от 02 Август 2019, 10:37:33
/dev/disk/by-uuid/
- мог бы получиться "универсальный вариант, совсем без гаданий"....
  -------
  Вроде когда раньше пробовал, еще - /mnt/sdXY "схватывало"
Название: Re: Initrd PRA-Porteus
Отправлено: knn от 02 Август 2019, 11:00:50
 вроде, from= - часть пути к dir.
   Rox - /dev/disk/by-uuid/* --> не знаю как открыть ;
   цель - не показывает... ???
Название: Re: Initrd PRA-Porteus
Отправлено: knn от 02 Август 2019, 11:03:54
еще бывает, что Гр4дос не может "слишком глубоко смотреть[ колич-во слэшей]"
Название: Re: Initrd PRA-Porteus
Отправлено: Pro от 02 Август 2019, 12:27:56
еще бывает, что Гр4дос не может "слишком глубоко смотреть[ колич-во слэшей]"
Это не груб4дос смотрит, это передается initrd на обработку.
Название: Re: Initrd PRA-Porteus
Отправлено: DdShurick от 02 Август 2019, 13:51:35
/dev/disk/by-uuid/
from="<значение UUID>" ??
Название: Re: Initrd PRA-Porteus
Отправлено: Pro от 02 Август 2019, 15:12:04
/dev/disk/by-uuid/
from="<значение UUID>" ??
Такое не пробовал. Но вроде не логчно, оно же путь ждет. Пробовал from=UUID=1234-1234 не срабатывало
Название: Re: Initrd PRA-Porteus
Отправлено: DdShurick от 02 Август 2019, 15:25:30
Но вроде не логчно, оно же путь ждет.
Смотри, выхлоп blkid:
Код
/dev/sda1: LABEL="SYSTEM" UUID="fab6e7ae-ea22-4786-851e-0d673bbf7e87" TYPE="ext3
Грепаем
Код
# grep /dev/sda1 /tmp/uuid.lst
/dev/sda1: LABEL="SYSTEM" UUID="fab6e7ae-ea22-4786-851e-0d673bbf7e87" TYPE="ext3"
# grep /dev/sda1 /tmp/uuid.lst | cut -f1 -d' '
/dev/sda1:
# grep "fab6e7ae-ea22-4786-851e-0d673bbf7e87" /tmp/uuid.lst | cut -f1 -d' '
/dev/sda1:
# grep UUID="fab6e7ae-ea22-4786-851e-0d673bbf7e87" /tmp/uuid.lst | cut -f1 -d' '

#
При правильно заданном значении в любом случае получаем /dev/sda1
Теперь логично?
Название: Re: Initrd PRA-Porteus
Отправлено: knn от 02 Август 2019, 15:27:56
видел где-то (в Поиске: porteus from parametr) from=UUID:<знач. uuid> (на неправильность вроде не ругается)
----------------
я сейчас from~ом почему-то вообще нигде ни как не могу загрузиться ??? - раньше-то когда-то - нормально..

[ может влияет глубина расположения дирректорий (пр.: /mnt/sdb2/32/1808-ret-iso/base)? может initrd.xz]
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 15 Ноябрь 2019, 11:44:43
initrd.xz (ftp://ftp.yandex.ru/puppyrus/puppyrus-a/kernel/initrd.xz)
Для двойного дистра доработал работу load noload
1. Раньше загружались модули из /optional по маске load= . Теперь =- кроме указвнных в noload=
2. Добавлением ключа -e пофиксил проблемы grep с масками , начинающимися с тире
Название: Re: Initrd PRA-Porteus
Отправлено: midnighter от 16 Ноябрь 2019, 08:51:01
initrd.xz
Это для всех дистр-ов?
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 16 Ноябрь 2019, 08:56:39
Да. Но острая необходимость в этом только в двойном дистре
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 20 Ноябрь 2019, 11:12:48
initrd.xz (ftp://ftp.yandex.ru/puppyrus/puppyrus-a/kernel/initrd.xz)
По итогу последних проблем со сложными исо добавил :
если load= noload= rammod= начингается с ; - загружаются все модули
Это явная ошибка. Убрал это sed-ом
Т.е. load=;1;2 самоисправится в load=1;2
Название: Re: Initrd PRA-Porteus
Отправлено: knn от 20 Ноябрь 2019, 11:41:05
если load= noload= rammod= начингается с ; - загружаются все модули
- (по памяти, можно перепроверить) "если заканчивается на ';' " - вроде тот же "максимальный эффект"
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 20 Ноябрь 2019, 12:39:57
Возможно, но на практике не сталкивались. Сталкнемся - добавить в sed
s/;$// не долго
Название: Re: Initrd PRA-Porteus
Отправлено: knn от 20 Ноябрь 2019, 12:59:45
- вообще в целом, - как доп.-проверка - не помешает.
Название: Re: Initrd PRA-Porteus
Отправлено: knn от 20 Ноябрь 2019, 13:51:01
- в "Меню-%%" ( последнее что выкладывал - http://forum.puppyrus.org/index.php?topic=19544.msg137247#msg137247 - подобная конструкция у меня пару лет - нормально)
 - c первой/"начальной" ';' решено (т.е. на уровне Гр4доса).
Вторая/"заключающая строку" ';' - на ответственность того, кто вводит/редактирует.
( может кому и поможет, например, для уменьшения процента накопления ошибки или для применения с к.-либо "старым" initrd).
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 28 Декабрь 2022, 16:51:39
Обновил pra-porteus initrd  221224:
1. Перекомпилил (https://wiki.puppyrus.org/programming/busybox) busybox. Обновил до 1.35. Хорошо бы проверить c nvme (https://forum.puppyrus.org/index.php?topic=23847.msg183672#msg183672)
2. Протестировал (в том числе с ventoy (https://forum.puppyrus.org/index.php?topic=22804.msg185381#msg185381)) и доработал extramod (https://wiki.puppyrus.org/soft/porteus-initrd?&#extramod)=_krn/modules (если _krn и base на одном разделе)
 и from (https://wiki.puppyrus.org/soft/porteus-initrd?&#from)= . Починил их совместную работу
3. Выкинул (https://wiki.puppyrus.org/soft/porteus-initrd?&#убран_raiserfsfsck_e2fsck_ntfs3-g) неработающий со свежими ext4 e2fsck и ntfs-3g. Обновленные скомпилил. Если надо - могу собрать жирный вариант
4. Доработал и проверил на ядре 6.0*-mg3 ( initrd-ko-6.0.0-pf2-mg3+_64.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/6.0.0-pf2-mg3/initrd-ko-6.0.0-pf2-mg3+_64.xz) ) псевдо-udev (https://wiki.puppyrus.org/soft/porteus-initrd?&#аналог_udev)
5. Получил итоговый рекордно малый размер 270кб
6. Доработал шапку темы и вики

Выложил для подписчиков (https://boosty.to/sfslinux/posts/37b22656-8ad9-4677-84af-d8529606b948?share=post_link) initrd-pu3xxx-03.xz
Стандарт названий (https://wiki.puppyrus.org/puppyrus/grub?&#стандарт_названий_initrd)

https://www.opennet.ru/opennews/art.shtml?num=58426
Перекомпилил 1.36. Убрал лишнее для porteus-initrd.
5. Получил итоговый рекордно малый размер 270кб
180
Выложил initrd-pu3xxx-04.xz там же
Название: Re: Initrd PRA-Porteus
Отправлено: knn от 28 Декабрь 2022, 17:08:40
extramod=
- по 'extramod=' (как понимаю, элемента из 'porteus') - в Вики можно указать (возможно предварительно перепроверив) что с "физическими разделами" - нормально, а с "логическими" - бывает "затык"( не помню как именно, но как-то неправильно отрабатывает)
----------------------
# сейчас пока  'extramod='  не пользую, но раньше об вышеупомянутый момент спотыкался
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 28 Декабрь 2022, 17:16:14
с "физическими разделами" - нормально, а с "логическими" - бывает "затык"
проверял только 'extramod=_krn/modules' - если _krn и base на одном разделе. Удобно - один 000-kernel и куча фругалов
Для разных разделов надо как минимум отсутствие noauto
Название: Re: Initrd PRA-Porteus
Отправлено: sfs от 04 Январь 2023, 12:24:31
https://www.opennet.ru/opennews/art.shtml?num=58426
Перекомпилил 1.36. Убрал лишнее для porteus-initrd.
Цитата: sfs от 28 Декабрь 2022, 16:51:39
5. Получил итоговый рекордно малый размер 270кб
180
Выложил initrd-pu3xxx-04.xz там же