VirtualBox

Opened 6 years ago

Closed 4 years ago

#18039 closed defect (obsolete)

rEFInd 0.11.3 + VirtualBox (OSE) : icons missing (appear and disappear on screen)

Reported by: nickel Owned by:
Component: EFI Version: VirtualBox 5.2.18
Keywords: rEFInd, icons missing, EFI boot Cc: nickel@…
Guest type: Linux Host type: Linux

Description

Greetings!

When running a VirtualBox virtual machine using LiveCD with rEFInd boot manager utility (doesn't matter if it is an official refind_cd_0.11.3.iso or a custom Linux distribution using rEFInd as a boot manager) icon missing bug occurs. In case of VirtualBox 5.1.xx - 5.2.16 - 5.2.18 - latest development build were affected.

Host systems: Alt Linux KWorkstation 8.2, Ubuntu Studio 16.04 Guest systems: Alt Linux KWorkstation 8.2 LiveCD, refind-cd-0.11.3.iso

Description: In case of refind-cd-0.11.3.iso the bug is easily reproducible and has a "triggering" symptom: for the first time boot occurs some icons are missing and replaced with black-yellow striped squares). After timeout is hit and "Boot Fallback" bootloader is run rEFInd rescans bootloaders and ALL icons appear on screen. Then one more rescan triggered by running "Boot Fallback" bootloader will make them dissapear and this may long ad infinitum.

How to reproduce:

  1. Install VirtualBox for Linux (5.2.16 r123745 in my case, but earlier version like 5.1 and latest development version also will fit)
  2. Create a linux machine with EFI
  3. "load" refind-cd-0.11.3.iso https://sourceforge.net/projects/refind/files/0.11.3/refind-cd-0.11.3.zip/download as an only boot media
  4. Run the machine
  5. Wait until reEFInd timeout is hit with "Boot Fallback bootloader" option selected or run it manually

Result: triggering appearance/disappearance of some boot options'/tools' icons

PS: this bug CANNOT BE reproduced using real hardware and QEMU/KVM virtual machine.

-- Best regards, Nikolai Kostrigin ALT Linux Team

Attachments (4)

virtualbox_refind_icons_absent.png (454.0 KB ) - added by nickel 6 years ago.
some icons are replaced by yellow-black squares
virtualbox_refind_icons_present.png (457.0 KB ) - added by nickel 6 years ago.
icons in refind boot manager as they should be
EFI_and_rEFInd_info.png (318.7 KB ) - added by nickel 6 years ago.
EFI platform and firmware information
eltorito2014vs2017.diff (5.8 KB ) - added by nickel 5 years ago.
EFI Partition driver partial diff

Download all attachments as: .zip

Change History (8)

by nickel, 6 years ago

some icons are replaced by yellow-black squares

by nickel, 6 years ago

icons in refind boot manager as they should be

by nickel, 6 years ago

Attachment: EFI_and_rEFInd_info.png added

EFI platform and firmware information

comment:1 by Socratis, 6 years ago

Same symptoms here. I'm on a OSX 10.11.6 host if that makes a difference, with VirtualBox 6.0.0_BETA1 r125994 (Qt5.6.3).

One thing that I tried (found completely by accident), and it seems to be a workaround, is to hit the LeftArrow key. Not always working...

Another one is to just hit <Enter> while having selected the default "Boot Fallback boot loader from El Torito" (icons distorted). That seems to fix the icons, and the entry changes to "Boot Fallback boot loader from ISO-9660 volume". Press <Enter> once more, the entry changes to "El Torito" and the icons are distorted. Rinse and repeat...

comment:2 by nickel, 5 years ago

Here is a rEFInd author's, Roderick W. Smith's, opinion on the issue:

https://sourceforge.net/p/refind/discussion/general/thread/f9f2c6ec68/

by nickel, 5 years ago

Attachment: eltorito2014vs2017.diff added

EFI Partition driver partial diff

comment:3 by nickel, 5 years ago

I examined the difference between UDK2014.SP1 (which is reported to be the base for VirtualBox EFI subsystem) and UDK2017 (which is the base of OVMF binaries I use for QEMU and as I reported in original issue message there is no issue in QEMU).

Some differences in EFI partition driver code were found which IMHO could be concerned to the issue (refer to eltorito2014vs2017.diff attached file ):

https://github.com/mirror/vbox/blob/master/src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c

vs

https://github.com/tianocore/edk2/blob/UDK2017/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c

@@ -45,8 +45,8 @@ PartitionInstallElToritoChildHandles (
   )^M
 {^M
   EFI_STATUS              Status;^M
-  UINT32                  VolDescriptorLba;^M
-  UINT32                  Lba;^M
+  UINT64                  VolDescriptorOffset;^M
+  UINT32                  Lba2KB;^M
   EFI_BLOCK_IO_MEDIA      *Media;^M
   CDROM_VOLUME_DESCRIPTOR *VolDescriptor;^M
   ELTORITO_CATALOG        *Catalog;^M
@@ -67,13 +67,17 @@ PartitionInstallElToritoChildHandles (
   VolSpaceSize  = 0;^M
 ^M
   //^M
-  // CD_ROM has the fixed block size as 2048 bytes^M
+  // CD_ROM has the fixed block size as 2048 bytes (SIZE_2KB)^M
   //^M
-  if (Media->BlockSize != 2048) {^M
+^M
+  // If the ISO image has been copied onto a different storage media^M
+  // then the block size might be different (eg: USB).^M
+  // Ensure 2048 (SIZE_2KB) is a multiple of block size^M
+  if (((SIZE_2KB % Media->BlockSize) != 0) || (Media->BlockSize > SIZE_2KB)) {^M
     return EFI_NOT_FOUND;^M
   }^M
 ^M


Are there any plans to update edk2 version in VirtualBox source tree in the nearest future?

comment:4 by aeichner, 4 years ago

Resolution: obsolete
Status: newclosed

The EFI firmware was updated to edk2-stable201908 for VirtualBox 6.1. Closing this ticket as obsolete for now, please reopen if the issue is still present with the latest VirtualBox 6.1 release.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use