メインシステムの起動手順netconsoleと同様に、initrdステージでモジュール(たとえば、)を明示的にロードします/etc/modules。
まず、システムのinitrdに必要なモジュールが既に含まれていることを確認しました(付録を参照)。
私は調べました/initrd.img(これは圧縮されたcpioアーカイブですので、簡単に見てみるためにをzcat /initrd.img > initrd.cpio使ってその中に入りましたmc)。modprobeスクリプト間での呼び出しを探しましたが、モジュールが/conf/modules(/ここではinitrdのルートである)にload_modules()から/scripts/functions呼び出された/init)関数によって自動的にロードさ。
しかし/conf/modules、initrd を更新するためのUbuntuシステムの標準ツールは何でしょうか?
(ところで、Ubuntuのinitrdのコードの研究中に、いくつかの特別なサポートがあることに気付きました netconsoleに、/initスクリプトに私のニーズに合わせて機能するかもしれませんが、とにかく、私の質問は他のカスタムモジュールに関してより一般的です)
付録
上記で述べたように、まず、システムのinitrdに必要なモジュール(つまり、netconsole)が既に含まれていることを確認しました。こうやって:
# 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
#
また、必要なネットワークドライバーが既に含まれていることも確認しました。
# 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
#
lsinitramfs含まれるコマンドinitramfs-toolsとほぼ同じことを行いzcat /initrd.img ..ます。