私はinitrdについて何かを学ぼうとしています。私はこのチュートリアルに従って自分のinitrdをゼロから構築し、それにbusyboxをインストールしました。次に、isolinuxを使用して.isoを作成し、virtualboxでテストできるようにしました。それはうまくいきます!
私はbusyboxからの基本的なコマンドを持っているので、ファイルシステムをマウントしたいと思いました。しかし、チュートリアルに従って作成した一部のファイルを除いて、/ devディレクトリはほとんど空です(sdaなし)。私はudevについて学び、これが私が必要としていることだと思います。しかし、私はこれをどう進めるかわかりません。
udevから最新のソースコードを取得してコンパイルし、initrdに追加する必要がありますか?そして、私のinitスクリプトで/ bin / udevまたはそのようなものを呼び出しますか?または、/ devディレクトリにデータを追加する他の/より良い方法はありますか?
編集:追加情報と私がすでに行ったことに関する更新。
- 私は仮想ボックスですべてをテストします。私は仮想ボックスにubuntuミニマルをインストールし、initrdから.isoを作成して、virtualboxのisoから起動しました。
- 私はvmlinuzを使用し、
/lib/modules
それはdebian-businesscard.isoに存在し、以前にリンクしたチュートリアルに従って作成したinitrdにそれらをコピーしました。 - カーネルは
CONFIG_DEVTMPFS=y
/dev
tty0〜tty63など、一部のデバイスはに表示されますが、sda / hdaは表示されません。- 蘭
lspci -k
私の現在実行中のOSで仮想ボックスでは使用されているモジュールを確認してください。モジュールとしてSATA Controller
使用すると言いahci
ます。 - 私は実行すると
modprobe -v ahci
、それの後に、それはのようなものを返します。それは「ata_some_stuff未知のシンボル」について多くのことを不平を言うSCSI Subsystem initialized
、ATA-6: VBOX HARDDISK
とDirect-Access ATA VBOX HARDDISK
。ただし、まだハードドライブデバイスが見つかりません/dev
。
私の現在の/init/
スクリプトは次のとおりです:
#!/bin/ash
mount -t devtmpfs none /dev
mount -t proc /proc /proc
mount -t sysfs none /sys
modprobe -v ahci
echo "Hello world"
exec /bin/ash --login
誰かが私が間違っていることと代わりに何をすべきかについて何か考えを持っていますか?