他のプログラムをインストールせずに、既存のシステム上にカーネルをインストールまたはアップグレードできるかどうかを尋ねる場合はどうでしょうか?
Linuxカーネルは通常vmlinuz-x.x.x-x-name
、boot
ディレクトリ(通常はハードドライブの先頭にある個別の小さなパーティション)で名前が付けられたバイナリファイルです。xはバージョン番号です。「名前」は、コンパイル時に設定できるカーネルの単なる選択名です。これを使用して、カーネルがどのタイプのマシンまたはアーキテクチャであるか、またはその他の理由を特定できます。
ブート時にブートローダーによってロードされます。通常、ブートローダーGRUB
はBIOS ROMによって呼び出されるMBRのブートコードによって呼び出されます。一度読み込まれると、「開かれたまま」になったり、特別に保護されたりすることはありません。そのため、そのファイルを別の動作中のカーネルに置き換えることができます。しかし、GRUB
起動する複数のカーネルを選択できるクールな機能があります。したがって、追加のカーネルをそのリストに追加するのはかなり賢明ですが、問題が発生した場合に備えて、元の既知の動作中のカーネルを保持します。
私が信じるほぼすべてのディストリビューションは、デバイスドライバーが個別のファイルにある「モジュラー」カーネルを作成します。そのため、ほとんどのカーネルには、ブート時に使用可能なドライバーを含むファイルシステムが必要です。これが「initrd」(初期RAMディスク)または「initramfs」の目的です。 GRUB
カーネルをメモリ内の場所にロードし、initrdを別の場所にロードし、カーネルにジャンプしてinitrdの場所を通知し、Linuxを起動します。
ドライバーはカーネルに「組み込む」こともできるため、ブートローダーがvmlinuz
イメージをロードすると自動的にロードされ、使用可能になります。使用可能なハードウェアはブートプロセスの後半でスキャンされ、現在のハードウェアを表すモジュールのみがロードされるため、通常、さまざまなシステム(ほとんどのディストリビューションのシステムなど)で動作するカーネルは、カーネルに組み込まれるものを最小限に抑えます。
initrdを変更および作成するツールがあります。Debianには便利なツールがあり、他のディストリビューションにも同様の機能があると思います。
したがって、kernel.orgから最新のカーネルをダウンロードしてコンパイルし、新しいカーネルバイナリイメージを作成する場合、そのカーネルで動作するドライバーでinitrdを作成または更新する必要があります。ドライバーは実行中のカーネルのバージョンと一致する必要があるため、古いinitrdは機能しません。
initrdファイルはinitrd.img-x.x.x.x-name
カーネルと同様の名前が付けられており、ブート後にカーネルと同じように置き換えることができます。ベストプラクティスでは、新しいkernel + initrdを正常にブートできることがわかるまで、既知の動作中のinitrdを削除しないことを示します。
何らかのコンテキストが提供されることを願っています。
追加のプログラムがほとんどまたはまったくインストールされていない "barebones" Linuxインストールを探している場合、私のお気に入りは常にDebian netinst
イメージのインストールです。ほとんどの場合、コマンドラインテキストコンソールをnano
テキストエディターとして実行するために必要な最も基本的なツールしかありません。