简体   繁体   English

QEMU .qcow2 mmu_gva_to_gpa 在 Mac OS X 中崩溃

[英]QEMU .qcow2 mmu_gva_to_gpa crash in Mac OS X

I am trying to run my .qcow2 image in Mac OS X with qemu-system-x86_64 , it works perfectly fine on my Debian machine but for memory problems I need to move it to a Mac OS X Catalina machine.我正在尝试使用qemu-system-x86_64在 Mac OS X 中运行我的.qcow2映像,它在我的 Debian 机器上运行良好,但对于内存问题,我需要将其移动到 Mac OS X Catalina 机器上。 I installed qemu-system-x86_64 through brew and then when I launch my machine with我通过brew安装了qemu-system-x86_64 ,然后当我启动我的机器时

qemu-system-x86_64 \
>   -m 8G \
>   -vga virtio \
>   -show-cursor \
>   -usb \
>   -device usb-tablet \
>   -enable-kvm \
>   -drive file=/Volumes/enricoWD/transfer_home_laptop/dxcator_home_backup_feb2020/diag-stage.qcow2,if=virtio \
>   -accel hvf \
>   -cpu host

it starts but after 4 seconds crashes with:它开始但在 4 秒后崩溃:

vmx_write_mem: mmu_gva_to_gpa ffff9ac27b23fcdc failed vmx_write_mem:mmu_gva_to_gpa ffff9ac27b23fcdc 失败

Abort trap: 6中止陷阱:6

I saw other users encountered this problem here, but no answer provided.我看到其他用户在这里遇到了这个问题,但没有提供答案。

If anybody has a clue, or suggestion for other ways to run my .qcow2 machine on Mac OS X it would be great!如果有人有线索或建议以其他方式在 Mac OS X 上运行我的 .qcow2 机器,那就太好了! Thanks a lot in advance!提前非常感谢!

I was able to fix a similar problem using two different methods related to QEMU / KVM CPU model configuration .我能够使用与QEMU/KVM CPU 模型配置相关的两种不同方法来解决类似的问题。 Both used Homebrew's port of QEMU, version 5.1.两者都使用 Homebrew 的 QEMU 端口,版本 5.1。

Option #1: Specify the CPU Model选项 #1:指定 CPU 型号

Try specifying the CPU model which most closely matches the host machine.尝试指定与主机最匹配的 CPU 型号。

  1. Determine the CPU type of the host machine.确定主机的 CPU 类型。
$ sysctl -a | grep machdep.cpu.brand_string
machdep.cpu.brand_string: Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz
  1. Find the matching CPU model supported by QEMU.找到 QEMU 支持的匹配 CPU 型号。
$ qemu-system-x86_64 -cpu help

A search at ark.intel.com , for i5-4690 yields only one 3.5 GHz option, so this is my CPU.ark.intel.com上搜索i5-4690只能得到一个 3.5 GHz 选项,所以是我的 CPU。 Using the Product Collection and Code Name , this CPU must correspond to the x86 Haswell-v4 model.使用Product CollectionCode Name ,这个 CPU 必须对应x86 Haswell-v4模型。

  1. Substitute the CPU model in the QEMU command.在 QEMU 命令中替换 CPU 型号。
$ qemu-system-x86_64 -cpu Haswell-v4 ...

Option #2: Emulate the CPU选项 #2:模拟 CPU

If you still have issues, you can try emulating the CPU instead of using host passthrough.如果仍有问题,您可以尝试模拟 CPU 而不是使用主机直通。 This just requires using the default qemu64 CPU type .这只需要使用默认的qemu64 CPU 类型 You can do this like so:你可以这样做:

$ qemu-system-x86_64 -cpu qemu64 ...

Disable huge pages禁用大页面

-cpu host,-pdpe1gb -cpu 主机,-pdpe1gb

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM