diff --git a/pkg/hostman/guestman/qemu-kvmhelper.go b/pkg/hostman/guestman/qemu-kvmhelper.go index b027622e23..ebfeaf02a5 100644 --- a/pkg/hostman/guestman/qemu-kvmhelper.go +++ b/pkg/hostman/guestman/qemu-kvmhelper.go @@ -331,10 +331,12 @@ func (s *SKVMGuestInstance) extraOptions() string { case *jsonutils.JSONArray: for i := 0; i < jsonV.Size(); i++ { vAtI, _ := jsonV.GetAt(i) - cmd += fmt.Sprintf(" -%s %s", k, vAtI.String()) + vStr, _ := vAtI.GetString() + cmd += fmt.Sprintf(" -%s %s", k, vStr) } default: - cmd += fmt.Sprintf(" -%s %s", k, v.String()) + vstr, _ := v.GetString() + cmd += fmt.Sprintf(" -%s %s", k, vstr) } } return cmd diff --git a/pkg/hostman/guestman/qemu/generate.go b/pkg/hostman/guestman/qemu/generate.go index 8336df46f8..1605d7275e 100644 --- a/pkg/hostman/guestman/qemu/generate.go +++ b/pkg/hostman/guestman/qemu/generate.go @@ -862,11 +862,6 @@ func GenerateStartOptions( // pidfile opts = append(opts, drvOpt.Pidfile(input.PidFilePath)) - // extra options - if len(input.ExtraOptions) != 0 { - opts = append(opts, input.ExtraOptions...) - } - // qga // opts = append(opts, drvOpt.QGA(input.HomeDir)...) if input.GuestDesc.Qga != nil { @@ -891,5 +886,10 @@ func GenerateStartOptions( opts = append(opts, generatePvpanicDeviceOption(input.GuestDesc.Pvpanic)) } + // move extra options to end of cmdline + if len(input.ExtraOptions) != 0 { + opts = append(opts, input.ExtraOptions...) + } + return strings.Join(opts, " "), nil }