Почему genkernel решает включить только 4 модуля в мои initramfs?


с Миллеромhttp://johnkerl.org/miller/doc/reference.htmlкоманда

mlr --csv --implicit-csv-header --headerless-csv-output --fs ":" join --ul -l 4 -r 1 -j 4 --lp l --rp r -f file2.csv file1.csv

А у вас есть

C01:R001:07/04/15:123.45:Nancy:Jones:njones@abc.com
C02:R005:11/27/16:58.00:Barbara:Madison:bmadison@bcd.com
C03:R002:12/20/15:167.50:Tim:Adams:tadams@cde.com
C03:R005:09/15/16:36.50:Tim:Adams:tadams@cde.com
C05:R006:02/28/17:72.98:John:Polk:jpolk@efg.com
C06:R003:03/14/16:298.00:Paula:Jacobs:pjacobs@fgh.com

0
04.02.2021, 16:28
1 ответ

Каким образом он решает использовать только эти модули, мне неизвестно. Но цель создания initramfs — создать что-то минимального размера. Таким образом, его можно будет загрузить с диска быстрее, что сократит время загрузки. Единственные модули, которые нужны initramfs, — это те, которые позволят ему смонтировать ваш корневой раздел, откуда он сможет загружать любые другие модули. Все остальное следует исключить.

Создание файла initramfs как можно меньшего размера особенно важно для времени загрузки, поскольку весь образ будет загружаться с диска. Нет такой оптимизации, как отложенная -загрузка mmap()ed-файлов — загрузчик/ядро просто вслепую загружает все целиком. Конечно, даже большие файлы initramfs могут быть быстро загружены в современных системах с твердотельными накопителями. Таким образом, в этот момент речь идет о потраченных впустую ресурсах памяти (, потому что изображение заполняет кеш файловой системы своим содержимым ). Я ожидаю, что после успешной загрузки файлы, загруженные из initramfs, будут очищены, что позволит позже восстановить память, поэтому память будет потрачена только временно.

genkernelимеет множество различных опций для добавления/удаления различных функций. Например, если ваш корень находится на LVM2, вам нужно будет включить эту функцию, и она будет включать модули и утилиты пользовательского пространства, необходимые для монтирования LVM2. И любые модули для файловой системы, используемой вашим корневым разделом, скорее всего, будут обнаружены и включены.

Я не уверен, почему включены пять модулей. Я не думаю, что они необходимы в нормальной среде. Обычно initramfs используется для монтирования локального устройства и вообще не требует инициализации сети. Я посмотрел macvlan, и похоже, что он может использоваться в среде виртуализации гостевым ядром — если ваше ядро ​​загружается и делает что-то вроде сетевого монтирования, чтобы получить свое корневое устройство, это может иметь смысл. Некоторая сетевая загрузка может быть функцией initramfs, но я ожидаю, что она будет необязательной и может быть отключена.

1
18.03.2021, 22:32

Теги

Похожие вопросы