kexec(8) - Linux のマニュアルページ

kexec(8) - Linux のマニュアルページ

私はこのスキルを学び、理解する方法を探しています。これは私が言わなければならないでしょう:

  • Slaxが起動し、{RAMに自分自身をコピーするのと同じことを行います}transitions control to the kernel/file system it just made
  • SYSLINUXはFAT32 / NTFSシステムから起動して{作業を実行}してからboots into a kernel
  • ISOLINUXはCD / DVDから起動し、{作業を実行}します。boots into a kernel

これは名前がありますか? GRUBでチェーンローディングを使用するのと似ていますか?

  • GRUBが起動し、選択メニューをロードして選択します。チェーンローディング選択の場合passes control to something else

カーネルを使用してFAT32 / NTFSパーティションの.isoをRAMに抽出し、起動時にRAMドライブがあったかのようにRAMドライブから起動する方法を探しています。私がこれをする理由の詳細については、以下を参照してください。この問題

しかし、ここでは、コアが別のコアに「変換」される方法の詳細を要求しています。これは名前がありますか?私はそれについて聞いて、INT13hそれがGRUB /チェーンのロードに使用されると思います。これが「別のカーネルで再起動」技術ですか?そうでなければ、どのように達成されますか?

答え1

私の推測はこんな感じです。http://linux.die.net/man/8/kexec

kexec(8) - Linux のマニュアルページ

名前

kexec - 新しいカーネルで直接起動する

要約

/sbin/kexec [-v(--version)] [-f(--force)] [-x(--no-ifdown)] [-l(--load)] [-p(--load- )] [-u(--アンロード)] [-e(--exec)] [-t(--タイプ)] [--mem-min=addr] [--mem-max=addr]

説明する

kexecは、現在実行中のカーネルから別のカーネルをロードして起動できるようにするシステムコールです。 kexec はカーネル内でブートローダ機能を実行します。標準システムブートとkexecブートの主な違いは、kexecブート中にBIOSまたはファームウェア(アーキテクチャによって異なります)で通常実行されるハードウェア初期化が実行されないことです。これは再起動に必要な時間を短縮する効果があります。カーネルを設定するときにCONFIG_KEXEC = yが選択されていることを確認してください。 CONFIG_KEXEC オプションは kexec システムコールを有効にします。

答え2

Int 13 は割り込みです。具体的には、「13」はBIOS/ファームウェアディスクサービス/ APIへのエントリポイントであるため、ディスクの入出力にこの特定の割り込みを使用できます。 Int 9などだけでなく、他の割り込みもあります。割り込みは、実行コンテキストをプログラムからファームウェア/BIOS、OSドライバ/オペレーティングシステムなどに切り替えてファームウェアの助けを受ける方法です。 GRUBは、OSカーネルがメモリになく、独自のロード(ステップ1、1.5、モジュールなど)が必要なときにハードドライブからブートローダをロードする初期段階でINT 13を使用するため、GrubはデフォルトでBIOS /ファームウェアに依存します。 GRUBロード部分の操作を完了します。

ファイルシステムからISOをロードする最も簡単な方法は、GRUBループバック/ループモジュールを使用してISOを起動することです。 GRUBはハードドライブのMBRにインストールするのが最善です。コンピュータを起動すると、GRUBブートメニューでGRUBコマンドを入力して、ISOを含むファイルシステムからISOをロードし始めます。 ISOをRAMディスクに抽出するためにカーネルは必要ありません。 GRUBは他のカーネルに依存せずに、これらすべてを直接実行できます。

たとえば、Debian の場合、次のようになります。 insmod Loopback linux (hd0,1)/deb.iso/install.amd/vmlinuz initrd (hd0,1)/deb.iso/install.amd/initrd.gz boot

(GRUBが利用可能なモジュールとこれがEFI | BIOS起動であることを確認する必要があります)

チェーンロードはGRUB / Bootloaderを使用して別のGRUB / Syslinux / Bootloaderを起動して他のオペレーティングシステムをロードします。通常、次のことを行います。 GRUB-MBR--->vmlinuz ロードするには、次のようにします。

関連情報