私は Linux の非常に古いビルド (バージョン 2.4.0) を持っています。これは非常に特殊な古いハードウェア用なので、なぜこのような古いバージョンを持っているのかは聞かないでください。とにかく、問題は、コンパイルが成功した後にシステムを実行しようとすると、このメッセージが表示されることです。
カーネルパニック:ルート権限がないので叫びたい
問題は、おそらく初期 RAM ディスク (initrd) 生成技術によって生成された「ルート ファイルシステム」が必要であるということのようです。どうすればこれを修正できますか?
答え1
カーネルに起動に必要なすべてのドライバーとファイルシステムのサポートが含まれている場合、initrd は必要ありません。ただし、root=
カーネル パラメーターを使用して、ルート ファイルシステムがどこにあるかをカーネルに伝える必要があります。例root=/dev/sda1
:
答え2
rootfs を「作成」する必要はありません。カーネルが initrd なしで起動された場合、ルート デバイスにアクセスするために必要なドライバーを使用して init をコンパイルする必要があります。どのデバイスが使用されるか (デフォルトでは) はカーネルにハードコードされています。これはカーネル コマンド ラインで上書きできます。例root=/dev/sda2
:
initrd を使用する場合、initrd は自動的に rootfs になり、initrd プロセスは後で実際の rootfs に chroot します (カーネル パラメータと、場合によってはいくつかのデフォルトを使用)。