Quero carregar explicitamente um módulo (digamos netconsole) durante o estágio initrd, da mesma forma que /etc/modulesno procedimento principal de inicialização do sistema.
Primeiro, verifiquei se o initrd no meu sistema já contém o módulo desejado (consulte o Apêndice).
Eu examinei /initrd.img(que é um arquivo cpio compactado, para dar uma rápida olhada nele, eu fiz zcat /initrd.img > initrd.cpioe entrei nele mc). Procurei por invocações modprobedentre os scripts e descobri que os módulos listados em /conf/modules( /é a raiz do initrd aqui) são carregados automaticamente pela load_modules()função de /scripts/functions(chamada por /init).
Mas qual seria a ferramenta padrão no sistema Ubuntu para atualizar /conf/moduleso initrd?
(BTW, durante meu estudo do código do initrd do Ubuntu, notei que há algum suporte especial netconsoleno /initscript, que eu poderia fazer para atender às minhas necessidades, mas, de qualquer forma, minha pergunta é mais geral sobre qualquer outro módulo personalizado .)
Apêndice
Como eu disse acima: primeiro, verifiquei se o initrd no meu sistema já contém o módulo desejado (ou seja, netconsole). É assim:
# zcat /initrd.img | cpio --extract --verbose --list | fgrep netconsole
-rw-r--r-- 1 root root 25372 Aug 31 20:59 lib/modules/3.19.0-28-generic/kernel/drivers/net/netconsole.ko
109504 blocks
#
E também verifiquei que ele já contém o driver de rede necessário:
# ls -ld /sys/class/net/eth0/device/driver
lrwxrwxrwx 1 root root 0 Sep 21 15:34 /sys/class/net/eth0/device/driver -> ../../../../bus/pci/drivers/sky2
# zcat /initrd.img | cpio --extract --verbose --list | fgrep sky2
-rw-r--r-- 1 root root 92948 Aug 31 20:49 lib/modules/3.19.0-28-generic/kernel/drivers/net/ethernet/marvell/sky2.ko
109504 blocks
#
lsinitramfsincluído eminitramfs-toolsfaz o mesmo que ozcat /initrd.img ..comando ilustrado aqui.