diff --git a/pkg/hostman/guestman/guesttasks.go b/pkg/hostman/guestman/guesttasks.go index b5c5193ee8..7b2e6b1091 100644 --- a/pkg/hostman/guestman/guesttasks.go +++ b/pkg/hostman/guestman/guesttasks.go @@ -303,6 +303,7 @@ func (d *SGuestDiskSyncTask) OnEjectCdromContentSucc(cdName string) { for i, cdrom := range d.guest.Desc.Cdroms { if cdrom.Id == cdName { d.guest.Desc.Cdroms[i].Path = "" + d.guest.Desc.Cdroms[i].BootIndex = nil } } d.syncDisksConf() diff --git a/pkg/hostman/guestman/qemu/generate.go b/pkg/hostman/guestman/qemu/generate.go index 55f648ce27..4b87911755 100644 --- a/pkg/hostman/guestman/qemu/generate.go +++ b/pkg/hostman/guestman/qemu/generate.go @@ -344,8 +344,10 @@ func generateCdromOptions(optDrv QemuOptions, cdroms []*desc.SGuestCdrom) []stri opts = append(opts, optDrv.Drive(driveOpt)) devOpt := fmt.Sprintf("%s,drive=%s,bus=ide.1", cdrom.Ide.DevType, cdrom.Id) - if cdrom.BootIndex != nil && *cdrom.BootIndex >= 0 { - devOpt += fmt.Sprintf(",bootindex=%d", *cdrom.BootIndex) + if len(cdromPath) > 0 { + if cdrom.BootIndex != nil && *cdrom.BootIndex >= 0 { + devOpt += fmt.Sprintf(",bootindex=%d", *cdrom.BootIndex) + } } // TODO: ,bus=ide.%d,unit=%d //, cdrom.Ide.Bus, cdrom.Ide.Unit) @@ -356,8 +358,10 @@ func generateCdromOptions(optDrv QemuOptions, cdroms []*desc.SGuestCdrom) []stri devOpt := fmt.Sprintf("%s,drive=%s", cdrom.Scsi.DevType, cdrom.Id) devOpt += desc.OptionsToString(cdrom.Scsi.Options) - if cdrom.BootIndex != nil && *cdrom.BootIndex >= 0 { - devOpt += fmt.Sprintf(",bootindex=%d", *cdrom.BootIndex) + if len(cdromPath) > 0 { + if cdrom.BootIndex != nil && *cdrom.BootIndex >= 0 { + devOpt += fmt.Sprintf(",bootindex=%d", *cdrom.BootIndex) + } } opts = append(opts, optDrv.Device(devOpt)) }