Linuxでブートローダを実行する方法は?

Linuxでブートローダを実行する方法は?

Linuxから別のシステム(現在の要件に合った起動可能なCD)で再起動したいと思います。
現在、ブートローダを変更したくないし、BIOS設定も変更したくない。

一部のLinux CDはWindowsで実行できます(Windowsが停止し、LinuxがCDで実行されます)。
Linuxで同じことをどのように実行できますか?

答え1

grub4dos次のコマンドを実行できますkexec

    kexec -l grub.exe
    kexec -e

これにより、Grub4dosをCDから起動できます。

    cdrom --init
    cdrom --hook
    chainloader (cd0)
    boot

のスニペットGrub4dos チュートリアル

答え2

あなたはそれで何かを操作することができますkexec

はい、kexecカーネルを起動するためのものですが、kexec必要なバイナリ(ライブラリや既存の実行中のオペレーティングシステムに依存せずに実行するように設計された「静的にリンクされた」バイナリ)で「実行」を防ぐことはできません。プリブート条件で実行されている場合)ブートローダまたはでもmemtest86度- このページでは、あなたが落ちる可能性のあるいくつかの落とし穴について説明します。たとえば、テキストモードブートローダの場合は、実行する前にテキストモードに戻す必要がありますkexec

kexec-toolsコマンドを実行する前にテキストモードに戻すなど、通常のシャットダウンのほとんどすべての手順を実行するDebianまたは他のプログラムを使用している場合kexec

ディスクまたはディスクイメージを起動できませんが、kexecCDからブートローダを抽出してkexecに渡すことができます。ブートCDがドライブにあると、なぜ動作しないのかわかりませんが、まだ試していません。

RAMに.isoを解凍し、ブートローダが知らない間に.isoのブートローダを実行することは技術的に可能ですが、非常に困難です。私はこれを行うどのユーティリティも知らず、どのユーティリティも存在するとは信じていません。

関連情報