[devel] Модульный initrd.img

Michael A. Kangin mak на complife.ru
Вс Май 6 22:34:10 MSK 2018


On 05/06/2018 08:25 PM, Leonid Krivoshein wrote:

>> Минимальная поддержка, необходимая в initrd для сторонних образов с
>> модулями - вызов "depmod -a" перед загрузкой модулей, например, в
>> стадии pre-udev. Если сторонние образы содержат что-то другое, то и
>> поддержки особой не надо.
> Сейчас автоугадав взаимных зависимостей модулей работает на этапе
> генерации initrd. Чего же хорошего в переносе этой длительной операции
> на этап КАЖДОЙ (!) загрузки машины?

Мне кажется, вы не вполне понимаете, о чём речь.
Не стоит называть вызов depmod -a "автоугадавом".
На паре десятков модулей в tmpfs он стремителен.

[root на host-161 o1]# time depmod -a -b .
0.00user 0.00system 0:00.01elapsed 90%CPU (0avgtext+0avgdata 
5660maxresident)k
0inputs+424outputs (0major+1324minor)pagefaults 0swaps


> Даже если не умеет загрузчик, куски можно склеить заранее. И получить
> всё тот же монолитный initrd. Но зачем? Ведь в конечном итоге для
> решения конкретной задачи эти куски попадают на обработку всё равно уже
> в склееном виде.

Потому что выбор конкретной задачи может быть сформулирован и предложен 
в меню загрузчика. А создавать по монолитному образу на каждый из 64 
(например) вариантов в многоуровневом меню - лишние затраты ресурсов на 
генерацию и хранение (дедупликацию) одного и того же многократно.

А в случае медленной сетевой загрузки (uefi c tftp, например) 
оказывается очень важным предоставить как можно меньший образ.


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