qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1818367] Re: Initialization of device cfi.pflash01 fai


From: José Pekkarinen
Subject: [Qemu-devel] [Bug 1818367] Re: Initialization of device cfi.pflash01 failed: Block node is read-only
Date: Thu, 18 Apr 2019 19:45:29 -0000

seems to be piece of true on Phil's comments, as extracting the command
on the log and executing it manually the result is the following:

2019-04-18T19:37:49.685841Z qemu-system-x86_64: -object
secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-6-os-1
/master-key.aes: Unable to read /var/lib/libvirt/qemu/domain-6-os-1
/master-key.aes: Failed to open file
“/var/lib/libvirt/qemu/domain-6-os-1/master-key.aes”: No such file or
directory

unless those folders with master keys are dinamically genreated and
trashed after execution it would be worthy to involve here libvirt
project as well.

José.

** Also affects: libvirt
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1818367

Title:
  Initialization of device cfi.pflash01 failed: Block node is read-only

Status in libvirt:
  New
Status in QEMU:
  New

Bug description:
  Hi,

  I have several vms defined in libvirt using ovmf for uefi, since a later
  update of my server I'm unable to start any of the domains defined. This is
  an example of the output given:

  # virsh start os-1
  error: Failed to start domain os-1
  error: internal error: qemu unexpectedly closed the monitor: 
2019-03-02T21:23:51.726446Z qemu-system-x86_64: Initialization of device 
cfi.pflash01 failed: Block node is read-only

  an example of domain is like this:

  <domain type='kvm'>                                                           
                                                                                
                                                                                
                                 
    <name>os-1</name>                                                           
                                                                                
                                                                                
                                 
    <uuid>34c41008-ab91-483b-959c-81a7a12ae9be</uuid>                           
                                                                                
                                                                                
                                 
    <memory unit='KiB'>8388608</memory>                                         
                                                                                
                                                                                
                                 
    <currentMemory unit='KiB'>8388608</currentMemory>                           
                                                                                
                                                                                
                                 
    <memoryBacking>                                                             
                                                                                
                                                                                
                                 
      <hugepages/>                                                              
                                                                                
                                                                                
                                 
    </memoryBacking>                                                            
                                                                                
                                                                                
                                 
    <vcpu placement='static' cpuset='10-11,34-35'>4</vcpu>                      
                                                                                
                                                                                
                                 
    <os>                                                                        
                                                                                
                                                                                
                                 
      <type arch='x86_64' machine='pc-i440fx-2.12'>hvm</type>                   
                                                                                
                                                                                
                                 
      <loader type='pflash'>/var/lib/libvirt/qemu/nvram/os-1-ovmf.fd</loader>   
                                                                                
                                                                                
                                 
      <boot dev='network'/>                                                     
                                                                                
                                                                                
                                 
      <boot dev='hd'/>                                                          
                                                                                
                                                                                
                                 
    </os>                                                                       
                                                                                
                                                                                
                                 
    <features>                                                                  
                                                                                
                                                                                
                                 
      <acpi/>                                                                   
                                                                                
                                                                                
                                 
      <apic/>                                                                   
                                                                                
                                                                                
                                 
    </features>                                                                 
                                                                                
                                                                                
                                 
    <cpu mode='host-passthrough' check='partial'/>                              
                                                                                
                                                                                
                                 
    <clock offset='utc'>                                                        
                                                                                
                                                                                
                                 
      <timer name='rtc' tickpolicy='catchup'/>                                  
                                                                                
                                                                                
                                 
      <timer name='pit' tickpolicy='delay'/>                                    
                                                                                
                                                                                
                                 
      <timer name='hpet' present='no'/>                                         
                                                                                
                                                                                
                                 
    </clock>                                                                    
                                                                                
                                                                                
                                 
    <on_poweroff>destroy</on_poweroff>                                          
                                                                                
                                                                                
                                 
    <on_reboot>restart</on_reboot>                                              
                                                                                
                                                                                
                                 
    <on_crash>destroy</on_crash>                                                
                                                                                
                                                                                
                                 
    <pm>                                                                        
                                                                                
                                                                                
                                 
      <suspend-to-mem enabled='no'/>                                            
                                                                                
                                                                                
                                 
      <suspend-to-disk enabled='no'/>                                           
                                                                                
                                                                                
                                 
    </pm>                                                                       
                                                                                
                                                                                
                                 
    <devices>                                                                   
                                                                                
                                                                                
                                 
      <emulator>/usr/bin/qemu-system-x86_64</emulator>                          
                                                                                
                                                                                
                                 
      <disk type='block' device='disk'>                                         
                                                                                
                                                                                
                                 
        <driver name='qemu' type='raw' cache='none' io='native'/>               
                                                                                
                                                                                
                                 
        <source dev='/dev/vg0/os-1-vda'/>                                       
                                                                                
                                                                                
                            
        <target dev='vda' bus='virtio'/>                                        
                                                                                
                                                                                
                                 
        <address type='pci' domain='0x0000' bus='0x00' slot='0x06' 
