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

Автор Тема: PR+MagOS: общий initrd  (Прочитано 15403 раз)

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

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
PR+MagOS: общий initrd
« : 22 Август 2013, 08:03:44 »
Из того, что тут обсуждалось попробую обощить:
1. функционал, который сейчас есть в mos вполне устраивает
2. модули ядра и прочее необходимо убрать для минимизации размера (насколько минимизировать? убирать ли сетевые утилиты (sshfs,curlftpfs , ) и прочее, потому что они увеличивают почти в два раза размер с включенными либами? )
3. все хотелось бы иметь переведенное

Я постараюсь это все учесть и сделать так, чтобы можно было собирать:
1. чистый минимальный initrd
2. опционально включать модули в initrd (сетевые утилиты, mc, и прочее)

Но это просто реорганизация того функционала, что у нас уже есть.

Мне бы хотелось внести изменения на нижнем уровне кардинально: пересмотреть само построение слоеного пирога aufs:

1. сделать минимальный initrd (возможность монтировать ext* , fat, ntfs)
2. расширенный модуль для   initrd(сетевое монтирование - драйвера сетвых карт и тд, btrfs и другие фс)
3. модуль  приложений для initrd (различные утилиты - mc, ...)
====
4. конфигурационный файл, содержащий правила сборки слоеного пирога основной ФС дистра
тут по сути описывается то, где лежит сохраненка, где лежат примонтированные модули(пакеты), какие загружаются опционально, какие постоянно, где локальный и сетевые репозитории и тд.
5. монтируется этот файл и парсится
6. монтируются по правилам описанным в нем репозитории, сохраненка и прочее
7. передается управление системе инициализации дистра


Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8633
  • Репутация: +187/-2
  • Старый чайник
PR+MagOS: общий initrd
« Ответ #1 : 22 Август 2013, 08:44:33 »
1. сделать минимальный initrd (возможность монтировать ext* , fat, ntfs)
2. расширенный модуль для   initrd(сетевое монтирование - драйвера сетвых карт и тд, btrfs и другие фс)
3. модуль  приложений для initrd (различные утилиты - mc, ...)
====
4. конфигурационный файл, содержащий правила сборки слоеного пирога основной ФС дистра
тут по сути описывается то, где лежит сохраненка, где лежат примонтированные модули(пакеты), какие загружаются опционально, какие постоянно, где локальный и сетевые репозитории и тд.
5. монтируется этот файл и парсится
6. монтируются по правилам описанным в нем репозитории, сохраненка и прочее
7. передается управление системе инициализации дистра
1. У меня уже есть.
2. Использовать zdrv, но он будет привязан к конкретному ядру, с модулями ядра иначе не получится.
3. Зачем?
4-7. Как я понял, вместо простого поиска делаем сложный? Смысл?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
PR+MagOS: общий initrd
« Ответ #2 : 22 Август 2013, 09:45:47 »
3. Возможность включения в инитрд утилит, которые мы бы хотели в нем иметь, но которые не нужны вам. Уменьшение во что бы то ни стало инитрд не является для нас приоритетом.
4-7. Гибкость. Сложные варианты загрузки, например часть модулей локально, часть c httpfs, различные варианты сохраненки.

Если у нас не выйдет договориться по инитрд здорово усложнится сотрудничество и по другим моментам. Нам нужны общие параметры загрузки. Общие конфиги и так далее. Иначе все совместные проекты будут кучей костылей для работы в конкретных дистрах. Хорошо бы договориться и по терминологии вообще, а то мы одни и те же вещи называем по разному, хоть словарь пиши :)
« Последнее редактирование: 22 Август 2013, 09:57:20 от betcher »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33953
  • Репутация: +231/-0
    • PuppyRus-A
Re:PR+MagOS: общий initrd
« Ответ #3 : 22 Август 2013, 10:41:30 »
1. да
2. Минимизировать максимально. У нас весь дистр 70 мб. Причем с Porteus- трюком подключения либ ядра из базового модуля (можно сделать это опциональным, т.к. ядрозависимо). Все для сетевой загрузки - в идеале вторым инитрд (они могут наслаиваться - см. slitaz). Уж модульность - так везде
3. да. Можно передрать из PRA
Зачем в initrd mc и пр.?

1. сделать минимальный initrd (возможность монтировать ext* , fat, ntfs)
Разве это не в ядре надо делать?
4. конфигурационный файл, содержащий правила сборки слоеного пирога основной ФС дистра
Где он будет? Хотелось бы править его из grub*
где локальный и сетевые репозитории и тд.
Зачем это в initrd - для сетевой загрузки?

У меня уже есть минимальный initrd.
В нем реализовано:
а. Монтирование либ ядра из базы
б. load= noload= changes= debug
в. русификация
г. сетевая загрузка
Если нет и реализовать -  не получится ли на выходе тот же mos-porteus-initrd ?

