[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