[syslinux] Isohybrid wiki page and UEFI

Ady ady-sf at hotmail.com
Sun Oct 25 11:15:37 PDT 2015


> Hello,
> 
> Gene Cumm said on Thu, Oct 22, 2015 at 06:39:44PM -0400:
> >On Thu, Oct 22, 2015 at 1:56 PM, Bruno Cornec via Syslinux
> ><syslinux at zytor.com> wrote:
> >
> >> 3/ Using syslinux.efi in a FAT32 image (similar to the previous 2
> >>   confs) stored on a iso9660 media by genisoimage and its
> >>   -eltorito-alt-boot -efi-boot $imagefile -no-emul-boot option doesn't
> >>   work. I get a red screen with debug info (attached). However, I'm not
> >>   trying to access anything outside of the FAT32 FS. I thought it
> >>   wouldn't be related to iso9660 in that use case. (I use wirtual media
> >>   method mounted via iLO URL CD feature if that matters)
> >
> 
> >I'd suggest using the latest general-purpose test binaries I've published.
> >https://sites.google.com/site/genecsyslinux/sl604p0g18-x64.tgz?attredirects=0&d=1
> 
> I've made a test this morning (sorry no time before). Result is the same
> type of red messages on the console for the server (with No image
> information).
> 
> 
> To give more background info, I'm using a master system running RHEL 7.1
> (to have a kernel and initrd at hand) and use the following script to
> generate the ISO image:
> 
> ------------------------------------------------------------------------
> #!/bin/bash
> 
> TMPDIR=/tmp/uefi.$$
> imagefile=$TMPDIR/1.img
> mkdir -p $TMPDIR/mnt
> dd if=/dev/zero of=$imagefile bs=1k count=80000
> mkfs.vfat $imagefile
> mount -t vfat -o loop $imagefile $TMPDIR/mnt
> dest=$TMPDIR/mnt/boot/efi
> mkdir -p $dest
> cp /boot/vmlinuz-3.10.0-229.el7.x86_64 $TMPDIR
> cp /boot/initramfs-3.10.0-229.el7.x86_64.img $TMPDIR
> cp /usr/share/syslinux/efi64/* $dest
> cp /usr/share/syslinux/isolinux.bin $TMPDIR
> cat > $dest/syslinux.cfg << EOF
> PROMPT 0
>  
> MENU TITLE PXE UEFI Special Boot Menu
> MENU AUTOBOOT Starting Local System in # seconds
>  
> LABEL bootlocal
>   MENU LABEL ^Boot on local HDD
>   MENU DEFAULT
>   LOCALBOOT 0
> TIMEOUT 80
> TOTALTIMEOUT 9000
>  
> LABEL RHEL 7.1
>   MENU LABEL ^RHEL 7.1
>   KERNEL vmlinuz-3.10.0-229.el7.x86_64
>   APPEND initrd=initramfs-3.10.0-229.el7.x86_64.img
> EOF
> umount $TMPDIR/mnt
> cd $TMPDIR
> /usr/bin/mkisofs -U -J -r -v -p Mindi -publisher http://www.mondorescue.org -A Mindi -V Mindi_Image -o testuefi.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -efi-boot 1.img -no-emul-boot .
> pwd
> ls -al `pwd`
> ------------------------------------------------------------------------
> 
> Which produces the folloing output:
> 
> ------------------------------------------------------------------------
> 80000+0 records in
> 80000+0 records out
> 81920000 bytes (82 MB) copied, 0.207685 s, 394 MB/s
> mkfs.fat 3.0.20 (12 Jun 2013)
> Warning: creating filesystem that does not conform to ISO-9660.
> I: -input-charset not specified, using utf-8 (detected in locale
> settings)
> genisoimage 1.1.11 (Linux)
> Scanning .
> Scanning ./mnt
> Writing:   Initial Padblock                        Start Block 0
> Done with: Initial Padblock                        Block(s)    16
> Writing:   Primary Volume Descriptor               Start Block 16
> Done with: Primary Volume Descriptor               Block(s)    1
> Writing:   Eltorito Volume Descriptor              Start Block 17
> Size of boot image is 4 sectors -> No emulation
> Size of boot image is 160000 sectors -> No emulation
> Done with: Eltorito Volume Descriptor              Block(s)    1
> Writing:   Joliet Volume Descriptor                Start Block 18
> Done with: Joliet Volume Descriptor                Block(s)    1
> Writing:   End Volume Descriptor                   Start Block 19
> Done with: End Volume Descriptor                   Block(s)    1
> Writing:   Version block                           Start Block 20
> Done with: Version block                           Block(s)    1
> Writing:   Path table                              Start Block 21
> Done with: Path table                              Block(s)    4
> Writing:   Joliet path table                       Start Block 25
> Done with: Joliet path table                       Block(s)    4
> Writing:   Directory tree                          Start Block 29
> Done with: Directory tree                          Block(s)    2
> Writing:   Joliet directory tree                   Start Block 31
> Done with: Joliet directory tree                   Block(s)    2
> Writing:   Directory tree cleanup                  Start Block 33
> Done with: Directory tree cleanup                  Block(s)    0
> Writing:   Extension record                        Start Block 33
> Done with: Extension record                        Block(s)    1
> Writing:   The File(s)                             Start Block 34
>   9.69% done, estimate finish Sun Oct 25 12:06:18 2015
>  19.34% done, estimate finish Sun Oct 25 12:06:18 2015
>  29.02% done, estimate finish Sun Oct 25 12:06:18 2015
>  38.67% done, estimate finish Sun Oct 25 12:06:18 2015
>  48.36% done, estimate finish Sun Oct 25 12:06:18 2015
>  58.01% done, estimate finish Sun Oct 25 12:06:18 2015
>  67.69% done, estimate finish Sun Oct 25 12:06:18 2015
>  77.34% done, estimate finish Sun Oct 25 12:06:18 2015
>  87.03% done, estimate finish Sun Oct 25 12:06:18 2015
>  96.70% done, estimate finish Sun Oct 25 12:06:18 2015
> Total translation table size: 2048
> Total rockridge attributes bytes: 827
> Total directory bytes: 2048
> Path table size(bytes): 22
> Done with: The File(s)                             Block(s)    51538
> Writing:   Ending Padblock                         Start Block 51572
> Done with: Ending Padblock                         Block(s)    150
> Max brk space used 0
> 51722 extents written (101 MB)
> /tmp/uefi.2667
> total 206532
> drwxr-xr-x.  3 root root      4096 Oct 25 12:06 .
> drwxrwxrwt. 29 root root      4096 Oct 25 12:06 ..
> -rw-r--r--.  1 root root  81920000 Oct 25 12:06 1.img
> -rw-r--r--.  1 root root  18557142 Oct 25 12:06 initramfs-3.10.0-229.el7.x86_64.img
> -rw-r--r--.  1 root root     40960 Oct 25 12:06 isolinux.bin
> drwxr-xr-x.  2 root root      4096 Oct 25 12:06 mnt
> -rw-r--r--.  1 root root 105926656 Oct 25 12:06 testuefi.iso
> -rwxr-xr-x.  1 root root   5026624 Oct 25 12:06 vmlinuz-3.10.0-229.el7.x86_64
> ------------------------------------------------------------------------
> 
> I then boot another server using the iLO remote console and give to the
> server a virtual media pointing to the ISO image testuefi.iso which i
> have copied to my deployment server which served it through http to it.
> 
> For now that image is not booted automatically (that's another issue I
> need to solve, but that's not blocking for now), so I use the UEFI menu
> to go onto the MBR partition of the bootable ISO, into boot/efi and
> select syslinux.efi to execute. That's where the red screen occurs.
> 
> I think it's reproduceable by other people provinding you have a Linux
> system with mkfs.fvat, syslinux 6.03 (or your version for the efi files), 
> and a mksisofs/genisoimage supporting efi boot (at least pretending to 
> ;-). For other non RHEL systems, it could be possible to use other 
> options such as -eltorito-platform 0xEF -eltorito-boot instead of 
> -efi-boot from what I read.
> 
> Hope this clarifies what I'm trying to do, and feel free to point me to
> error I could have made in the usage of syslinux.
> 
> Thanks again for your help and return,
> Bruno.
> -- 
> Open Source Profession, Linux Community Lead WW  http://opensource.hp.com
> HP EMEA EG Open Source Technology Strategist         http://hpintelco.net
> FLOSS projects:     http://mondorescue.org     http://project-builder.org 
> Musique ancienne? http://www.musique-ancienne.org http://www.medieval.org
> _______________________________________________
> 

Some points to consider, if not for general use then at least for the 
troubleshooting phase:

_ Creating filesystem that _does_ conform to ISO-9660;

_ The fat image should not be bigger than 32MiB, and it should be 
aligned. The latter suggestion is usually ignored by almost everyone, 
but if we are troubleshooting...

_ Creating a UEFI-boot-only image...

_ genisoimage is not the same as mkisofs; do not use the former (which 
has been unmaintained since 2010). BTW, the EFI parameters for mkisofs 
are documented in its manual (year 2012 is the latest version of the 
manual available, with 2010 being the prior version of the manual).

_ "eltorito-alt-boot -efi-boot 1.img -no-emul-boot" will be inadequate 
for mkisofs.

_ Since you don't even get to the Syslinux prompt, I would suggest, for 
troubleshooting purposes, to not even care about the kernel+initrd; 
don't add these files. Let's just see syslinux.efi + ldlinux.e* get to 
the Syslinux boot prompt.


You mentioned some MBR. The efi image should not have any MBR, and if 
the ISO image was treated with isohybrid, I would suggest avoiding it 
at this time, for troubleshooting purposes.

I apologize if something I wrote here is not clear enough. At this 
moment I don't have the time for more details / clearer explanations.

For troubleshooting, KISS.

Regards,
Ady.



More information about the Syslinux mailing list