From 9160bf140949f3abb2ef4ef4e730ec8a7a8b0cb1 Mon Sep 17 00:00:00 2001 From: wanyaoqi Date: Fri, 5 Aug 2022 16:29:17 +0800 Subject: [PATCH] fix(host): uefi boot firmwaire use pflash options option '-bios OVMF.fd' accidental hang on uefi boot. Signed-off-by: wanyaoqi --- pkg/hostman/guestman/qemu-kvmhelper.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/hostman/guestman/qemu-kvmhelper.go b/pkg/hostman/guestman/qemu-kvmhelper.go index 25a092d196..21b4d3983d 100644 --- a/pkg/hostman/guestman/qemu-kvmhelper.go +++ b/pkg/hostman/guestman/qemu-kvmhelper.go @@ -602,7 +602,16 @@ function nic_mtu() { } if s.getBios() == "UEFI" { - cmd += fmt.Sprintf(" -bios %s", options.HostOptions.OvmfPath) + // cmd += fmt.Sprintf(" -bios %s", options.HostOptions.OvmfPath) + ovmfVarsPath := path.Join(s.HomeDir(), "OVMF_VARS.fd") + if !fileutils2.Exists(ovmfVarsPath) { + err := procutils.NewRemoteCommandAsFarAsPossible("cp", "-f", options.HostOptions.OvmfPath, ovmfVarsPath).Run() + if err != nil { + return "", errors.Wrap(err, "failed copy ovmf vars") + } + } + cmd += fmt.Sprintf(" -drive if=pflash,format=raw,unit=0,file=%s,readonly=on", options.HostOptions.OvmfPath) + cmd += fmt.Sprintf(" -drive if=pflash,format=raw,unit=1,file=%s", ovmfVarsPath) } for i := 0; i < len(nics); i++ {