function='0x0'/>                                                                
                                                                                
                                              
      </disk>                                                                   
                                                                                
                                                                                
                                 
      <disk type='block' device='disk'>
        <driver name='qemu' type='raw' cache='none' io='native'/>
        <source dev='/dev/vg0/os-1-vdb'/>
        <target dev='vdb' bus='virtio'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x07' 
function='0x0'/>
      </disk>
      <controller type='usb' index='0' model='ich9-ehci1'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' 
function='0x7'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci1'>
        <master startport='0'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' 
function='0x0' multifunction='on'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci2'>
        <master startport='2'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' 
function='0x1'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci3'>
        <master startport='4'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' 
function='0x2'/>
      </controller>
      <controller type='pci' index='0' model='pci-root'/>
      <controller type='ide' index='0'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' 
function='0x1'/>
      </controller>
      <interface type='bridge'>
        <mac address='52:54:00:78:cb:97'/>
        <source bridge='virbr0'/>
        <model type='rtl8139'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x04' 
function='0x0'/>
      </interface>
      <interface type='bridge'>
        <mac address='52:54:00:1c:4f:22'/>
        <source bridge='virbr1'/>
        <model type='rtl8139'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x03' 
function='0x0'/>
      </interface>
      <serial type='pty'>
        <target type='isa-serial' port='0'>
          <model name='isa-serial'/>
        </target>
      </serial>
      <console type='pty'>
        <target type='serial' port='0'/>
      </console>
      <input type='mouse' bus='ps2'/>
      <input type='keyboard' bus='ps2'/>
      <graphics type='vnc' port='-1' autoport='yes'>
        <listen type='address'/>
      </graphics>
      <video>
        <model type='cirrus' vram='16384' heads='1' primary='yes'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x0'/>
      </video>
      <memballoon model='virtio'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x09' 
function='0x0'/>
      </memballoon>
    </devices>
  </domain>

  where /var/lib/libvirt/qemu/nvram/os-1-ovmf.fd is a copy of
  /usr/share/edk2-ovmf/OVMF_VARS.fd. An the extract from my
  /etc/libvirt/qemu.conf to define ovmf:

  ...
  # Location of master nvram file                                               
                                                                                
                                                                                
                                 
  #                                                                             
                                                                                
                                                                                
                                 
  # When a domain is configured to use UEFI instead of standard                 
                                                                                
                                                                                
                                 
  # BIOS it may use a separate storage for UEFI variables. If                   
                                                                                
                                                                                
                                 
  # that's the case libvirt creates the variable store per domain               
                                                                                
                                                                                
                                 
  # using this master file as image. Each UEFI firmware can,                    
                                                                                
                                                                                
                                 
  # however, have different variables store. Therefore the nvram is             
                                                                                
                                                                                
                                 
  # a list of strings when a single item is in form of:                         
                                                                                
                                                                                
                                 
  #   ${PATH_TO_UEFI_FW}:${PATH_TO_UEFI_VARS}.                                  
                                                                                
                                                                                
                                 
  # Later, when libvirt creates per domain variable store, this list is         
                                                                                
                                                                                
                                 
  # searched for the master image. The UEFI firmware can be called              
                                                                                
                                                                                
                                 
  # differently for different guest architectures. For instance, it's OVMF      
                                                                                
                                                                                
                                 
  # for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default        
                                                                                
                                                                                
                                 
  # follows this scheme.                                                        
                                                                                
                                                                                
                                 
  nvram = [                                                                     
                                                                                
                                                                                
                                 
     "/usr/share/edk2-ovmf/OVMF_CODE.fd:/usr/share/edk2-ovmf/OVMF_VARS.fd",     
                                                                                
                                                                                
                                 
  ]
  ...

  This setup used to work one month ago, now it's setup with:

  QEMU emulator version 3.1.0
  libvirt-5.0.0
  linux-4.19.20

  Any help appreciated.

  Best regards.

  José

To manage notifications about this bug go to:
https://bugs.launchpad.net/libvirt/+bug/1818367/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]