メインシステムの起動手順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 ..
ます。