1

initramfs イメージから起動する組み込み Linux (vanilla、3.3.8、i486、Vortex86dx) システムがあります。

/dev/hda1 と /dev/hda2 に 2 つのパーティションを持つ IDE フラッシュ ディスクがあります。

静的な /dev ディレクトリがあります。

起動すると、/dev/hda1 エントリはもう存在しません。/dev/hda1 はカーネルによって削除されたようです (?)。

NFS ルート ファイリング システムからターゲットを起動する場合、これと同じ問題は発生しません。

Buildroot を使用して、device_table_dev.txt ファイル経由で /dev ディレクトリを作成します。例えば

# IDE Devices
/dev/hda    b   640 0   0   3   0   0   0   -
/dev/hda    b   640 0   0   3   1   1   1   4

Buildroot の出力/イメージから rootfs.tar.gz を調べました。/dev ディレクトリには /dev/hda1 が含まれています。

brw-r-----  1 root root  3,   0 Jul  2 13:44 hda
brw-r-----  1 root root  3,   1 Jul  2 13:44 hda1
brw-r-----  1 root root  3,   2 Jul  2 13:44 hda2
brw-r-----  1 root root  3,   3 Jul  2 13:44 hda3
brw-r-----  1 root root  3,   4 Jul  2 13:44 hda4

ターゲット上のブート後のディレクトリ リスト (rcS 内から作成) は次のようになります。

brw-r-----   1 root   root    3,   0 Jul  2 12:44 hda
brw-r-----   1 root   root    3,   2 Jul  2 12:44 hda2
brw-r-----   1 root   root    3,   3 Jul  2 12:44 hda3
brw-r-----   1 root   root    3,   4 Jul  2 12:44 hda4

/dev/hda1 がありません。

Busybox ユーティリティ "mdev -s" を実行すると、ターゲットで /dev/hda1 が復元され、正常に動作します。たとえば、マウントできます

誰もこの行動を見たことがありますか?

カーネルは /dev からエントリを削除しますか?

4

2 に答える 2

0

おそらく、初期スクリプト (/etc/init.d/ 、 /etc/inittab) をチェックして、/dev/ ファイル システムを再マウントするかどうかを確認する必要があります。再マウントすると、 /dev/エントリが削除される可能性があります。

「mdev -s」はコールド プラグ イベントをトリガーし、エントリを再作成しました。

于 2012-07-13T05:41:50.687 に答える