2. Использовать zdrv, но он будет привязан к конкретному ядру, с модулями ядра иначе не получится.
Пупирусско-Магосовый словарь
zdrv - 000-kernel
Пожалуй , лучше его создать, чем изобретать свое, ни с чем не совместимое
Хватит того, что squashfs в разных дистрах имеет вариантов 10 расширения : sfs pfs xzm ...
« Последнее редактирование: 22 Август 2013, 10:45:13 от sfs »

Оффлайн RoDoN

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 6279
  • Репутация: +141/-0
    • RoDoN X
Re:PR+MagOS: общий initrd
« Ответ #4 : 22 Август 2013, 11:00:15 »
1. сделать минимальный initrd (возможность монтировать ext* , fat, ntfs)
2. расширенный модуль для   initrd(сетевое монтирование - драйвера сетвых карт и тд, btrfs и другие фс)
3. модуль  приложений для initrd (различные утилиты - mc, ...)
Т.е. при загрузке только этих пунктов получаем минимальную ОС без иксов, но в которой уже можно многое делать. Я правильно понимаю? Интересно, а сколько это все будет весить, если собрать одним файлом?
Lenovo B590 (i3-3110M, 8 Гб, GeForce 720M)
PRA 16.12 JWM, Runtu 22.04 x64 XFCE

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re:PR+MagOS: общий initrd
« Ответ #5 : 22 Август 2013, 11:02:02 »
Сейчас mc в магос-инитрд нет, вместо него bash-commander. Это нужно для режима загрузки quickshell
http://www.magos-linux.ru/index.php?option=com_agora&task=topic&id=780&p=1&Itemid=55#p12703

Т.е. при загрузке только этих пунктов получаем минимальную ОС без иксов, но в которой уже можно многое делать. Я правильно понимаю? Интересно, а сколько это все будет весить, если собрать одним файлом?


Да, все так. Весит наш инитрд сейчас метров 9.

 
« Последнее редактирование: 22 Август 2013, 11:13:10 от betcher »

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:PR+MagOS: общий initrd
« Ответ #6 : 22 Август 2013, 11:24:24 »
1. надо делать в ядре
2. вторым initrd неудобно. просто лучше при создании initrd включать необходимые модули.
4. конфиг лежать в идеале для нас должен, где угодно: на любом разделе, в любой директории, по сети.
путь к нему указывается параметрами командной строки для ядра в унифицированном формате: тип://путь

