[syslinux] Isohybrid wiki page and UEFI

Bruno Cornec Bruno.Cornec at hpe.com
Sun Oct 25 04:32:12 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


More information about the Syslinux mailing list