Voglio caricare esplicitamente un modulo (diciamo, netconsole) durante la fase initrd, in modo simile alla /etc/modulesprocedura di avvio del sistema principale.
Innanzitutto, ho verificato che initrd nel mio sistema contenga già il modulo desiderato (vedere Appendice).
Ho esaminato /initrd.img(che è un archivio compresso di cpio, quindi per dare una rapida occhiata, l'ho fatto zcat /initrd.img > initrd.cpioe ci sono andato dentro mc). Ho cercato eventuali invocazioni modprobetra gli script e ho capito che i moduli elencati in /conf/modules(qui /è la radice di initrd) vengono caricati automaticamente dalla load_modules()funzione da /scripts/functions(chiamato da /init).
Ma quale sarebbe lo strumento standard nel sistema Ubuntu per l'aggiornamento /conf/modulesdi initrd?
(A proposito, durante il mio studio del codice di Ubuntu di Ubuntu, ho notato che c'è qualche supporto speciale netconsolenello /initscript, che potrei fare funzionare per le mie esigenze, ma comunque, la mia domanda è più generale, riguardante qualsiasi altro modulo personalizzato .)
Appendice
Come ho detto sopra: in primo luogo, ho verificato che initrd nel mio sistema contenga già il modulo desiderato (ovvero, netconsole). Questo è come:
# 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 ho anche verificato che contiene già il driver di rete necessario:
# 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
#
lsinitramfsincluso ininitramfs-toolsfa quasi lo stesso delzcat /initrd.img ..comando illustrato qui.