mknodステップ中にカスタムカーネルが起動しないのはなぜですか?

mknodステップ中にカスタムカーネルが起動しないのはなぜですか?

Ubuntuでカスタムカーネルを構築したいです。新しいカーネルを構築して構築しました。新しいカーネルにはinitrdがなく、バニラソースから来ます。私は必要なドライバだけでこの新しいモノリシックカーネルを構築しました。

新しいカーネルを起動しようとすると、この段階で停止しますmknodmknodたとえば、/dev/sda1 /dev/vca4ルートパーティションが読み取り専用でマウントされているため、失敗します。

問題は、私のハードウェアに何かが欠けているということです。デフォルトのUbuntuカーネルで起動しても問題はありません。なぜこれが起こるのかを理解するのに役立つ人はいますか?

答え1

起動時に、ルートファイルシステムはほぼ常に読み取り専用でマウントされ、fsck実行できます。完了すると、ルートファイルシステムは通常、次のコマンドを使用して読み書き用に再マウントされます。

mount / -o remount,rw

しかし、Ubuntuを使用しているので、カーネルのコンパイルはこれよりはるかに簡単です。まだ使用していない場合は、kernel-packageカーネルのコンパイルに使用することをお勧めします。パッケージとカーネルソースをインポートして解凍し、次のように言います。

make-kpkg -j3 --initrd binary

これにより、.deb通常の方法でインストールできるパッケージが構築されます(dpkg -i SOME-FILE.deb)。

答え2

devtmpfsまたは、tmpfsインストールして/dev管理する必要がありますudev。したがって、ディレクトリは状態に関係なく書き込み可能です/。 Ubuntuでは通常、initramfsによって設定されます。カーネルを使ってビルドしてロードしましたか?

関連情報