Didier Spaier
2014-Nov-10 21:42 UTC
[syslinux] Boot fails in a VMware player VM - syslinux 6.03
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
> > 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.But you have not considered the (requirements', features',...) differences between grub2 and syslinux.efi.> > > 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...No warning needed (it would be inappropriate). The problem is not in the isohybrid command, neither related to it. If syslinux.efi were capable of booting optical media in EFI mode, then booting your EFI VM with some (correctly built) ISO image would work. The isohybrid command is relevant for non-optical media, i.e. booting your EFI VM with the virtual HDD and not with the ISO image as virtual optical media.> > > 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"Your isohybrid ISO image will fail, as the GPT EFI bootloader that you built in your mksiofs command is inadequate.> > > 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"Again, dd'ing your isohybrid image onto your (virtual or real) drive will fail to boot in EFI mode. Your "syslinux.efi-based" "/isolinux/efiboot.img" will not be capable of booting. This is one of the steps that corresponds to grub2, not to whichever other EFI bootloader you use (e.g. syslinux.efi).> > I'll give more information in my answer to Thomas. > > Thanks and best regards, > > Didier > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >There is one additional consideration. You are building a x86_64 isohybrid image. Some virtualization software might not be capable of running a 64-bits guest if the host doesn't have virtualization available in its own firmware. Regards, Ady.
Didier Spaier
2014-Nov-13 17:28 UTC
[syslinux] Boot fails in a VMware player VM - syslinux 6.03
Hi, On 11/11/2014 02:55, Ady wrote: > Again, dd'ing your isohybrid image onto your (virtual or real) drive > will fail to boot in EFI mode. Your "syslinux.efi-based" > "/isolinux/efiboot.img" will not be capable of booting. This is one > of the steps that corresponds to grub2, not to whichever other EFI > bootloader you use (e.g. syslinux.efi). So, it's not possible (yet?) to provide an hybrid ISO image able to boot in UEFI and BIOS modes using Syslinux. It took me _some_ time to realize that, but at least that helped me understand a bit more Syslinux' and co features, thanks Ady and Thomas. But as my goal is actually to to uniformize the tools and apperance for booting an installer regardless of the firlwre's kind, instead I have cooked an USB installer that uses exclusively Syslinux 6.03 for BIOS and UEFI booting: http://slint.fr/testing/slint64-14.1_syslinux.6.03.img http://www.linuxquestions.org/questions/slackware-14/%5Bann%5D-syslinux-6-03-has-been-released-4175521209/ Here is the tree: . |-- EFI | `-- BOOT | |-- bootx64.efi | |-- bzImage | |-- f2.txt | |-- initrd.img | |-- ldlinux.c32 | |-- ldlinux.e64 | |-- ldlinux.sys | |-- memtest | |-- message.txt | |-- setpkg | |-- syslinux.cfg | `-- ter-i16v.psf |-- README_SLINT.TXT `-- SLINT_DATE Best regards, Didier