[devel] зачем вообще может быть нужен initrd при загрузке с локального носителя

Alexey Shabalin a.shabalin на gmail.com
Чт Апр 12 14:49:47 MSK 2018


12 апреля 2018 г., 12:31 пользователь Alexey V. Vissarionov
<gremlin на altlinux.org> написал:
> On 2018-04-11 22:18:39 +0300, Alexey Shabalin wrote:
>
>  >>>>> Коллеги, а вот кто может внятно объяснить, зачем вообще
>  >>>>> может быть нужен initrd при загрузке с локального носителя
>  >>>>> (непосредственно подключенного к компутеру)?
>  >>>> Множество причин, тысячи их.
>  >>> Доброго сэра, конечно же, не затруднит назвать хотя бы десяток
>  >>> причин из этих тысяч?
>  >> Даже при загрузке с локального носителя есть штатные
>  >> конфигурации, в которых ядро само не может смонтировать rootfs и
>  >> запустить оттуда init, например: - драйвер локального носителя
>  >> не вкомпилирован в ядро;
>  > +1 И я буду сильно против, если кто-то попытается мне подсунуть
>  > ядро со всеми возможными вкомпиленными в ядро модулями.
>
> Зачем со всеми-то? Здесь прекрасно соблюдается правило 80/20 - работу
> 80% всего железа обеспечивают 20% ядерного кода.

что-то я тут не догнал. ты предлагаешь выбросить еще и 80% кода ядра?

>  > Тем более, некоторыми еще нужен firmware, например FC Qlogic.
>  > Их куда вкомпиливать?
>
> Ты не поверишь - вкомпилированные модули тоже умеют грузить firmware
> из userspace. Я серьезно. Могу даже показать: втыкаю в УПШ железяку
> (WiFi-свистульку), говорю dmesg и вижу что-то вроде "Автоматическая
> загрузка /lib/firmware/... - загружена версия 1.2.3".

Я говорю о firmware, нужном для rootfs, а не для wifi-свистулек.
Специально указал на Fiber Channel Qlogic.

>
> Впрочем, как раз такие модули есть смысл держать в /lib/modules
>
>  >> - драйвер файловой системы rootfs не вкомпилирован в ядро;
>  > +1 Мне вот нужен rootfs на 9pfs.
>
> Это реальная задача или так, разговор поддержать?
> Вопрос не риторический, мне для статистики.

Да, это реальная задача.
Запуск виртуалки qemu без образа, а указав ядро, initrd, и директорию
для rootfs.
Типа "контейнер", но с kvm.
Смотри runV, rkt, kvm-tools.

>  > Уверены, что его надо вкомпиливать в ядро?
>
> Именно корень? "Не верю!" // (ц) К.С.Станиславский

именно корень.

> /home - сколько угодно, но корень...
> Кстати, а грузиться оно откуда будет?

с ядра и initrd, указанного в параметрах qemu.

>  >> - требуются нетривиальные действия для подготовки rootfs к
>  >> монтированию, не связанные с загрузкой модулей ядра, например,
>  >> расшифровка устройства с помощью ключа, тем или иным способом
>  >> полученного от оператора загрузки во время загрузки.
>  > Тут, я думаю, вообще возразить что-то тяжело.
>
> См. мой ответ ldv@
>
>  > И от себя еще один вариант использования.  Мне бывает нужно
>  > подсунуть свою таблицу acpi для ноутбука в виде dsdt файла.
>
> Список моделей таких ноутбуков - в президиум! Желательно с
> пометками, какие из них умеют делать это через EFI, какие нет.

У меня ноут Sony 2009 года выпуска, никаких EFI нет. Но он работает и
меня вполне устраивает.
Часть проблем решается именно правкой acpi таблиц, которые надо
подсунуть в момент загрузки ядра.

>  > Если ядро претендует на роль универсального, а не для
>  > конкретной железки и конкретной цели использования, без initrd
>  > невозможно обойтись.
>
> Пример хотя бы одной железяки, где initrd позволит сделать что-то,
> что не умеет само ядро - опять же, в президиум!

> Я уже, наверное, могу спорить на пиво, что собранное мной свежее
> ядро безо всякого initrd взлетит с полной поддержкой загрузочного
> накопителя (где корень и /lib/modules) на любом писюшном железе,
> выпущенном за прошедшие 3 года - с 2015 по 2018 год. Если что, про
> серверы с EFI-only загрузкой знаю, они мне уже не особо интересны
> (сейчас у криворуких админов это величайшая проблема: железо
> требует инициализации средствами EFI, без которой превращается в
> тыкву; решение - не откатываться на CSM, а пользоваться EFI, но им
> страшно и непривычно).

Почему я ради вашей прихоти должен через 3 года менять железо? Оно
меня вполне устраивает.

> 2 all: если что, принимаю приглашения :-)

-- 
Alexey Shabalin


Подробная информация о списке рассылки Devel