[syslinux] Boot fails in a VMware player VM - syslinux 6.03

Didier Spaier
Mon, 10 Nov 2014 21:42:09 -0000

On 10/11/2014 04:02, Ady wrote:
 >
 >> Hi there,
 >>
 >> I failed to boot an installer in a VMware player (Version6.0.3
 >> build-1895310)
 >> using syslinux 6.03, be it off an hybrid ISO image and an USB stick.
 >>
 >> Booting succeeds if the VM is set to use a BIOS firmware with both
media,
 >> but fails using an efi firmware.
 >>
 >> Trying to boot off the ISO image I get an error message "The
firmware
 >>     encountered an unexpected exception"
 >>
 >> Trying to boot off the USB stick I get a black screen.
 >>
 >> In both cases I see in vmplayer*.log:
 >>     VMHSGetDataFileKey: Could not get the dataFileKey from VMDB
 >>
 >> I have no idea what that means.
 >>
 >> Alas I don't have a real machine with an UEFI firmware to try and
see
 >> if the problem occurs only in a VM (and would be very grateful if
 >> a kind soul could do that for me).
 >>
 >> I used only official binaries taken directly from the source tarball,
as
 >> shown in attached file. This file and the ISO image are also available
 >> in http://slint.fr/misc/testing
 >>
 >> In that file you can see:
 >> . the end of the script used to make the ISO image,
 >> . the tree of the ISO file,
 >> . the beginning of /EFI/BOOT/syslinux.cfg,
 >> . the output of "dumpet -h -i <filename>.iso"
 >>
 >> As you can see, I've put all needed file in /EFI/BOOT, also copied
in the
 >> Fat 12 partition included in /isolinux/efiboot.img
 >>
 >> I can add entries in the boot menu as the boot manager finds the
 >> file \EFI\BOOT\bootx64.efi, but get the same behavior using these menu
 >> entries.
 >>
 >> I've seen the same error message in the ML but in a different
context.
 >>
 >> I'm a complete newbie and never used syslinux 6.03 before, so I
assume
 >> that's PEBCAK case, any clue appreciated anyway.
 >>
 >> Thanks in advance and best regards,
 >> Didier
 >>
 >
 > You are probably imitating / following some procedure used by
 > Slackware to create EFI-compatible ISO images. The problem, as
 > mentioned in a recent email this last week, is the particularities of
 > the documents regarding, in this case, grub2 as EFI bootloader (as
 > oppose to documents covering EFI bootloaders in general and clearly
 > indicating the specifics about one particular bootloader).

That's right, what I did imitates the procedure used by Slackware that
uses grub2 as EFI bootloader.

 > Currently, Syslinux is not capable of booting optical media in EFI
 > mode. So your VM, when being set to use EFI and this ISO image as
 > virtual boot media, will fail.

I assumed that post-precessing the ISO image with "isohybrid -u" (as I
do
when using grub2 as EFI bootloader would work the same when using syslinux
as an EFI bootloder.

So that was a wrong assumption... Maybe a warning about that in this
wiki page:
http://www.syslinux.org/wiki/index.php/Isohybrid
wouldn't be useless, then...

 > I don't know how exactly you are building your virtual HDD to boot in
 > EFI mode. In /EFI/BOOT/syslinux.cfg, you could:
 > _ comment out the FONT directive;
 > _ comment out the DISPLAY directive;
 > _ comment out the TIMEOUT directive;
 > _ keep using "PROMPT 1" and _no_ UI directive (as it is
already).
 >
 > If your HDD image and the VM are built adequately for booting in EFI
 > mode, then commenting out these directives should at least give you a
 > Syslinux "boot:" prompt when booting to the virtual HDD image
(in EFI
 > mode). If such initial test is successful, then you could move on to
 > additional testing steps. If it fails too (i.e. you don"t get to the
 > boot prompt), then some additional info would be needed.

I'm using an hybrid ISO image. I tried to comment out those dierctives
in /EFI/BOOT/syslinux.cfgto no avail: I still get the same error message
at (failed) boot in vmplayer:
        "The firmware encountered an unexpected exception"

 > If you are really trying to boot your EFI VM with a (either real or
 > virtual) USB drive (instead of using a virtual fixed HDD), then some
 > additional considerations might be necessary.

I tried that too with a real USB stick, but still get a black screen
with a message (herd to read as it disappears quicly):
   "Failed to read block: ox2"

I'll give more information in my answer to Thomas.

Thanks and best regards,

Didier