コンソール出力のみを提供するようにQEMUをセットアップしようとしています。これまでのところ、次のパラメータで成功しています:qemu-system -curses -hda debian.img
、ここでdebian.imgは動作中のDebianインストールです。他のブート関連パラメーターは使用されません。 (N)Cursesは、この目的ではひどくバグがあり、遅いようですが、少なくともmacOSホストでは。
-serial stdio -append "console=ttyAMA0"
の代わりに-curses
を使用することで、qemuが起動される端末へのコンソールの非GUI出力を実現するためのより良い方法を見つけました。ただし、このオプションでは、-kernel
パラメーターを使用してカーネルを指定する必要があります。 qemuに提供できる既存のDebianインストールから起動可能なカーネルを抽出する方法はありますか?すでに/boot
からvmlinuxをコピーしようとしましたが、 このガイド に従ってOSからカーネルを抽出しましたが、既存のdebian.imgファイルを使用してQEMUで起動しません。 OSからqemuにもinitrd.imgを提供する必要があると思います。
さて、-kernel
パラメーターを使用してそのイメージ(または必要に応じて他の場所)から(抽出された)カーネルをqemuに渡しながら、完全に機能するOSで既存のdebian.imgファイルを使い続けることは可能ですか? (そしてinitrd.imgファイルについても同じ質問です)debian.imgファイルのゲストOSはDebianJessyです。
(-kernel
QEMUオプションを介して)直接カーネルブートを使用する場合は、ほぼ確実に-initrd
も提供する必要があります。それらは、実行中のエミュレートされたシステムの/boot
ディレクトリからコピーできます。または、losetup
とkpartx
を使用して、イメージファイルのパーティションをマウント可能にします(必ずアンマウントしてください)。エミュレートされたシステムを再度起動する前に)。通常、-append "root=/dev/sda2 console=ttyAMA0"
なども行う必要があります。
別の方法は、必要なカーネルパラメーターをイメージのブートローダー構成に追加することです。柔軟性は劣りますが、実際には-append
のすべての柔軟性が必要なわけではありません。 console
パラメータを実際のブートメニューに埋め込むには、update-grub
などを実行する必要がある場合があります。起動したシステムでcat /proc/cmdline
を実行して、実際に有効かどうかを確認します。
どちらの場合も-serial stdio
が必要ですが、グラフィカルウィンドウが不要になったら、-nographic
に置き換えてください。