Linuxカーネルを実行する方法は?

Linuxカーネルを実行する方法は?

ロバートラブの本を読んでいます。Linuxカーネルの開発Linuxカーネル開発の詳細については!

しかし、第2章:カーネルを始める、カーネルをダウンロードしてインストールするように指示されました。これは私を混乱させる。 「カーネルを作るのは簡単だ」と彼は言った。しかし、Linux環境にLinuxカーネルをインストールするという考えは私には理解できません。まるでこの新しいLinuxを仮想的に実行しているかのように?

彼が出した措置は次の通りである。カーネルのソースコードを取得

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
$ git pull

それから圧縮されたパッケージを解凍する(GNU zipの場合は2つの方法がありますが、ここではbzip2の方法です)、

$ tar xvjf linux-x.y.z.tar.bz2

そしてそこであなたはカーネルビルドmakeなどを実行してmenuconfigdeconfigoldconfig

だからあなたは新しいカーネルのインストール。彼はインストールが「アーキテクチャとブートローダーによって異なります」と説明し、「カーネルイメージをコピーする場所の[マイ]ブートローダーの指示を確認してください。」次に、イメージをコピーして実行する方法の例を提供しました。

$ make modules_install

その後、この章ではカーネルインストールチュートリアルを続行しません。

これが私が迷子になった場所です。私はこれまですべてのコマンドを知っています。 (私は数年間Fedoraを使用してきました。など)が、既存のLinux環境にLinuxカーネルを「インストールする」という概念を理解していません。ここで何が起こっているのか(後で詳しく説明するかもしれません)、実際にカーネルを実行する方法についての説明はありません。新しいハードドライブに入れる必要がありますか?仮想マシンのように実行されていますか? BIOSで特定の起動オプションを選択しますか?実際にどのように実行しますか?このステップはこの章、3章、4章にはありません。

答え1

make installカーネルイメージを/bootディレクトリにコピーするだけです。 make modules_installモジュールを/lib/modules/kernel-version/にコピーします。最近、ほとんどのLinuxディストリビューションはgrubで起動するため、実行してupdate-grub/bootで新しいカーネルイメージを確認し、そのカーネルから起動することを選択できるように、そのブートエントリをgrub設定ファイルに追加する必要があります。通常、起動ハードウェアといくつかの起動スクリプトにアクセスするために必要なモジュールを含むinitrdも必要です。少なくともDebianベースのディストリビューションではupdate-initramfs -k kernelversionbeforeを実行して作成できますupdate-grub

関連情報