fix(host): guest sync update cdrom bootindex (#17026)

generate qemu cmdline check cdrom path before generate bootindex params

Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
This commit is contained in:
wanyaoqi
2023-05-13 07:52:12 +08:00
committed by GitHub
parent 8c27227d9a
commit 78fd4cb0d4
2 changed files with 9 additions and 4 deletions
+1
View File
@@ -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()
+8 -4
View File
@@ -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))
}