diff --git a/roles/gitlab_runner/files/libvirt-executor b/roles/gitlab_runner/files/libvirt-executor
index 3c2cdc8d8ddb6b5709056b277ef34f567d5baf33..c2ef666ab955f92d4c8de1314bf5a9e4abecd8e2 100755
--- a/roles/gitlab_runner/files/libvirt-executor
+++ b/roles/gitlab_runner/files/libvirt-executor
@@ -89,7 +89,7 @@ run() {
 cleanup() {
   rm /run/libvirt-executor/id_ed25519_$(vm_name){,.pub}
   virsh destroy "$(vm_name)" || true
-  virsh undefine --remove-all-storage "$(vm_name)"
+  virsh undefine --nvram --remove-all-storage "$(vm_name)"
 }
 
 case "${1:-}" in
diff --git a/roles/gitlab_runner/templates/domain_template.xml.j2 b/roles/gitlab_runner/templates/domain_template.xml.j2
index bca48e0ad78a38ca85ac52593b40947d81c9b984..853e8a409b34de3eb8b338ca6f3f42b339e7970b 100644
--- a/roles/gitlab_runner/templates/domain_template.xml.j2
+++ b/roles/gitlab_runner/templates/domain_template.xml.j2
@@ -8,7 +8,7 @@
       <entry>io.systemd.credential.binary:tmpfiles.extra=$tmpfiles_extra</entry>
     </oemStrings>
   </sysinfo>
-  <os>
+  <os firmware='efi'>
     <type arch='x86_64' machine='q35'>hvm</type>
     <smbios mode='sysinfo'/>
   </os>