Linuxで起動し、自動化スクリプトを実行し、自動的にWindowsから起動する必要があるアプリケーションがあります。 Kexecを使ってgrubを実行できますか?
別のユースケースは、Linuxカーネルを起動してプロセッサのマイクロコードを更新し、kexec
GRUBまたはSyslinuxを起動してWindowsを起動することです。なぜなら、マイクロコードは完全な再起動後も維持されないからです。
聞いたgrub4dos
(リンク(使用できません)、アーカイブバージョン)、ところで廃止されたようですが、GRUB2を使ってできる方法はありますか?
デフォルトではロード可能なGRUBイメージが必要ですkexec
。ここで見つけた画像を読み込もうとしています。説明するしかし、うまくいかないようです。どんなヒントでもくれてありがとう。
注:見つかったこの投稿2014年現在、kexecではこの機能は実装されていません。
ベストアンサー1
これはWindowsでは可能ですが、kexec
せいぜい実験的なようです(完全にはテストされていません)。
幼虫
kexec
grub自体では不可能ですcore.img
(互換性のあるバイナリ形式がないようです)。Launchpadのバグレポート。上記のエラーはまだ再現できます。
kexec -l /boot/grub2/i386-pc/core.img
によると、kexec --help
現在、次のタイプがサポートされています。
elf-x86_64
multiboot-x86
multiboot2-x86
elf-x86
bzImage64
bzImage
beoboot-x86
nbi-x86
他のローダーをロードするには、これらの形式のいずれかを使用する必要があり、そうでない場合は互換性を追加する必要があります。 GRUBがどの形式を使用しているのかわかりません。簡単なfile
コマンドで以下を生成します。
/boot/grub2/i386-pc/core.img: data
起動可能なGRUBイメージの作成
現在、次の可能性があるようです。
grub2-mkimage
- 部分
core.img
(kernel.img
) - 一緒にまとめられて一緒に維持され
lnxboot.img
ましたcore.img
。 @Ardwenaの回答を参照してください。 lnxboot.img
カーネルとcore.img
as.tipは以下initrd
にあります。アーチスウィキそしてgrub開発者メーリングリストの古いスレッド。
ブートローダー
lnxboot.img
Linux kernel x86 boot executeable bzImage
カーネルにロードすることを意図しているようです。
その後、syslinux/isolinux/pxelinux/lilo または Linux カーネルをサポートする他のブートローダから grub2.bin をロードできます。
Kexecはそれをロードしますが、実行時に競合が発生します。
kexec -l /usr/lib/grub/i386-pc/lnxboot.img --initrd=/boot/grub2/i386-pc/core.img --debug
また、ロード時に問題があるようです(デバッグ出力の最初の数行)。
Try gzip decompression.
Try LZMA decompression.
lzma_decompress_file: read on /usr/lib/grub/i386-pc/lnxboot.img of 65536 bytes failed
[...]
Grub4Dos
Grub4Dosを簡単に見てください:
# file grub.exe
grub.exe: Linux kernel x86 boot executable bzImage, version \353kHdrS\003\002, RO-rootFS, Normal VGA
これは互換性があることを意味します。これはレガシーソフトウェアなので、私にとってはオプションではありません。
grub4dos
しかし、ダウンロードを通じて0.4.4
ロードできました。ソースフォージ次に、次を実行します。
kexec -l grub.exe
kexec -e
設定されていない場合は、しばらくしてGrub Shellに戻ります。使用したい場合は、必要に応じてgru4dos
調整してください。cmdline
このスレッドそれでも適用する必要があります。
Windows
Kexec
Windowsは単なる文章のようには見えないかもしれませんが、以前にすでに完了しました。
この方向の作業のほとんどは、以下に関連しているようです。Linuxブートプロジェクト。ジタブ
私はこれらを見つけましたスライドショーこのgithubリポジトリ。このアイテムを機能させるために記事に記載されているようです。
可能に見えますが、作業がたくさん必要です(そして「生産準備」が可能な解決策はありません。少なくともまだ見つかりませんでした)。残念なことに、LinuxBootに関するドキュメントはあまりないと思われるので、開発者に連絡する必要があるかもしれません。これを行うより直接的な方法がすでに存在する可能性があります。