Saya ingin memuat modul secara eksplisit (katakanlah, netconsole) selama tahap initrd, mirip dengan /etc/modulesdalam prosedur startup sistem utama.
Pertama, saya memeriksa bahwa initrd di sistem saya sudah berisi modul yang diinginkan (lihat Lampiran).
Saya telah melihat ke dalam /initrd.img(yang merupakan arsip cpio terkompresi, jadi untuk melihat sekilas ke dalamnya, saya telah melakukan zcat /initrd.img > initrd.cpiodan masuk ke dalamnya dengan mc). Saya telah mencari setiap doa di modprobeantara skrip, dan telah menemukan bahwa modul yang terdaftar di /conf/modules( /adalah initrd's root di sini) secara otomatis diambil oleh load_modules()fungsi dari /scripts/functions(dipanggil oleh /init).
Tetapi apa yang akan menjadi alat standar dalam sistem Ubuntu untuk memperbarui /conf/modulesinitrd?
(BTW, selama studi saya tentang kode initrd Ubuntu, saya melihat bahwa ada beberapa dukungan khusus untuk netconsoledi /initscript, yang saya mungkin membuat pekerjaan untuk kebutuhan saya, tapi tetap, pertanyaan saya adalah lebih umum, mengenai modul kustom lainnya .)
Lampiran
Seperti yang saya katakan di atas: pertama, saya memeriksa bahwa initrd di sistem saya sudah berisi modul yang diinginkan (yaitu, netconsole). Begini caranya:
# 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
#
Dan saya juga memeriksa bahwa itu sudah berisi driver jaringan yang diperlukan:
# 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
#
lsinitramfstermasuk dalaminitramfs-toolsdo kira-kira sama denganzcat /initrd.img ..perintah yang diilustrasikan di sini.