要約:
Ubuntuを実行している実際のマシンで作成したディスクイメージを使用してQEMUを起動したいです。イメージを作成してQEMUを実行しようとすると、VMは「ハードディスクから起動」状態で中断されます。
詳細説明
標準のUbuntu 20.04.3がインストールされているx86_64デスクトップコンピュータがあります。デフォルトでは、GRUBも1TiB HDDのブートローダとしてインストールされます。ディスクには、GPT、EFIパーティション、およびext4パーティション(〜50GiB)があります。システムが稼働して稼働しており、完全に動作します。ライブUSB経由で実行しながら、ブートディスク全体の生の画像を作成しました。 imageを呼び出してみましょうae.img
。
リモートコンピュータで以下を実行して画像を作成しました。
ssh root@<IP> "dd if=/dev/sda bs=100M status=progress | xz -T 8 -1" | unxz | cp --sparse=always /proc/self/fd/0 ae.img
ネットワーク経由でデータを圧縮する/を無視すると、xz
実際にディスク全体を読み取り、ネットワーク経由で転送してスパースファイルに書き込みます。実行中のライブUSBの場合はHDDです。私はイメージのパーティションテーブルを確認し、実際のext4パーティションをループバックデバイスとしてマウントしてデータを確認しました。unxz
dd
ae.img
cp
/dev/sda
fdisk
挑戦:
QEMUを使用する他の(ほぼ同じ)システムでこのディスクイメージで仮想マシンを実行したいと思います。このイメージをQEMUのドライブとして指定すると、そのイメージから起動しようとした後にGRUBブートローダーを起動するなどの操作が実行されることがあります。同じままにするためにビデオ出力として実行してみました。私が使用するコマンドは次のとおりです。
-m 4G \
-machine type=q35,accel=kvm \
-smp 4 \
-drive format=raw,file=ae.img \
-cpu host \
-display default \
-vga virtio \
-show-cursor
画像をドライブとして指定し、vgaディスプレイ、4GB RAM、4コアを提供しました。それだけで十分です。このコマンドを実行すると、以下のQEMUウィンドウが表示されます。ブートが続行され、もはや進行しません。htop
レポートによると、QEMUはコアを100%消費しており、1つのバーは50%青(低優先順位プロセス)と50%赤(カーネル)です。
何が起こっているのか、どのように診断しますか?提案された修正はありますか?
ベストアンサー1
ちょうど調べました。
一般化する
QEMUはデフォルトでBIOSを使用して起動します。これは、UEFIを使用して起動する実際のシステムとは対照的です。 UEFIとBIOSには異なるディスク構成が必要です。 UEFIシステムのディスクイメージは、BIOSを使用して起動されたQEMUでは機能しません。
修正:追加オプション-bios /usr/share/ovmf/OVMF.fd
OVMFは正しいファームウェアを提供します。
より詳細な答え
から引用オペレーティングシステムの開発「レガシーBIOSは、ブートデバイスのMBRから物理アドレス7C00のメモリに512バイトのフラットバイナリブロブをロードし、その場所にジャンプします。」これには、実際のUEFIディスクにランダムなデータが含まれて停止することがあります。