ファイルシステムから直接qemu / kvmを起動する

ファイルシステムから直接qemu / kvmを起動する

pygrubしばらくXenとXenを使用した後、KVM / qemuを使用して同様の操作を実行したいと思います。

デフォルトでは、Linuxディストリビューションのルートファイルシステム(パーティションなし、ディスクに直接FSのみを含む)を含むLVM論理ボリューム(ファイルかもしれません)があります。これには/boot/grub/grub .cfgも含まれています。起動できるようにしたいです。

私はDebian / Ubuntuのgrub-firmware-qemuパッケージがそれのために設計されているという印象を受けましたが、まだ機能していません。 AFAICT、grub.binイメージには、grub.cfgファイルといくつかのメニューオプション(multiboot.img検索やgrub.cfg検索など)を含むハードコードされたメモリディスクが含まれていますが、実行時に取得するのはkvm -bios grub.bin「互換性のないライセンス」です。だけです。 "エラーメッセージ。そして、他のgrub.cfgを使用して別のgrub.cfgを生成する方法がわかりませんgrub.bin(これが唯一の方法ですconfigfile (hd0)/boot/grub/grub.cfg)。

もちろん、これを行うには最小限のグラブ構成を使用してフロッピー、CDROM、またはディスクイメージを作成できますが、これを行うためのよりクリーンで正式な方法が必要であると思います。

私はqemuのオプションを使うこともできると思いますが、もう一度これを生成する-kernel方法がわかりません。 (grub.img生成されたgrub.imgと同じgrub-mkimage -O i386-pc -o grub.img -c =(echo 'configfile (hd0)/boot/grub/grub.cfg') /usr/lib/grub/i386-pc/*.mod「互換性のないライセンス」エラーメッセージが再表示されます)。

これは Debian にあり、grub パッケージのバージョンは 1.99-23、kvm/qemu のバージョンは 1.1.2+dfsg-2 です。

つまり、仮想ディスク上の/boot/grubを確認するためにkvm起動を有効にするgrub image/grub.cfgをgrub.bin(で使用kvm -bios)またはgrub.img(で使用)作成するにはどうすればよいですか?kvm -kernel

ベストアンサー1

偶然にもDebianから来たようですgrub

-kernel grub.img必要なgrubモジュールのみを含めると機能しますgrub-mkimage

-bios grub.bin最新のグラブパッケージ(2.00-7)で動作します。experimentalしかし、grub.bin付属のものはあまり役に立ちません。

このメモリディスクを使用してモジュールを保存し、オプションを使用して指定することをお勧めmemdiskします。例えば、メニュー項目の1つは、メモリディスクを検索してそれ自体を探す。さらに、Debianパッケージにはqemu grubモジュールが含まれていないため、ソースパッケージからビルドしない限り他のgrub.binをビルドすることはできません(ファイルをバイナリ編集してgrub.cfgを変更することはできますが)。grub.cfggrub.cfg-cgrub-mkimage/boot/grub/grub.cfg

この-bios grub.bin方法は私にとって最もきれいに見えますが、-kernelDebianパッケージが修正されるまでフロッピー方法を使います。

編集するata.modグラップモジュールは、BIOSbiosdisk.modで使用するときよりもはるかにゆっくりエミュレートされたIDEドライブを読み取ります(使用していないときのデフォルトのBIOS)。また、grubファームウェアはvirtio-blkまたはvirtio-scsiディスクをサポートしていないようですので、私の選択ではありません。seabios-bios grub.binkvm -bios grub.bin

誰もがこのパスに行きたい場合は、現在の(zsh構文)を使用してください。

grub-mkimage -O i386-pc -c =(print -l serial 'terminal_input serial' \
  'terminal_output serial' 'set prefix=(hd0)/boot/grub' '. grub.cfg') -o grub.img \
  at_keyboard configfile biosdisk ext2 linux test serial halt minicmd terminal cat

-kernel grub.img -nographickvmに行きました。つまり、グラフィックなしでLinux VMを起動します(シリアルインタフェースのみなので、VMのグラブがシリアルを使用するように設定されているか、少なくともグラフィックを使用するように設定されていないことを確認し、カーネルコンソールがttyS0に移動してそこからgettyを実行します)。また、VGAコンソールにも簡単に適用できます。

おすすめ記事