web-dev-qa-db-ja.com

「制限を削除するには、「raw」形式を明示的に指定してください」を解決する方法。 qemuで?

MACBOOK Proでhelloos.imgを実行しようとしていますが、プログラムでも正常に動作します。

Specify the 'raw' format explicitly to remove the restrictions.

これにどう対処するか?これは重要ですか? enter image description here

6
LinconFive

この警告の理由は、QEMUがディスクイメージのフォーマットをrawとして自動的に推測しているためです。これを行う際の問題は、ゲストがrawイメージ全体に書き込むことができた場合、QCOW2ディスクヘッダーをrawイメージの先頭に悪意を持って書き込む可能性があることです。つまり、VMが再起動されたQEMUは、イメージタイプを誤って推測し、結果が悪い可能性があります。これを防ぐために、QEMUは、ゲストがプローブされたraw形式のイメージの先頭に書き込むことを許可しません。たとえば、ゲスト内からディスクを再パーティション化しようとすると、失敗します。

これを修正するには、イメージがraw形式であることをQEMUに明示的に伝える必要がありますが、便利な短いオプションや「ハードディスクと見なされるディスクイメージファイル名を渡すだけ」のアプローチではそれを行うことはできません。再利用。 「longformat」オプションを使用してディスクイメージを指定し、format = rawを渡すことができるようにする必要があります。この場合、それは
-drive file=helloos.img,format=raw,index=0,media=disk
(これは、QEMUのマンページに記載されており、「-hda、-hdb、-hdc、-hddの代わりに使用できます:」と、短いオプションに相当する長い形式があります。)

同様のクエリである https://unix.stackexchange.com/questions/276480/booting-a-raw-disk-image-in-qem も参照してください。

PS:実行中のコマンドラインと完全なエラーメッセージを、ウィンドウが重なっているスクリーンショットだけでなく、質問のテキストに入力すると、質問に答えやすくなります。

10
Peter Maydell