如何在 qemu 中解析 "Specify the 'raw' format explicitly to remove the restrictions."?

How to resolve "Specify the 'raw' format explicitly to remove the restrictions." in qemu?

我正在尝试 运行 helloos.img 在 MACBOOK Pro 上,甚至程序运行正常,它显示

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

如何处理?这很重要吗?

出现此警告的原因是 QEMU 会自动将您的磁盘映像格式猜测为原始格式。这样做的问题是,如果您的来宾能够写入整个原始图像,它可能会恶意写入(比如)QCOW2 磁盘头到原始图像的开头,这意味着当 VM 重新启动时 QEMU会错误地猜测图像类型,可能会产生不好的结果。为了防止这种情况,QEMU 拒绝让客户机写入探测到的原始格式图像的开头。大多数情况下这不会造成伤害,但如果您尝试从来宾内部重新分区磁盘,它将失败。

要解决此问题,您需要明确告诉 QEMU 该图像是原始格式,但您不能使用便捷的短选项或您正在使用的 "just pass a disk image filename which is assumed to be the harddisk" 方法来做到这一点。您需要使用 'long format' 选项来指定您的磁盘映像,以便您可以将其传递给 format=raw。在这种情况下会是
-drive file=helloos.img,format=raw,index=0,media=disk
(这在 QEMU 联机帮助页中有记录,其中有 "Instead of -hda, -hdb, -hdc, -hdd you can use:" 和短选项的长格式等效项。)

另请参阅 https://unix.stackexchange.com/questions/276480/booting-a-raw-disk-image-in-qemu,这是一个类似的查询。

PS:如果您在命令行给出 运行 并在问题的文本中提供完整的错误消息,而不仅仅是在屏幕截图中,您的问题会更容易回答windows 重叠的地方。