пример:
base_config=[local://]/dev/sda3/BlaBla/base_config.ini 
base_config=http://magos.sibsau.ru/repository/netlive/2012/MagOS/base_config.ini
и тд  по аналогии с тем как у нас сделан from=

можно сделать [local://] необязательным, то есть в случае отсутствия подразумевать локальные пути.

Вместе с тем, при отсутствии или ошибки подключения/доступа к файлу указанному в base_config= использовать дефолтный файл, который лежит внутри initrd.
При простом указании (без /dev/[hs]d*) производить поиск по всем носителям и всем директориям.

под локальным и сетевым репозиторием я подразумеваю директории, которые содержат опциональные модули/пакеты программ и которые можно синхронизировать посредством rsync либо с другими директориями, либо по сети.


Расширения для модулей squashfs стоит выбрать единое и универсальное. По минимуму в модулях помимо корневой ФС, должно быть описание. Тут можно слить ваши и наши наработки или взять ваши наработки и утилиты pfs-utils.

Еще у нас используется шифрование (добавка к имени в конце ".enc") и формат модулей rom и rwm - это файлы - образы с обычной файловой системой (ext*,btrfs,reiser,....) Отличаются только режимом доступа - ro,rw - чтение, чтение и запись. То есть если хотим монтировать модуль только для чтения используем rom, иначе rwm, если добавляем в конце еще и .enc: ...rom.enc или ....rwm.enc, то получаем возможность использовать шифрование, пока сделано через cryptoloop AES256, но хотелось бы использовать типо cryptosetup и прочие провайдеры для шифрования работающие через mapper.

xz - у нас показывало сжатие в squashfs.

По сути это не принципиально, как назвать, но в названии должна быть какая-то логика.
считаю необходимо иметь такие типы:
xzm - squashfs
rom - любая ФС поддерживаемая mount, монтируемая в режиме RO
rwm - любая ФС, монтируемая в режиме RW
[rom,rwm].enc - тоже самое но через шифрование

pfs - мета(модуль/пакет), умеющий объединять внутри себя несколько xzm,rom,rwm . Я вижу это несколько иначе, чем у вас сделано. Не в виде набора развернутых директорий с рут системами для aufs, а просто в виде контейнера который содержит уже готовые модули, но и некий алгоритм того, куда их монтировать. Некий аналог base_config из initrd, но только для группы модулей.

Это то, что мне иногда требуется, но до чего так и не дошли руки года 3 назад.

Внутри pfs для дистров основанный на других пакетных менеджерах хотелось бы возможность минимизации размера за счет выноса общих файлов из различных модулей в отдельный модуль.

Если pfs  делать сжатым squashfs, то можно как у вас хранить не модули внутри, а просто директории, но тогда туда не засунуть rwm. Если делать pfs с файловой системой доступной на запись, то тогда внутри надо хранить модули сжатыми для варианта xzm.

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

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:PR+MagOS: общий initrd
« Ответ #7 : 22 Август 2013, 11:39:20 »
я неоднократно читал у вас желание все править в grub*.

у нас есть небольшая работа (думаю многим понравится): https://github.com/neobht/burg_magos
там есть возможность сохранять все параметры, которые правлены ручками в конфиг.

Можно эту идею доразвивать дальше. Я сделал минимальный набросок для возможности загружать систему на чистом ext4.
« Последнее редактирование: 22 Август 2013, 11:41:17 от neobht »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8633
  • Репутация: +187/-2
  • Старый чайник
Re:PR+MagOS: общий initrd
« Ответ #8 : 22 Август 2013, 12:25:13 »
У меня уже есть минимальный initrd.
В нем реализовано:
а. Монтирование либ ядра из базы
б. load= noload= changes= debug
в. русификация
г. сетевая загрузка
Если нет и реализовать -  не получится ли на выходе тот же mos-porteus-initrd ?
а. Мне не надо, но сделать вряд ли большая проблема. Но лучше из zdrv.
б. А эти сложности нафига?
в. Да.
г. Вернуть секцию сетевой загрузки не проблема, проблема проверить не на чем.
Пупирусско-Магосовый словарь
zdrv - 000-kernel
Пожалуй , лучше его создать, чем изобретать свое, ни с чем не совместимое
Я за 000-kernel-$(uname -r)

 Моё особое мнение:
Господа конструкторы, может хватит конструироватьконструктор для конструкторов. Я понимаю. Что это интересно, но надо и о пользователях думать.
« Последнее редактирование: 22 Август 2013, 12:29:30 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33953
  • Репутация: +231/-0
    • PuppyRus-A
Re:PR+MagOS: общий initrd
« Ответ #9 : 22 Август 2013, 12:38:40 »
а. Мне не надо,
б. А эти сложности нафига?
надо и о пользователях думать.
При всем моем к Вам уважении - как 1я цитата стыкуется со 2й?
Я за 000-kernel-$(uname -r)
Поддерживаю

Давайте жить дружно. Побольше конструктива. Поменьше эмоций
« Последнее редактирование: 22 Август 2013, 12:40:28 от sfs »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8633
  • Репутация: +187/-2
  • Старый чайник
Re:PR+MagOS: общий initrd
« Ответ #10 : 22 Август 2013, 13:27:46 »
При всем моем к Вам уважении - как 1я цитата стыкуется со 2й?
А вы думаете пользователь будет пользоваться системой, которой для запуска нужен конфиг на n листов? Должно работать автоматически и понятно.
Давайте жить дружно. Побольше конструктива. Поменьше эмоций
Как раз чистейший конструктив.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re:PR+MagOS: общий initrd
« Ответ #11 : 22 Август 2013, 13:43:35 »
Пользователю нужна система, которая работает вообще без конфигурирования, но если понадобится возможность сетевой загрузки например. То пользователю очень понравится, что все уже реализовано и надо только раскомментировать или добавить параметр загрузки. А для обычного использования даже не обязательно знать об этом. Без дополнительных параметров все будет работать ровно так, как и сейчас.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33953
  • Репутация: +231/-0
    • PuppyRus-A
Re:PR+MagOS: общий initrd
« Ответ #12 : 22 Август 2013, 13:47:15 »
В PRA сейчас
Код
title 1. PuppyRus 3.0.
set d=pr3
kernel /%d%/vmlinuz-pf3101 dir=%d% quiet
initrd /%d%/initrd.xz
Причем set и quiet можно убрать сразу, dir c маленькой доработкой
Если это кому-то сложно - надо переходить на винду
Про продвинутых юзеров тоже нельзя забывать
За за подход : "наличие опционального функционала" (Должно работать просто - навороты опционально)
porteus-initrd вполне этому соответствует



Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33953
  • Репутация: +231/-0
    • PuppyRus-A
Re:PR+MagOS: общий initrd
« Ответ #13 : 22 Август 2013, 13:58:21 »
Сейчас mc в магос-инитрд нет, вместо него bash-commander. Это нужно для режима загрузки quickshell
Такие навороты нужны только разрабам. Зачем это пихать всем.
В пупи все для разработки одним отдельным модулем devx. Здесь оптимально так же : cлоеный инитрд или большой и маленький

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
  • Автор темы
Re:PR+MagOS: общий initrd
« Ответ #14 : 22 Август 2013, 14:08:08 »
в том то и фишка, что будет универсально: хочешь навороты - получи, хочешь минимально - получи, хочешь операционку из 3 файлов - получи.

в общем опционально - гибкость, по дефолту - просто все работает на настройках по умолчанию.