Jump to content











Photo
- - - - -

Multi-boot CD for EFI systems possible ?


  • Please log in to reply
4 replies to this topic

#1 sanbarrow

sanbarrow

    Silver Member

  • Developer
  • 788 posts
  • Location:Germany - Sauerland

Posted 23 April 2013 - 11:35 AM

I have 3 different Boot-CDs that work on EFI-systems : WinPE 3, Ubuntu 64 and ESXi 5.1

I would like to combine all 3 into one Iso but dont see a way to do that.

I create the isos with 3 different efi.img files and as the efi.imgs are used as boot-images it looks like there is no chance to combine them into one.

Am I missing something ?

Ulli



#2 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 14626 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 23 April 2013 - 03:55 PM

I have 3 different Boot-CDs that work on EFI-systems : WinPE 3, Ubuntu 64 and ESXi 5.1

I would like to combine all 3 into one Iso but dont see a way to do that.

I create the isos with 3 different efi.img files and as the efi.imgs are used as boot-images it looks like there is no chance to combine them into one.

Am I missing something ?

Ulli

Can you detail how exactly are you making a single .iso now?

Which program do you use to make the .iso?

With which settings/command line?

How is (approximately) the size of each?

Which "main" bootmanager are you using (presuming you are using a no-emulation CD/DVD bootsector)?

What exactly is a "efi.img" and how exactly you make them?

 

:cheers:

Wonko



#3 cdob

cdob

    Gold Member

  • Expert
  • 1424 posts

Posted 23 April 2013 - 07:24 PM

I create the isos with 3 different efi.img files and as the efi.imgs are used as boot-images it looks like there is no chance to combine them into one.
Why do you like to combine efi images?

Choose a bootloader and chainload the other OS. Ubuntu uses grub2 at UEFI mode.

boot\grub\grub.cfg
menuentry "Windows" {
  chainloader /efi/microsoft/boot/cdboot_noprompt.efi
}
File names are case sensitive.

However I get a Windows Boot Manager error:
Status: 0xc000000e
Info: A required device isn't connected or can't be accessed.

Something is false or missing.

Well, bcd file is processed at last

#4 cdob

cdob

    Gold Member

  • Expert
  • 1424 posts

Posted 24 April 2013 - 06:06 PM

As for testing purposes:
Windows 8 installation files copied to a folder.
Ubuntu files copied to the same folder.

EFI multi boot catalog. No idea it this is supported at all.
mkisofs.exe -iso-level 3 -N -D -d -relaxed-filenames -allow-multidot -udf -r -hide boot.catalog -hide-udf boot.catalog -eltorito-platform efi -no-emul-boot -b boot/grub/efi.img -eltorito-alt-boot -eltorito-platform efi -no-emul-boot -b efi/microsoft/boot/efisys.bin -o \EFImulti.iso .

VMware Player 5 with EFI boot:

EFI CDRom boot selects first El Torito EFI boot catalog entry /boot/grub/efi.img


EFI Internal Shell:

blk2 contains mapped floppy image /boot/grub/efi.img
'blk2:\> \efi\boot\bootx64.efi' boots grub2
Chainloading windows fails: Windows Boot Manager Status: 0xc000000e

blk3 contains mapped floppy image /boot/grub/efi.img
'blk2:\> \EFI\BOOT\BOOTX64.EFI' boots Windows 8 installation.

It's possible to create a multi EFI boot DVD, however EFI shell is required.

Conclution:
Windows 8 boots from CDRom device, it's not file system or similar.

bcd file refers to device 'ramdisk=[boot]\sources\boot.wim'

chainloader /efi/microsoft/boot/cdboot_noprompt.efi dosn't match [boot] requirements.

#5 sanbarrow

sanbarrow

    Silver Member

  • Developer
  • 788 posts
  • Location:Germany - Sauerland

Posted 24 April 2013 - 09:50 PM

Can you detail how exactly are you making a single .iso now?

Which program do you use to make the .iso?

With which settings/command line?

How is (approximately) the size of each?

Which "main" bootmanager are you using (presuming you are using a no-emulation CD/DVD bootsector)?

What exactly is a "efi.img" and how exactly you make them?

 

:cheers:

Wonko

I use mkisofs with a command like this

mkisofs-3.01a06.exe  -l    -v -iso-level 4 -l -J -joliet-long -R -volid     %Volume_Name%    -sysid "" -A "EFIMAGE" -V Efi-LIVE -c BOOT.CAT -eltorito-platform "x86" -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -eltorito-platform "efi" -b  boot/grub/efi.img  -no-emul-boot -input-charset utf-8 -o linux.iso linux

That one is for the Ubuntu64 CD.

For the ESXi-CDs I use
mkisofs-3.01a06.exe  -l -no-iso-translate -sysid "" -A "ESXIMAGE" -V ESXi-LIVE -c BOOT.CAT -eltorito-platform "x86" -b ISOLINUX.BIN -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -eltorito-platform "efi" -b EFIBOOT.IMG -no-emul-boot -input-charset utf-8 -o esxi55-1043421.iso esxi55-1043421

The ESXi CDs are about 150 MBs and the Linux CDs vary between 300 MBs and 1100 Mbs.

The efi.img files use a fat12 filesystem with a directory structure like this for ESXi
EFI
EFI\BOOT
EFI\DRIVERS
EFI\BOOT\BOOTIA32.EFI
EFI\BOOT\BOOTx64.EFI
EFI\DRIVERS\ISO9660IA32.EFI
EFI\DRIVERS\ISO9660x64.EFI

and with this structure for Linux Ubuntu 64
EFI
EFI\BOOT\BOOTIA32.EFI
EFI\BOOT\BOOTx64.EFI

The files BOOTIA32.EFI and BOOTx64.EFI are different for both images.

Here is some background info about those efi.img files
http://bugs.centos.o...?id=5387#c14163

For booting from normal BIOS machines I use grub4dos as the bootmanager.
For that case I use memdisk to load the ESXi images into RAM as they are quite small.

The menu.lst I use for ESXi looks like

iftitle [find --ignore-floppies /moa/esxi51-799733.iso] run ESXi 5.1 build 799733
find --set-root --ignore-floppies /moa/esxi51-799733.iso
map /moa/esxi51-799733.iso (0xff) || map --mem /moa/esxi51-799733.iso (0xff)
map --hook
chainloader (0xff)

The Ubuntu 64 is loaded either as ISO - if it is the small version or in case it is a large one I use

iftitle [find --ignore-floppies /casper/initrd.gz] Ubuntu 64 non-persistent
kernel /casper/vmlinuz noprompt cdrom-detect/try-usb=true  file=/casper/custom.seed boot=casper initrd=/casper/initrd.gz quiet --
initrd /casper/initrd.gz

iftitle [find --ignore-floppies /casper/initrd.gz] Ubuntu 64 persistent uses a casper-rw file
kernel /casper/vmlinuz noprompt cdrom-detect/try-usb=true  persistent file=/casper/custom.seed boot=casper initrd=/casper/initrd.gz quiet --
initrd /casper/initrd.gz

Booting from BIOS systems works well.

>> Why do you like to combine efi images?

Good question - I assume I want to do this because I already have the options I want in the CD/DVD for BIOS machines - so I would regard having to use several CDs for an EFI-system as a step back.

For now I would be happy if I could combine a 300 Mb Ubuntu ISO with one for ESXi.
I use both of them regularly when doing VMware recovery work - then I tell my customers to download one iso that can be used to boot into Linux and ESXi.

>> Choose a bootloader and chainload the other OS. Ubuntu uses grub2 at UEFI mode.

Good suggestion - I try that right now.






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users