Linux
Qemu 配置文件錯誤“無效的參數主機”
我是 QEMU 的新手,目前正在使用 QEMU 配置文件來了解它是如何工作的。我試圖把我的簡單 QEMU 命令行的所有選項
sudo qemu-system-x86_64 -cpu host -enable-kvm -m 8192 -nic user,host=192.168.0.2,net=192.168.0.2 -nic bridge,br=virbr0 ubuntu.img
在配置文件
qemu.cfg
中,它是這樣的:[nic "user"] host=192.168.0.2 net=192.168.0.2 [nic "bridge"] br=virbr0 cpu = host enable-kvm m = 8192 ubuntu.img
使用指定的文件執行 QEMU
readconfig
我收到以下錯誤$ sudo qemu-system-x86_64 -readconfig qemu.cfg qemu-system-x86_64:qemu.cfg:1: Invalid parameter 'host=192.168.0.2'
如何修復配置文件?
經過數小時的Google搜尋,我沒有找到任何與配置文件語法相關的綜合手冊。所以我查看了原始碼,這是生成的配置文件:
[nic] type = "user" host = "192.168.0.2" net = "192.168.0.2" [nic] type = "bridge" br = "virbr0" [memory] size = "8192"
問題中提供的配置中存在一些錯誤:
- 空間很重要
"="
需要在符號前後插入空格:[nic] type = "user" #correct [nic] type="user" #wrong
- 找到配置組的正確名稱。
如果配置組名稱不正確,qemu 會列印以下形式的錯誤消息:
There is no option group
在qemu 源碼中很容易找到。之後我們只需要找到添加到的所有配置組
static QemuOptsList *vm_config_groups[48];
該功能
void qemu_add_opts(QemuOptsList *list)
負責。組的參數nic
可以在聲明中找到:QemuOptsList qemu_nic_opts = { .name = "nic", .implied_opt_name = "type", .head = QTAILQ_HEAD_INITIALIZER(qemu_nic_opts.head), .desc = { /* * no elements => accept any params * validation will happen later */ { /* end of list */ } }, };
這意味著我在答案中指定的語法。
未回答的問題:
我不知道是否有辦法
-cpu host -enable-kvm ubuntu.img
通過此類配置文件指定其餘選項。查看有效組並沒有產生任何有用的結果。更新:
原來
-enable-kvm
是通過accel
選項組配置如下:[accel] accel = "kvm"