Skip to content

Commit bfa5bab

Browse files
committed
qemu: explicitly pass the basedisk format to QEMU
Signed-off-by: Akihiro Suda <[email protected]>
1 parent efe1c47 commit bfa5bab

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

pkg/qemu/qemu.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -570,14 +570,21 @@ func Cmdline(cfg Config) (string, []string, error) {
570570
}
571571
if isBaseDiskCDROM {
572572
args = appendArgsIfNoConflict(args, "-boot", "order=d,splash-time=0,menu=on")
573-
args = append(args, "-drive", fmt.Sprintf("file=%s,media=cdrom,readonly=on", baseDisk))
573+
args = append(args, "-drive", fmt.Sprintf("file=%s,format=raw,media=cdrom,readonly=on", baseDisk))
574574
} else {
575575
args = appendArgsIfNoConflict(args, "-boot", "order=c,splash-time=0,menu=on")
576576
}
577577
if diskSize, _ := units.RAMInBytes(*cfg.LimaYAML.Disk); diskSize > 0 {
578578
args = append(args, "-drive", fmt.Sprintf("file=%s,if=virtio,discard=on", diffDisk))
579579
} else if !isBaseDiskCDROM {
580-
args = append(args, "-drive", fmt.Sprintf("file=%s,if=virtio,discard=on", baseDisk))
580+
baseDiskInfo, err := imgutil.GetInfo(baseDisk)
581+
if err != nil {
582+
return "", nil, fmt.Errorf("failed to get the information of %q: %w", baseDisk, err)
583+
}
584+
if baseDiskInfo.Format == "" {
585+
return "", nil, fmt.Errorf("failed to inspect the format of %q", baseDisk)
586+
}
587+
args = append(args, "-drive", fmt.Sprintf("file=%s,format=%s,if=virtio,discard=on", baseDisk, baseDiskInfo.Format))
581588
}
582589
for _, extraDisk := range extraDisks {
583590
args = append(args, "-drive", fmt.Sprintf("file=%s,if=virtio,discard=on", extraDisk))

0 commit comments

Comments
 (0)