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

Alexey V. Vissarionov gremlin на altlinux.org
Чт Апр 12 12:31:24 MSK 2018


On 2018-04-11 22:18:39 +0300, Alexey Shabalin wrote:

 >>>>> Коллеги, а вот кто может внятно объяснить, зачем вообще
 >>>>> может быть нужен initrd при загрузке с локального носителя
 >>>>> (непосредственно подключенного к компутеру)?
 >>>> Множество причин, тысячи их.
 >>> Доброго сэра, конечно же, не затруднит назвать хотя бы десяток
 >>> причин из этих тысяч?
 >> Даже при загрузке с локального носителя есть штатные
 >> конфигурации, в которых ядро само не может смонтировать rootfs и
 >> запустить оттуда init, например: - драйвер локального носителя
 >> не вкомпилирован в ядро;
 > +1 И я буду сильно против, если кто-то попытается мне подсунуть
 > ядро со всеми возможными вкомпиленными в ядро модулями.

Зачем со всеми-то? Здесь прекрасно соблюдается правило 80/20 - работу
80% всего железа обеспечивают 20% ядерного кода.

 > Тем более, некоторыми еще нужен firmware, например FC Qlogic.
 > Их куда вкомпиливать?

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

Впрочем, как раз такие модули есть смысл держать в /lib/modules

 >> - драйвер файловой системы rootfs не вкомпилирован в ядро;
 > +1 Мне вот нужен rootfs на 9pfs.

Это реальная задача или так, разговор поддержать?
Вопрос не риторический, мне для статистики.

 > Уверены, что его надо вкомпиливать в ядро?

Именно корень? "Не верю!" // (ц) К.С.Станиславский

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

 >> - требуются нетривиальные действия для подготовки rootfs к
 >> монтированию, не связанные с загрузкой модулей ядра, например,
 >> расшифровка устройства с помощью ключа, тем или иным способом
 >> полученного от оператора загрузки во время загрузки.
 > Тут, я думаю, вообще возразить что-то тяжело.

См. мой ответ ldv@

 > И от себя еще один вариант использования.  Мне бывает нужно
 > подсунуть свою таблицу acpi для ноутбука в виде dsdt файла.

Список моделей таких ноутбуков - в президиум! Желательно с
пометками, какие из них умеют делать это через EFI, какие нет.

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

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

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

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


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20180412/b5b32462/attachment-0001.bin>


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