Re: unable to find any master var store for loader error
Greetings Michal, > Sent: Tuesday, October 13, 2020 at 4:04 PM > From: "Michal Privoznik" > To: "daggs" > Cc: libvirt-users@redhat.com > Subject: Re: unable to find any master var store for loader error ... > Here, nvram will be generated, but if you want some other path than > libvirt would generate you can provide it under . Yes. But > you're using the default path anyway. > ... > There is a third option. Save the following under > /etc/qemu/firmware/50-my-ovmf.json: > > { > "description": "UEFI firmware for x86_64", > "interface-types": [ > "uefi" > ], > "mapping": { > "device": "flash", > "executable": { > "filename": "/usr/share/edk2-ovmf/OVMF_CODE.fd", > "format": "raw" > }, > "nvram-template": { > "filename": "/usr/share/edk2-ovmf/OVMF_VARS.fd", > "format": "raw" > } > }, > "targets": [ > { > "architecture": "x86_64", > "machines": [ > "pc-i440fx-*", > "pc-q35-*" > ] > } > ], > "features": [ > "acpi-s3", > "amd-sev", > "verbose-dynamic" > ], > "tags": [ > > ] > } > > > > Michal > > Thank you, that indeed rendered the vm working. Dagg.
Re: unable to find any master var store for loader error
On 10/13/20 2:25 PM, daggs wrote: Greetings Michal, Sent: Tuesday, October 13, 2020 at 2:51 PM From: "Michal Privoznik" To: "daggs" , libvirt-users@redhat.com Subject: Re: unable to find any master var store for loader error Hey, I'll paste the interesting part of domain XML here so that it doesn't get lost: hvm /usr/share/edk2-ovmf/OVMF_CODE.fd /var/lib/libvirt/qemu/nvram/vm1_VARS.fd And then in qemu.conf you define the pair: nvram = [ "/usr/share/edk2-ovmf/OVMF_CODE.fd:/usr/share/edk2-ovmf/OVMF_VARS.fd", "/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd:/usr/share/edk2-ovmf/OVMF_VARS.secboot.fd" ] But as the comment in qemu.conf (just above your line) says, this is ignored if FW metadata files exist which is exactly your case and this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1763477 For your convenience you can switch to (the element will be removed automatically) or if you insist on using the old style then provide @template attribute to : /var/lib/libvirt/qemu/nvram/vm1_VARS.fd There is an internal list that is still consulted when finding matching _VARS fails, but your path is not on it: https://gitlab.com/libvirt/libvirt/-/blob/master/src/qemu/qemu_conf.c#L98 But it exists mostly to give distros enough time to switch to FW descriptors. Michal thanks for the detailed explanation, I wanted to be sure I understand. the following is needed to be done: 1. replace this: hvm /usr/share/edk2-ovmf/OVMF_CODE.fd /var/lib/libvirt/qemu/nvram/vm1_VARS.fd to this: hvm Here, nvram will be generated, but if you want some other path than libvirt would generate you can provide it under . Yes. But you're using the default path anyway. 2. patch qemu_conf.c to include the custom paths of my fd files? There is a third option. Save the following under /etc/qemu/firmware/50-my-ovmf.json: { "description": "UEFI firmware for x86_64", "interface-types": [ "uefi" ], "mapping": { "device": "flash", "executable": { "filename": "/usr/share/edk2-ovmf/OVMF_CODE.fd", "format": "raw" }, "nvram-template": { "filename": "/usr/share/edk2-ovmf/OVMF_VARS.fd", "format": "raw" } }, "targets": [ { "architecture": "x86_64", "machines": [ "pc-i440fx-*", "pc-q35-*" ] } ], "features": [ "acpi-s3", "amd-sev", "verbose-dynamic" ], "tags": [ ] } Michal
Re: unable to find any master var store for loader error
Greetings Michal, > Sent: Tuesday, October 13, 2020 at 2:51 PM > From: "Michal Privoznik" > To: "daggs" , libvirt-users@redhat.com > Subject: Re: unable to find any master var store for loader error > > Hey, > > I'll paste the interesting part of domain XML here so that it doesn't > get lost: > > > hvm > type='pflash'>/usr/share/edk2-ovmf/OVMF_CODE.fd > /var/lib/libvirt/qemu/nvram/vm1_VARS.fd > > > > And then in qemu.conf you define the pair: > > nvram = [ > "/usr/share/edk2-ovmf/OVMF_CODE.fd:/usr/share/edk2-ovmf/OVMF_VARS.fd", > > "/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd:/usr/share/edk2-ovmf/OVMF_VARS.secboot.fd" > ] > > But as the comment in qemu.conf (just above your line) says, this is > ignored if FW metadata files exist which is exactly your case and this bug: > > https://bugzilla.redhat.com/show_bug.cgi?id=1763477 > > For your convenience you can switch to (the > element will be removed automatically) or if you insist on > using the old style then provide @template attribute to : > > template="/usr/share/edk2-ovmf/OVMF_CODE.fd">/var/lib/libvirt/qemu/nvram/vm1_VARS.fd > > > There is an internal list that is still consulted when finding matching > _VARS fails, but your path is not on it: > > https://gitlab.com/libvirt/libvirt/-/blob/master/src/qemu/qemu_conf.c#L98 > > But it exists mostly to give distros enough time to switch to FW > descriptors. > > Michal > > thanks for the detailed explanation, I wanted to be sure I understand. the following is needed to be done: 1. replace this: hvm /usr/share/edk2-ovmf/OVMF_CODE.fd /var/lib/libvirt/qemu/nvram/vm1_VARS.fd to this: hvm 2. patch qemu_conf.c to include the custom paths of my fd files? Thanks, Dagg.
Re: unable to find any master var store for loader error
On 10/12/20 10:52 PM, daggs wrote: Greetings, I have the following machine: https://dpaste.com/5BPA3F77F which I'm trying to boot in uefi. /etc/libvirt/qemu.conf looks like this: https://dpaste.com/B3SFHUY6R and the ovmf files exists in the path, see: # ll /usr/share/edk2-ovmf/OVMF_CODE.fd /usr/share/edk2-ovmf/OVMF_VARS.fd /usr/share/edk2-ovmf/OVMF_CODE.secboot.fd /usr/share/edk2-ovmf/OVMF_VARS.secboot.fd -rw-r--r-- 1 root root 1966080 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_CODE.fd -rw-r--r-- 1 root root 1966080 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_CODE.secboot.fd -rw-r--r-- 1 root root 131072 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_VARS.fd -rw-r--r-- 1 root root 131072 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_VARS.secboot.fd when I try to start the machine, I get this error: error: Failed to start domain vm1 error: operation failed: unable to find any master var store for loader: /usr/share/edk2-ovmf/OVMF_CODE.fd libvirt version is 6.7.0 and qemu version is 5.1.0 any idea how to fix this issue? Hey, I'll paste the interesting part of domain XML here so that it doesn't get lost: hvm type='pflash'>/usr/share/edk2-ovmf/OVMF_CODE.fd /var/lib/libvirt/qemu/nvram/vm1_VARS.fd And then in qemu.conf you define the pair: nvram = [ "/usr/share/edk2-ovmf/OVMF_CODE.fd:/usr/share/edk2-ovmf/OVMF_VARS.fd", "/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd:/usr/share/edk2-ovmf/OVMF_VARS.secboot.fd" ] But as the comment in qemu.conf (just above your line) says, this is ignored if FW metadata files exist which is exactly your case and this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1763477 For your convenience you can switch to (the element will be removed automatically) or if you insist on using the old style then provide @template attribute to : template="/usr/share/edk2-ovmf/OVMF_CODE.fd">/var/lib/libvirt/qemu/nvram/vm1_VARS.fd There is an internal list that is still consulted when finding matching _VARS fails, but your path is not on it: https://gitlab.com/libvirt/libvirt/-/blob/master/src/qemu/qemu_conf.c#L98 But it exists mostly to give distros enough time to switch to FW descriptors. Michal
Re: unable to find any master var store for loader error
Greetings Martin, > Sent: Tuesday, October 13, 2020 at 1:13 PM > From: "Martin Kletzander" > To: "daggs" > Cc: libvirt-users@redhat.com > Subject: Re: unable to find any master var store for loader error > What do you have in /usr/share/qemu/firmware/ ? There should be JSON files > installed (by QEMU, I think) describing the possible firmware combinations. > here: # ll /usr/share/qemu/firmware/ total 24 -rw-r--r-- 1 root root 716 Oct 7 19:25 50-edk2-i386-secure.json -rw-r--r-- 1 root root 741 Oct 7 19:25 50-edk2-x86_64-secure.json -rw-r--r-- 1 root root 622 Oct 7 19:25 60-edk2-aarch64.json -rw-r--r-- 1 root root 610 Oct 7 19:25 60-edk2-arm.json -rw-r--r-- 1 root root 667 Oct 7 19:25 60-edk2-i386.json -rw-r--r-- 1 root root 692 Oct 7 19:25 60-edk2-x86_64.json the content of 60-edk2-x86_64.json is: { "description": "UEFI firmware for x86_64", "interface-types": [ "uefi" ], "mapping": { "device": "flash", "executable": { "filename": "/usr/share/qemu/edk2-x86_64-code.fd", "format": "raw" }, "nvram-template": { "filename": "/usr/share/qemu/edk2-i386-vars.fd", "format": "raw" } }, "targets": [ { "architecture": "x86_64", "machines": [ "pc-i440fx-*", "pc-q35-*" ] } ], "features": [ "acpi-s3", "amd-sev", "verbose-dynamic" ], "tags": [ ] } both /usr/share/qemu/edk2-x86_64-code.fd and /usr/share/qemu/edk2-i386-vars.fd exists.
Re: unable to find any master var store for loader error
On Mon, Oct 12, 2020 at 10:52:25PM +0200, daggs wrote: Greetings, I have the following machine: https://dpaste.com/5BPA3F77F which I'm trying to boot in uefi. /etc/libvirt/qemu.conf looks like this: https://dpaste.com/B3SFHUY6R and the ovmf files exists in the path, see: # ll /usr/share/edk2-ovmf/OVMF_CODE.fd /usr/share/edk2-ovmf/OVMF_VARS.fd /usr/share/edk2-ovmf/OVMF_CODE.secboot.fd /usr/share/edk2-ovmf/OVMF_VARS.secboot.fd -rw-r--r-- 1 root root 1966080 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_CODE.fd -rw-r--r-- 1 root root 1966080 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_CODE.secboot.fd -rw-r--r-- 1 root root 131072 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_VARS.fd -rw-r--r-- 1 root root 131072 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_VARS.secboot.fd when I try to start the machine, I get this error: error: Failed to start domain vm1 error: operation failed: unable to find any master var store for loader: /usr/share/edk2-ovmf/OVMF_CODE.fd libvirt version is 6.7.0 and qemu version is 5.1.0 any idea how to fix this issue? What do you have in /usr/share/qemu/firmware/ ? There should be JSON files installed (by QEMU, I think) describing the possible firmware combinations. Thanks. Dagg. signature.asc Description: PGP signature
unable to find any master var store for loader error
Greetings, I have the following machine: https://dpaste.com/5BPA3F77F which I'm trying to boot in uefi. /etc/libvirt/qemu.conf looks like this: https://dpaste.com/B3SFHUY6R and the ovmf files exists in the path, see: # ll /usr/share/edk2-ovmf/OVMF_CODE.fd /usr/share/edk2-ovmf/OVMF_VARS.fd /usr/share/edk2-ovmf/OVMF_CODE.secboot.fd /usr/share/edk2-ovmf/OVMF_VARS.secboot.fd -rw-r--r-- 1 root root 1966080 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_CODE.fd -rw-r--r-- 1 root root 1966080 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_CODE.secboot.fd -rw-r--r-- 1 root root 131072 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_VARS.fd -rw-r--r-- 1 root root 131072 Aug 21 14:32 /usr/share/edk2-ovmf/OVMF_VARS.secboot.fd when I try to start the machine, I get this error: error: Failed to start domain vm1 error: operation failed: unable to find any master var store for loader: /usr/share/edk2-ovmf/OVMF_CODE.fd libvirt version is 6.7.0 and qemu version is 5.1.0 any idea how to fix this issue? Thanks. Dagg.