LinuxカーネルをコンパイルしてUEFIで起動する

LinuxカーネルをコンパイルしてUEFIで起動する

私は最近、KubuntuコンピュータにLinuxカーネルをコンパイルしてインストールしました。私がこれを行ったのは、kernel.orgからソース.tar.gzをダウンロードして解凍した後、次のコマンド(ソースパッケージの最上位ディレクトリで実行)を使用してコンパイルしてインストールすることです。

make oldconfig
make -j4
sudo make modules_install
sudo make install

ただし、再起動時に「エラー:メモリ不足」というメッセージが表示され、続行するためにキーを押したときに「同期されていません:VFS:不明なブロックマウントルートファイルで実行できませんでした」というカーネルパニック画面が表示されました。システムは(0,0)」です。

他のコアはうまく機能するため、まだ起動できます。しかし、私はなぜこのカーネルが機能しないのか、そしてカーネルを動作させるために何ができるのかを知りたいのです。

複数のバージョン(5.9.12、5.9.14、5.10.2)を試しましたが、同じ結果が得られたので、ここでは正確なバージョンが問題にならないようです。しかし、私は以前にこのようなカーネルをコンパイルしたことがあり、問題なく実行されたことを知っています。それで、これを試してみたところ、結局UEFIが原因のようだということを発見しました。この同じカーネルを古いシステムにインストールすると機能します。問題の(UEFI)PCでセキュアブートが無効になっているので、これはセキュアブートキーとは関係がないと思います。これは UEFI に関連しているように見えますが、セキュアブートではないように見え、これがクラッシュします。

しかし、インターネットの検索中にUEFIを使用してコンパイルされたLinuxカーネルを起動する方法に関する情報が見つかりませんでした。それでは、実際に追加の作業を行う必要がありますか?それとも別の問題があるのでしょうか?

編集する:私の質問がなぜ終了したのかわかりません。しかし、より明確な説明が必要な場合は、次のように質問します。 kernel.orgからLinuxカーネルソースコードをダウンロードするか、ここからUbuntuカーネルをビルドするコードをダウンロードする場合(https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.4/)上記のコマンドを使用してコンパイルした結果、BIOSでは正しく起動されますが、UEFIでは起動しないことがわかりました。私の質問は理由です。

ベストアンサー1

sudo update-initramfsはトリックを実行する必要があります。

おすすめ記事