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

Автор Тема: MagOS dracut  (Прочитано 30016 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:MagOS dracut
« Ответ #30 : 08 Январь 2014, 09:48:07 »
strip видел. Разве он не только на размер влияет?
Думаю - тут дело в специфике magos, под которую делалось.
Хочется именно универсальный инструмент. Выложенный мною выше mkinitcpio такой. Но hook-и для него на 100% не удоволетворяют...
Насколько я понял у dracut лучше проработан debug
Надо выбрать 1 сборщик (dracut или mkinitcpio) и допиливать под него hook-и
Мин. функционал - автоподключение pfs; sfs,dir,dev сохраненки, copy2ram
Макс. функционал - как у porteus

Может просто к porteus прикрутить возможность любого ядра...
Там похоже нет в начале процедуры подключения модулей ядра ext vfat и пр. (т.к. самих модулей нет)
Поэтому только с тюнингованными монолитными ядрами работат.
Передрать из linux-live-kit (наиболее близкий)...

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:MagOS dracut
« Ответ #31 : 08 Январь 2014, 11:21:20 »
Как у porteus функционал нам не достаточен. У нас он шире, но хочется еще более гибкого и функционального.

В скриптах, что я привел, специфики под дистр быть не должно.
Разве что сам dracut отличается.

Сейчас принцип такой:
На cmdline повешан хук, который смотрит обязательность параметра root=magos:blabla:blabla
На mount повешан хук, который запускает либо  наш magos linux-live, либо можно porteus, либо live-kit от нового slax, либо любой другой init скрипт, который после запуска делает всю работу и управление dracut уже не передает.

Сейчас я внес правки, которые по необходимым правилам подключают squashfs образы, сохраненку и т.д. , т.е. портирую куски кода и функции из magos linux-live и live-kit в библиотеку функций, а в init скрипте (сейчас он назван magos-init) вызываю последовательно функции - поиск дистрибутива на носителях, дисках, по http, ssh, ftp, nfs, а также внутри iso образов, криптованых и обычных образах ФС, подключение удаленных репозиториев по сети, синхронизация удаленных репозиториев в локальные репозитории, копирование в ОЗУ всех модулей или только указанных, монтирование squashfs модулей, модулей с любыми другими ФС, подключение сохраненки в виде директории, образа, сжатого модуля и другие нюансы (анализ специального конфига и конфигурирование уже основного дистрибутива, создание пользователей, настройка фаерволов и т.д.) в корень /sysroot (по умолчанию в dracut туда монтируется / ) и после этого передается управление dracut, в нем отрабатывают другие хуки (в данном случае может запускаться plymouth и прочий тюнинг, включая запуск systemd) и либо происходит смена корня и запуск init уже из виртуального корня конкретного дистрибутива (у нас - Роса, у вас Arch, Debian, Ubuntu, LFS и т.д.), либо запуск systemd (над этим надо работать, сейчас работает только первый вариант, а systemd уже стартует самостоятельно, если он есть в дистрибутиве). Первый вариант более универсальный и его надо сделать по-умолчанию.

Когда мы эти вещи унифицируем, то мы получим уникальную возможность совместно работать над добавлением все новых фич и не распылять свои усилия. При этом поддерживать frugal того дистра, который больше нравится (тут уже у каждого свои предпочтения).

Описанное мной у нас все уже сделано, только без dracut. Сейчас я хочу это унифицировать и сделать без специфичных параметров под конкретный дистрибутив. А также дать возможность другим проектам использовать всю мощь заложенную в модульной архитектуре frugal. Переход других проектов на общий initrd (хотя бы по части скриптов инициализации, т.к. версии ядер и набор модулей у всех может быть различным) позволит более тщательно полировать и находить специфические места и не переизобретать велосипеды, а оттачивать и совершенствовать уже созданное другими.

Мне кажется, это более, чем реально сейчас нам с вами достичь.
« Последнее редактирование: 08 Январь 2014, 11:25:29 от neobht »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:MagOS dracut
« Ответ #32 : 13 Январь 2014, 14:26:03 »
А самостоятельно можно так:
1. вместо livekitlib - скопировать linuxlivelib
2. вместо uird-init - скопировать linuxrc

ну и собрать make-dracut-minimal.sh
В porteus без linuxlivelib. Все в linuxrc
uird-init - не нашел. Заменил magos-init
Без улучшений. Без Вас никак  :'(

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:MagOS dracut
« Ответ #33 : 13 Январь 2014, 14:40:18 »

uird-init - не нашел. Заменил magos-init
Без улучшений. Без Вас никак  :'(

нужно обновить, я активно пишу скрипты.
сейчас уже версия под унификацию.
удалено дистроспецифическое именование.

Вот это должно быть в параметрах ядра обязательно :
Код
root=uird:


Через пару дней у меня появится нормальный доступ к Интернет и я вам обязательно помогу на вашей сборке все это запустить.
Пока только на форуме могу подсказки писать.


Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:MagOS dracut
« Ответ #34 : 13 Январь 2014, 14:50:01 »
Ок. Спасибо. Сигнализируйте. Жду
Мой текущий инитрд без модулей ядра (можно добавить)

..или хотябы дайте конфиг дракут для сборки модулей ядра аналогичный HOOKS=" pata sata usb"
MODULES="vfat ext4 iso9660 aufs squashfs" (mkinitcpio)

дракут уже везде есть

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:MagOS dracut
« Ответ #35 : 13 Январь 2014, 15:06:39 »
конфиг dracut.conf находится рядом со скриптами там все это прописано.
Удалите лишние модули самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:MagOS dracut
« Ответ #36 : 13 Январь 2014, 17:03:53 »
Получилось собрать голые модули ядра. Спасибо+
Я скорее хитро сделал, чем правильно. Но мне так еще удобнее
А вообще dracut впечатляет. Похоже им сразу можно собрать что-то типа slitaz
« Последнее редактирование: 13 Январь 2014, 17:14:43 от sfs »

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:MagOS dracut
« Ответ #37 : 07 Январь 2015, 15:54:57 »
Допилил кучу функционала в UIRD и сделал подробное описание устройства и принципа работы: https://github.com/magos-linux/magos-linux/tree/master/make_initrd

Сейчас версия пригодная для загрузки puppyrus.

Если кто возьмется тестировать, пишите, подскажу с чего начать.
Штука очень мощная получается. Включает в себя весь функционал magos-initrd и porteus-initrd и кучу всего другого.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:MagOS dracut
« Ответ #38 : 07 Январь 2015, 16:53:26 »
есть ли смысл прикрутить локализацию или просто перевести на русский?
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:MagOS dracut
« Ответ #39 : 07 Январь 2015, 17:04:07 »
Да. В ближайшие дни буду прикручивать локализацию через gettext.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:MagOS dracut
« Ответ #40 : 07 Январь 2015, 23:07:43 »
Если кто возьмется тестировать, пишите, подскажу с чего начать.
Скомпилил в pra3 dracut , собрал initrd Вашим https://github.com/magos-linux/magos-linux/blob/master/make_initrd/make_uird_minimal.sh
Собрал iso
Пока kernel panic на стадии initrd
1. Какая структура исо?
2. Какие параметры ядра?
3. Что сделфл не так?

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:MagOS dracut
« Ответ #41 : 08 Январь 2015, 06:23:59 »
root=uird:
uird.from=путь где лежат модули системы

Посмотрите лог dracut.log. Он ряд утилит мог не найти. Возможно какую-то существенную.

Можете в virtualbox проверить загрузку? Чтобы исключить, что какого-то драйвера не хватает.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:MagOS dracut
« Ответ #42 : 08 Январь 2015, 12:09:47 »
root=uird:
не помогло
uird.from=путь где лежат модули системы
uird.from=/MagOS или /MagOS/bundles или /MagOS/base
Модули надо в .xzm переименовывать?
Посмотрите лог dracut.log.
Как это сделать? Сразу получаю см. скрин
Можете в virtualbox проверить загрузку? Чтобы исключить, что какого-то драйвера не хватает.
так и проверял

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:MagOS dracut
« Ответ #43 : 08 Январь 2015, 13:03:19 »
uird.from=  - здесь можно указывать любую директорию где лежат модули. Будет произведен поиск по всем директориям от указанной, включая вложенные. Если не нужно лишнее, можно указать конкретную директорию. По умолчанию исключаются директории /optional/,/changes/,/cache/. Во всех остальных директориях будут найдены модули, если они там есть.

переименовывать модули не надо. *.pfs - включено по умолчанию. Можно переопределить параметром: uird.ro=*.pfs,*.sfs

dracut.log необходимо смотреть в директории, где собирается uird.cpio.xz

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:MagOS dracut
« Ответ #44 : 08 Январь 2015, 19:25:05 »
Не в этом ли причина (см. аттач) 
Код
Failed to install module iso9660
А есть работающий iso c таким initrd?