저는 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'
구성 파일을 수정하는 방법은 무엇입니까?
답변1
몇 시간 동안 인터넷 검색을 한 후에도 구성 파일 구문과 관련된 포괄적인 설명서를 찾지 못했습니다. 그래서 소스 코드를 살펴보니 생성된 구성 파일은 다음과 같습니다.
[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
이와 같은 구성 파일을 통해 나머지 옵션을 지정하는 방법이 있는지 모르겠습니다. 유효한 그룹을 살펴봐도 유용한 결과가 나오지 않았습니다.
UPD:
-enable-kvm
구성을 통한 것으로 밝혀졌습니다.accel
옵션 그룹은 다음과 같습니다.
[accel]
accel = "kvm"