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: Sat, 20 Apr 2019 07:31:14 -0000

this is apparmor profile related in the end, rebooting with apparmor disabled 
allows
the domain to boot, so I'll deal with the gentoo community, and this can be 
closed.

Thanks!

José.

** Changed in: libvirt
       Status: New => Invalid

-- 
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:
  Invalid
Status in QEMU:
  Invalid

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]