Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

Acronis ISO Boot on UEFI PC

- - - - - Acronis UEFI

  • Please log in to reply
87 replies to this topic

#1
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

On a BIOS PC, most folks use Grub4DOS to boot ISO images. But how to boot them on UEFI PC, especially without Legacy CSM Mode, since Grub4DOS doesn't support UEFI? Taking a popular Acronis True Image Home (ATIH2014) ISO as an example (either Linux or WinPE 5.0 based, or better BOTH), can someone explain, how to boot an ISO on UEFI Windows 8.1 PC?

 

I found one example of booting seemingly WinPE-based UEFI ATIH2014 (release unknown) by Grub2. That didn't work for me - couldn't find dat8.dat and dat9.dat files in Boot.bif image extracted by UltraISO from the mounted ATIH2014 ISO boot sector. I couldn't also mount any *.img files from Floppy Image written on the ISO's CD track due to unknown *.img filesystem. 

 

Its unclear, why boot images extracted by ISOBuster were different from those extracted by UltraISO from the same ISO?  As well, how an average user can derive similar grub.cfg menu section - based on what miracle vision? Any background explanation or more generalized logical approach would be handy...   :whistle:

 

Also, how GOP-only HW support plays into this?  :angel


Edited by zamarac, 30 August 2014 - 05:31 PM.



How to remove advertisement from MSFN

#2
cdob

cdob

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,000 posts
  • Joined 29-September 05

On a BIOS PC, most folks use Grub4DOS to boot ISO images.

This combination can emulate a virtual CD drive and boot the El Torito routine. This works, as long following boot routines uses BIOS routines too.
 

But how to boot them on UEFI PC

There is no similiar approach, no virtual CD drive.

There is no El Torito boot routine: hence booting from a ISO file is impossible so far.

Yes, there are work arounds, e.g. loopback the ISO at grub2 and read files from the loopback drive.
This works up to a certain leveal and may fail at other.
 

I found one example of booting seemingly WinPE-based UEFI ATIH2014 (release unknown) by Grub2.

The example was posted at section "Boot Linux and other OS flavours".
Maybe this relate to a Linux based Acronis, not to a WinPE-based.

 

 

I don't know a UEFI ISO file WinPE soluiton.



#3
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

Maybe this relate to a Linux based Acronis, not to a WinPE-based.

 

Sorry, I missed that, now need to re-test.   :unsure:  The error I got using your grub.cfg menu was "no dat.8.dat", but initially I tested ATIH2015_Linux.ISO. Do you know what was the release version of ATIH2014 you were using? How did you arive to that menu sequence?

 

What's the filesystem of Acronis.img and BootImage.img files from Bootable Disk floppy extracted by ISOBuster? Also, what program can open this particular BootCatalog.cat from the Floppy?

 

How to open ATIH2014_WinPE.bif bootsector extracted from the ISO mounted by UltraISO? Hopefully, the secret of booting this ISO is in content of these files.   :)


Edited by zamarac, 31 August 2014 - 05:57 AM.


#4
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,564 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

zamarac, in the original post by cdob:

http://reboot.pro/to...-grub2-at-uefi/

 

there is NO "extraction" of anything, a loopback device is "hooked" to a sectors extent.

The extent is determined by the LBA addresses in the .iso that Isobuster should show.

Maybe the .iso you have has different location (or extents).

 

And of course, if your version is Windows PE based it will be completely different.

 

You normally don't want to actually "know" what is inside (or access) the bootcatalog, but if you really-really want to, this (seemingly unrelated) thread might be of interest to you:

http://reboot.pro/to...ting-iso-files/

usually (but not always) the bootcatalog is on LBA 32, just before the boot image, you can dump it and have a look at it's contents with a hex editor/viewer easily:

http://will.tip.dhap...extraction.html

http://wiki.osdev.org/El-Torito

 

If it is WinPE based, it is possible that it has been "burned" with just the "bios" provisions and not with the "UEFI" ones, see this (also seemingly unrelated) thread:

http://www.msfn.org/...m-bootable-usb/

 

 

Can you post the output of a DIR /S command listing the contents of the .iso?

 

jaclaz



#5
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

cdob

 

The Acronis CD boot uses a El Torito floppy image
IsoBuster  free displays the layout

Example: Boot image start at LBA 76543 (4*76543 = 306172)
The ElTorito image size is not defined:
The next file LBA 145678.
Image size = 4 * (145678-76543) = 276540
 
Example grub.cfg, adjust LBA numbers yourself
 
 
menuentry "Acronis True Image Home 2014 ISO ElTorito" {
set quiet=1
set gfxpayload=1024x768x32,1024x768
set mbrcrcs=on
set isofile="/images/ATIH2014.iso"
search --set -f $isofile
loopback loop $isofile
echo mount the El Torito floppy image
loopback ElTorito (loop)306172+276540
#ls (ElTorito)/efi/boot/
linux (ElTorito)/efi/boot/dat9.dat quiet
initrd (ElTorito)/efi/boot/dat8.dat
boot
}
 

Now I retested ATIH2014_R6688_Linux.ISO, and it does boot via Grub2 in UEFI mode and work PERFECT using your adjusted menu:

menuentry "Acronis True Image Home 2014 ISO ElTorito" {
set quiet=1
set gfxpayload=1024x768x32,1024x768
set mbrcrcs=on
set isofile="/ISO/ATIH2014.iso"
search --set -f $isofile
loopback loop $isofile
echo mount the El Torito floppy image
loopback ElTorito (loop)582684+304124
#ls (ElTorito)/efi/boot/
linux (ElTorito)/efi/boot/dat9.dat quiet
initrd (ElTorito)/efi/boot/dat8.dat
boot
}

Its possible that actual LBA numbers may vary depending on Acronis release and what PC the ISO was generated on, since it might include some info related to that PC: drivers etc.

 

erykqw.jpg

 

 

2rohpnn.jpg

 

 

jaclaz

 

A few minutes pls. I did the files extraction manually, since I wanted to come up with an idea, how to derive similar grub.cfg menu section for the next Acronis ISO release.


Edited by zamarac, 31 August 2014 - 07:12 AM.


#6
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,564 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

Good. :)

Then it is the Linux based version. :yes:

 

Possibly you can use a method similar to the one used in the mentioned thread:

http://reboot.pro/to...ting-iso-files/

making use of isoinfo to automatically (by batch) find which LBA extents that need to be hooked specifically to the (ElTorito) device (or reading these data directly from the bootcatalog).

 

I have never used it, but there is (for Linux) a "dumpet" tool:

http://dev.man-online.org/man1/dumpet/

that may be useful :unsure:

 

jaclaz



#7
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

jaclaz

 

Here's the content of Boot.bif bootable image as extracted from a mounted ATIH2014_Linux.ISO by UltraISO, then opened in UltraISO and extracted as folder:



08/30/2014 10:13 AM <DIR> .
08/30/2014 10:13 AM <DIR> ..
08/23/2014 01:30 PM 32,006 BOOTMENU.EXE
08/23/2014 01:30 PM 1,103 BOOTMENU.XML
08/23/2014 01:30 PM 284 BOOTWIZ.CFG
08/23/2014 01:30 PM 24,576 BOOTWIZ.SYS
08/23/2014 01:30 PM 14,563 C1.PNG
08/23/2014 01:30 PM 15,690 C2.PNG
08/23/2014 01:30 PM 4,917,695 CPP.SO
08/23/2014 01:30 PM 65,502,154 DAT2.DAT
08/23/2014 01:30 PM 2,304,384 DAT3.DAT
08/23/2014 01:30 PM 65,501,965 DAT4.DAT
08/23/2014 01:30 PM 2,304,384 DAT5.DAT
08/23/2014 01:30 PM 2,803,392 FOX.SO
08/23/2014 01:30 PM 1,458,385 GRAPHAPI.SO
08/23/2014 01:30 PM 1,989,936 ICU38.SO
08/23/2014 01:30 PM 1,740,048 ICUDT38.SO
08/23/2014 01:30 PM 397,108 LIBC.SO
08/23/2014 01:30 PM 355,246 LIBGCC_S.SO
08/23/2014 01:30 PM 12,665 MENULOGO.PNG
08/23/2014 01:30 PM 4,850 MOUSE.COM
08/23/2014 01:30 PM 102,928 OSFILES.SO
08/23/2014 01:30 PM 175,956 RESOURCE.SO
08/23/2014 01:30 PM 67,819 SPL1.EXE
08/23/2014 01:30 PM 67,819 SPL3.EXE
08/23/2014 01:30 PM 108,580 THREADS.SO
08/23/2014 01:30 PM 2,111,429 TI_BOOT.SO
25 File(s) 152,014,965 bytes
2 Dir(s) 19,857,887,232 bytes free

It doesn't seem to contain dat8.dat and dat9.dat files, which makes me wonder, where these files are? And once its determined, the next question would be: HOW one can derive grub.cfg section that would suddenly boot this particular ISO in Grub2?


Edited by zamarac, 31 August 2014 - 07:39 AM.


#8
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

Can you post the output of a DIR /S command listing the contents of the .iso?

 

As re-tested, the same approach suggested by cdob works well for ATIH2015_Linux.ISO booting by Grub2 in UEFI mode. I found links on the web for ATIH2014_Linux.ISOATIH2015_Linux.ISOATIH2015_WinPE5.iso made as advertised from 30-day trial installs someone uploaded for testing. Similar trial ISOs might be available from Acronis site directly. The ISOs may have some limitations, but still useful for boot testing and analysis only.

 

I still wonder how to derive similar Grub2 menu for ATIH2014_WinPE5.ISO booting in UEFI mode? To download the ISOs, deselect "Use Download Manager" down the linked webpage, then click on the file NAME, close any pages if open (no need to click any links inside).


Edited by zamarac, 05 September 2014 - 09:02 AM.


#9
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,564 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag
Well, how did you derive these two values?:
ElTorito (loop)582684+304124
 
 

Example: Boot image start at LBA 76543 (4*76543 = 306172)
The ElTorito image size is not defined:
The next file LBA 145678.
Image size = 4 * (145678-76543) = 276540


Bootimage.img LBA (as seen in IsoBuster) 145671 *4 = 582684 (here you are simply transforming the address expressed in 2048 bytes/sectors - standard for .iso and CD/DVD media - into 512/bytes sectors - used in floppy and hard disk like devices)

Lowest next LBA is 221702, hence 221702-145671= 76031 and 76031*4=304124

If the isoinfo tool works on that image, it is pretty easy to parse it's output to get those numbers, do th esimple calculations and output a "custom made" GRUB2 grub.cfg entry.

Can you try getting isoinfo (part of the CDR tools):
http://www.student.t...t/thomas.plank/
and run the command
isoinfo -d -i isoimage.iso

An example output would be something like:

Setting input-charset to 'UTF-8' from locale.
CD-ROM is in ISO 9660 format
System id: LINUX
Volume id: Core
Volume set id:
Publisher id:
Data preparer id:
Application id: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREA
TOR © 1993 E.YOUNGDALE © 1997 J.PEARSON/J.SCHILLING
Copyright File id:
Abstract File id:
Bibliographic File id:
Volume set size is: 1
Volume set sequence number is: 1
Logical block size is: 2048
Volume size is: 4046
El Torito VD version 1 found, boot catalog is in sector 36

Joliet with UCS level 3 found.
SUSP signatures version 1 found
Rock Ridge signatures version 1 found
Rock Ridge id 'RRIP_1991A'
Eltorito validation header:
Hid 1
Arch 0 (x86)
ID ''
Cksum AA 55 OK
Key 55 AA
Eltorito defaultboot header:
Bootid 88 (bootable)
Boot media 0 (No Emulation Boot)
Load segment 0
Sys type 0
Nsect 4
Bootoff 25 37


The 37 above is the LBA address of the (only) Boot image in my .iso, if the isoinfo works on your image you might have two entries, one pointing to LBA 29 and one pointing to LBA 145671 (corresponding to your first isobuster screenshot)

As well, if you run:
isoinfo -l -i isoimage.iso
you will have an output *like*:

Setting input-charset to 'UTF-8' from locale.

Directory listing of /
d--------- 0 0 0 2048 Apr 2 2008 [ 29 02] .
d--------- 0 0 0 2048 Jan 20 2013 [ 29 02] ..
d--------- 0 0 0 2048 Jan 20 2013 [ 30 02] BOOT

Directory listing of /BOOT/
d--------- 0 0 0 2048 Jan 20 2013 [ 30 02] .
d--------- 0 0 0 2048 Apr 2 2008 [ 29 02] ..
---------- 0 0 0 5385057 Jan 20 2013 [ 44 00] CORE.GZ;1
d--------- 0 0 0 2048 Aug 20 2011 [ 31 02] ISOLINUX
---------- 0 0 0 2491968 Feb 21 2012 [ 2674 00] VMLINUZ.;1

Directory listing of /BOOT/ISOLINUX/
d--------- 0 0 0 2048 Aug 20 2011 [ 31 02] .
d--------- 0 0 0 2048 Jan 20 2013 [ 30 02] ..
---------- 0 0 0 2048 Jan 20 2013 [ 36 00] BOOT.CAT;1
---------- 0 0 0 221 Jun 4 2011 [ 3891 00] BOOT.MSG;1
---------- 0 0 0 870 Apr 11 2012 [ 3892 00] F2.;1
---------- 0 0 0 1059 Apr 11 2012 [ 3893 00] F3.;1
---------- 0 0 0 929 Aug 15 2011 [ 3894 00] F4.;1
---------- 0 0 0 14336 Jan 20 2013 [ 37 00] ISOLINUX.BIN;1
---------- 0 0 0 249 Aug 25 2012 [ 3895 00] ISOLINUX.CFG;1

D:\mycdtools>isoinfo -l -i myniceCD.iso
Setting input-charset to 'UTF-8' from locale.

Directory listing of /
d--------- 0 0 0 2048 Apr 2 2008 [ 29 02] .
d--------- 0 0 0 2048 Jan 20 2013 [ 29 02] ..
d--------- 0 0 0 2048 Jan 20 2013 [ 30 02] BOOT

Directory listing of /BOOT/
d--------- 0 0 0 2048 Jan 20 2013 [ 30 02] .
d--------- 0 0 0 2048 Apr 2 2008 [ 29 02] ..
---------- 0 0 0 5385057 Jan 20 2013 [ 44 00] CORE.GZ;1
d--------- 0 0 0 2048 Aug 20 2011 [ 31 02] ISOLINUX
---------- 0 0 0 2491968 Feb 21 2012 [ 2674 00] VMLINUZ.;1

Directory listing of /BOOT/ISOLINUX/
d--------- 0 0 0 2048 Aug 20 2011 [ 31 02] .
d--------- 0 0 0 2048 Jan 20 2013 [ 30 02] ..
---------- 0 0 0 2048 Jan 20 2013 [ 36 00] BOOT.CAT;1
---------- 0 0 0 221 Jun 4 2011 [ 3891 00] BOOT.MSG;1
---------- 0 0 0 870 Apr 11 2012 [ 3892 00] F2.;1
---------- 0 0 0 1059 Apr 11 2012 [ 3893 00] F3.;1
---------- 0 0 0 929 Aug 15 2011 [ 3894 00] F4.;1
---------- 0 0 0 14336 Jan 20 2013 [ 37 00] ISOLINUX.BIN;1
---------- 0 0 0 249 Aug 25 2012 [ 3895 00] ISOLINUX.CFG;1

corresponding to your second isobuster screenshot, from which it will be easy to get the smallest LBA bigger than 145671

jaclaz

#10
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

OK, I do understand, you want to suggest another approach for deriving ATIH_Linux.ISO's  grub.cfg menu values based on using a free tool rather then a free trial tool. I can try that...  Btw, someone uploaded the ATIH2014_E_Linux.iso for testing during 30-day free trial period, so you can try booting it in UEFI mode too, deriving at proper Boot Menu section, and checking if it contains visible anywhere dat8.dat and dat9.dat files. :D

 

How about my other questions, like this and that ones? I was actually asking about menu STRUCTURE rather than VALUES, and... some more.  :P


Edited by zamarac, 31 August 2014 - 09:14 AM.


#11
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,564 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

Actually it was more about automating the generation of the right offsets (and of the actual GRUB2 entry) avoiding the risks about mistyping the offsets read on a GUI tool.

I have NO idea how the .iso's are actually made (and no I won't download a - ahem - of doubtable origin .iso just to check how it is made).

I do have *somewhere* an old version, possibly 2011 or 2012,, if I recall correctly, IF I find it, I may have a look at it (provided that uses the same approach) and put together a quick batch.

 

And as said, I presume that the WinPE version will be completely different, and will need a completely different grub.cfg entry, presumably similar to those of a "normal" Windows PE bootable CD/DVD.

 

About the Linux based image, try dropping to the GRUB2 command line and try the commands:

 

set isofile="/ISO/ATIH2014.iso"
search --set -f $isofile
loopback loop $isofile
echo mount the El Torito floppy image
loopback ElTorito (loop)582684+304124

 

 

Then, issue command:

ls (ElTorito)/efi/boot/

 

you should get a directory listing of the files in the loopback device (and among them there should be a dat8.dat and a dat9.dat files, otherwise the following commands.

 

linux (ElTorito)/efi/boot/dat9.dat quiet
initrd (ElTorito)/efi/boot/dat8.dat
boot

would give you an error.

 

jaclaz



#12
cdob

cdob

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,000 posts
  • Joined 29-September 05

Example grub.cfg, adjust LBA numbers yourself

Its possible that actual LBA numbers may vary depending on Acronis release


Of course the LBA numbers differes at different ISO images, hence the "adjust LBA numbers yourself"

#13
cdob

cdob

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,000 posts
  • Joined 29-September 05

If the isoinfo tool works on that image

Isoinfo list first boot image only: this is the Acronis BIOS boot image.
The UEFI image is not listed.

And the files at CD file system are not the boot ones.
 

using a free tool

Read the license models again: http://www.isobuster...ense-models.php
The FREE version supports the requested task, there is no need for another version.

#14
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

Isoinfo list first boot image only: this is the Acronis BIOS boot image.

The UEFI image is not listed.

 

OK, it looks like UltraISO extracted boot image from a mounted Linux ISO is also BIOS-only? Any way to extract UEFI boot image?

 

Do you know why namely dat8.dat and dat9.dat were listed in your Grub.cfg? Is there a way for an ordinary user to figure out, what dat*.dat files to list in grub.cfg?  :rolleyes:



#15
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,564 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

I found and checked the 2012 version.

I kinda expected that Isoinfo would have listed only the first boot image, but I was surprised that it doesn't list properly the "normal" contents of the CD.

I suspect that the good Acronis guys are making .iso's which are not fully-fully conforming to the standard.

 

However, I am putting together one of my usual half-@§§ed batches to interpret directly the structure, and it seems to me that there won't be problems.

 

@cdob

The method of assuming that the extent of the image is "up to the next LBA" (while working :thumbup) is not entirely "foolproof", since the EF image needs to be FAT, I am instead parsing the bootsector of the image, counting the sectors in the BPB.

 

@zamarac

In Isobuster, go to:

Options->File systems Settings->El Torito (boot)
Check "Check boot-image(s) for FAT and list files and folders if present"

you will see a new item in the left hand window "tree" which will be the FAT image (and it's contents) ;).

 

BTW, once one has the "right" offset in 512 bytes sectors, the FAT image can be mounted in IMDISK fine :yes:.

 

jaclaz

 

P.S.: Attached the small batch, it may be more "verbose" than really needed, but anyone can remove the ECHO's that may be considered superfluous.

It needs dumphex http://rbach.priv.at/DumpHex/

Have fun. :)

Attached Files


Edited by jaclaz, 01 September 2014 - 03:23 AM.


#16
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

Attached the small batch

 

Useful batch! :yes:   It works well for ATIH Linux based ISOs. Still "half-assed", since with ATIH WinPE based ISOs (and possibly with Linux based, where EFI.img is very small) it doesn't show size in sectors or bytes in a way that would allow ImDisk to mount the EFI.img. Instead the entire 500MB ISO or IMG must be mounted by ImDisk to view EFI.img content, and its unclear, how to extract the EFI.img. B)  You might consider downloading ATIH2015_WinE5.iso for the batch refinement - just follow safe download instructions. The file itself is CLEAN as reported.

 

dpk94m.jpg

 

Another issue is, while UltraISO is able to extract (ElTorito BIOS) Boot.bif from a mounted ATIH2014_Linux.iso (but not EFI.img), and then Save As it to Boot.img or extract content to a folder, it can't extract BIOS.bif  from a mounted ATIH2015_Linux.iso. Also ImDisk can't mount saved 2014 Boot.img - probably due to unknown offset. ISOBuster doesn't seem to show its BIOS.img content either. Not sure if it even exists, since mentioned Linux and WinPE ATIH 2015 ISOs were presumingly generated from UEFI Windows 8.1, but it should as they are made (according to Acronis KB) to be universally bootable on BIOS & UEFI systems. Is it possible to improve your batch in a way, so it can point to the BIOS.img as well?

 

ra81u0.jpg

 

 

The bigger question remains an unsolved mystery: How to boot the latest ATIH_WinPE.iso with Grub2


Edited by zamarac, 01 September 2014 - 10:44 AM.


#17
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,564 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

As said, the PE based .iso is likely to use an approach for EFI similar to the "standard" Windows 8/8.1 .iso's (which is a "1.44 Mb floppy image" even if the "type" is "No-emulation").

The posted batch was "targeted" to a "large" image only :blushing: my bad.

 

Find attached a modified version 0.02 of the batch that takes into account "small" images :yes:.

More technically it attempts to parse the "Large sectors" of the FAT image and if they are 0 it parses the "Small sectors".

 

If it is like that, i.e. there is a floppy image that contains a bootia32.efi or a bootx64.efi or a bootia64.efi in folder \efi\boot\, probably that is the file to be chainloaded :unsure:

 

On a "normal" Windows 8 install .iso, these files are also in the "normal" part of the CD/DVD, I believe that there are different kinds (how surprising :whistle:) of EFI/UEFI implementations, one, if you want more "strict", that looks for the "EF" image, and one that parses the UDF filesystem and finds the files in the "normal" part of the CD/DVD and these CD/DVD's are made in the attempt to cover all possibilties.

 

Also, the mentioned "dual mode" switches for OSCDIMG use a somewhat third approach, linking to the efisys.bin file "directly" (i.e. the \efi\microsoft\boot\efisys.bin is a "whole" image, a FAT 1.44 Mb floppy one, that contains the \efi\boot\*.efi and that can thus be chainloaded by GRUB2 as if it was the EFI image).

 

BUT I wouldn't be so sure :unsure: that the GRUB2 loopback approach does actually work chainloading a .efi file, see:

http://reboot.pro/to...b2-iso-booting/

cdob surely will be able to comment more appropriately on this.

 

 

jaclaz

Attached Files


Edited by jaclaz, 01 September 2014 - 11:05 AM.


#18
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

YES - now the batch works well for small and large EFI.img files! However, it still remains "quoter-assed", since while you were fixing it, the 2-nd problem shown up - it does show size and offset for EFI.img, but not for BIOS.img:whistle:

 

As to ATIH2015_WinPE5.iso, it indeed shows EFI folders in multiple places probably for "MS quality assurance" in addition to a small efisector boot EFI.img with one file:  \efi\boot\BOOTX64.EFI .

 

2i255op.jpg

 

24myohh.jpg
 

 

 

As said, the PE based .iso is likely to use an approach for EFI similar to the "standard" Windows 8/8.1 .iso's (which is a "1.44 Mb floppy image" even if the "type" is "No-emulation").

 

It would be nice, if that particular approach for booting it with Grub2 becomes known?     :P


Edited by zamarac, 01 September 2014 - 03:01 PM.


#19
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,564 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

I am not sure to understand what you mean by "BIOS.IMG" :unsure:

Do you mean the "no-emulation bootsector" or "no-emulation image"?

I.e. the one that in the screenshot you posted:

http://www.msfn.org/...c/#entry1085040

is 8 sectors in size and on LBA 186?

Or *something else*?

Can you post a more complete description of this "BIOS.IMG" or a screenshot of Isobuster or Ultraiso showing it?

 

The issue with GRUB2 booting a .efi file from a "loopback" device is - I believe - similar to the reason why Firadisk or Winvblock is needed for grub4dos booting Windows XP / PE's 1.x from .iso (and a ramdisk is needed also for Windows 7 install from .iso), at a certain point in the course of the booting process the grub4dos "real mode" hook is lost (unless another driver hooks it) and in the case of GRUB2 and loopback device, if the booted object is a Linux, the "real mode" loopback is "kept" by the Linux kernel (or whatever) but is lost because the Windows PE 3/4/5 misses a ramdiskl or filedisk driver hooking the loopback device.

 

jaclaz 



#20
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

I am not sure to understand what you mean by "BIOS.IMG" :unsure:

 

As mentioned here, each ATIH2014_Linux.iso contains 2 images: efi.img for booting on UEFI PC, and (eltorito)bios.img for booting on BIOS PC. While EFI Fat section is visible in ISOBuster under certain settings, bios.img AFAIK is NOT - neither in ISOBuster, no in UltraISO. However, the BIOS boot file can be extracted to bios.bif by UltraISO from the ISO mounted by ImDisk, while EFI boot file can be extracted in Windows either by ISOBuster (under Pro license), or via your free batch - thank you.

 

34iicz5.jpg
 

33adm44.jpg
 

Once the bios.bif is extracted, it can then be imported back to UltraISO, and reviewed or saved to bios.img or folder structure, but the bios.img is still not mountable via ImDisk (due to unknown offset?). That's why fully baked jaklaz's free batch ideally needs to point to two images (not one) or may be one bigger image comprising both?    :realmad:

 

28sn1fk.jpg

 

With ATIH2015_Linux.iso situation is a bit different: not only you can't see bios.img, but also UltraISO extracts instead what appears to be efi.bif or pointer file from the bootsector of Linux ISO mounted by ImDisk. Still its not mountable by ImDisk (due to unknown offset?) and neither importable back to UltraISO. I assume, its due to one of the reasons: 1) bios.img is absent in bootsector; 2) latest UltraISO is not yet capable to extract it. Nonetheless, the Linux ISO is expected to boot from both EFI and BIOS modes, so it likely needs 2 boot images?

 

ATIH2015_WinPE.iso also appears to have only one boot efi.img. But both Linux and WinPE5 based 2015 ISOs were tested to boot well in both BIOS and UEFI modes. Hence the question: how do they boot in BIOS mode?  Is it possible that both these images are in fact inside a single bigger ElTorito boot image (another ISO may be) hidden in a bootsector?   :o


Edited by zamarac, 01 September 2014 - 03:39 PM.


#21
cdob

cdob

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,000 posts
  • Joined 29-September 05

The issue with GRUB2 booting a .efi file from a "loopback" device is - I believe - similar to the reason why Firadisk or Winvblock is needed for grub4dos booting Windows XP / PE's 1.x from .iso (and a ramdisk is needed also for Windows 7 install from .iso), at a certain point in the course of the booting process the grub4dos "real mode" hook is lost (unless another driver hooks it) and in the case of GRUB2 and loopback device, if the booted object is a Linux, the "real mode" loopback is "kept" by the Linux kernel (or whatever) but is lost because the Windows PE 3/4/5 misses a ramdiskl or filedisk driver hooking the loopback device.

Yes, it's possible to 'set root=loop' and 'chainloader /efi/boot/bootx64.efi'
This works: grub loads bootx64.efi.
However bootx64.efi dosn't detect the loopback device, there is no support. The booting is truncated.
Acronis Linux fails.

And WinPE fails too: \boot\bcd is not found
A UEFI wimboot may work in future http://forum.ipxe.or...ad.php?tid=7261

Thanks for the awesome batch.
Nice to know: present a idea, relax and wait for a appropiate solution.
I call this teamwork. Good work.
 
 

It would be fine, if that particular approach for booting it with Grub2 becomes known?

Yes, that would be fine.

Neither Linux nor PE supports the loopback device.

As for today, I dare to say: there is no ISO file PE UEFI way.
Well, last ressort, follow the manufacturer approach: burn the ISO file to a real CD.


And use a hex editor to extract the boot images in doubt.
There is no GUI solution supporting all cases.

#22
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

Neither Linux nor PE supports the loopback device.


As for today, I dare to say: there is no ISO file PE UEFI way.
Well, last ressort, follow the manufacturer approach: burn the ISO file to a real CD.

And use a hex editor to extract the boot images in doubt.
There is no GUI solution supporting all cases.

 

Is this glass half full or empty? In the past, such "no solution" statements prompted active development. As to using a hex editor - nah, after being offered such nice "teamwork" batch most users won't do that. It may be the only tool now available for migrating boot images, when transferring UEFI Acronis ISOs onto USB Thumb. Can't say I was very relaxed though, but you may be. That's why dat8.dat and dat9.dat dark secrets remain untold - I wonder, where that grub.cfg menu came from... probably from a hex editor...     :lol:

 

Isn't wimboot available today? I'm writing a half-assed Tutorial about it, then will follow it to try myself. But how it can affect ISO boot in UEFI mode - hasn't boot.wim been used to boot WinPE for a long while?     :angel


Edited by zamarac, 02 September 2014 - 07:02 AM.


#23
cdob

cdob

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,000 posts
  • Joined 29-September 05

In the past, such "no solution" statements prompted active development.

Shure of course, there will be a solution.
Contrary it took several years to appear a ISO file windows driver.

Grub development rejeted El-Torito loopback in the past.
http://lists.gnu.org...1/msg00013.html
http://lists.gnu.org...1/msg00017.html

But it is not set in stone - try describing your use case on grub-devel.

https://lists.gnu.or...info/grub-devel

Current linux distributions ueses hybrid ISO mode: a fake MBR partition refers to the CD.
It's possible to ISO hybrid the El Torito image. Asks the manufacturer to do this.

 

That's why dat8.dat and dat9.dat dark secrets remain untold - I wonder, where that grub.cfg menu came from... probably from a hex editor... :lol:

Actually, yes from a hex editor initially.
Didn't you extracted the image in between?
bootx64.efi is the acronis efi loader. And reads the configuration file bootx64.xml.
Can you open the file bootx64.xml? Read the file and convert to grub requirement.
 

Isn't wimboot available today?

This is another approach, complelwete different to the mentioned one.
Another manufacturer uses a previous existing name.
 

hadn't WinPE used boot.wim approach for a long while?

It's readable from the boot drive directly.
If you use single files, you may boot the Acronis boot.wim from from the boot media.

#24
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,564 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

I am starting to see. :)

 

As hinted before it seems like the good Acronis guys are NOT making a "standard" CD.  :ph34r:

 

UltraISO is reknown (to me at least ;)) to do some non-standard things as well (often, additionally not particularly well documented) :(.

 

In the 2012 iso image I have handy, the situation is as follows (and I believe the ones you have are not that much different).

 

There is actually a "hidden" volume image (FAT16, making use of the proprietary Acronis BOOTWIZ bootmanager bootsector) that extends from sector LBA 52 (2048 bytes sector) for an extent of 194397 sectors (in 512 bytes sector).

 

The actual Boot Catalog is on sector LBA 39 (and does NOT "index" this image).

 

Sectors LBA 40-51 contain binary data (possibly a loader of some kind, I'll have a look at it), which is the file that both UltraIso and Isobuster see as "Acronis.img".

 

The issue with a No-emulation entry in Boot Catalog is that it provides NOT the extension (size) of the image, but rather the number of Sectors to Load (usually 4, and that is the reason why originally the bextract.cmd batch was written http://reboot.pro/to...ting-iso-files/ ), all utilities will "see" (and incorrectly show as "size") only the "size to be loaded".

 

The first "next" LBA sector actually indexed in the Boot Catalog is the "next" entry (the EFI one) on LBA 48652.

 

What Ultraiso extracts as .bif is sized 187,869,184 bytes,i.e. 187,869,184/2048=91,733 (2048 bytes) sectors.

 

The actual .bif then comprises BOTH the "LARGE El-Torito No Emulation image"  i.e.  is the extents 40-48651 that are made of:

In 2048 bytes sectors:

Loader 12 sectors

FAT 16 image  194397/4= 48599.25 rounded to 48600

Some "mystery" sectors <-  :unsure: (need to double check)

AND the whole extents 48652-91773 of the "EFI" image (that UltraIso *somehow* does not "detect/highlight" properly in the sense of "separating it from the first", it exports the .bif containing "all it can find").

91773-40=91733 which is the size of the .bif, Q.E.D. :)

 

So, if you mount in IMDISK the .bif, once with image file offset 12*4=48 (512 bytes block) you get access to what you call "BIOS.IMG", while if you mount the same .bif with image offset (48652-40)*4=194448 (512 bytes block) you get access to the "EFI.IMG"

 

You will need to replace the 40 and 48652 in the above calculation with your values, and as well it is possible that the size of the loader is not in your .iso's 12 sectors, but once adapted it should work on your images as well.

 

It is still not clear at all (to me) how can UltraIso later "show" the contents of the .bif (which actually are the contents of the first FAT image, most probably it simply scans the file to find a recognizable BPB :unsure., I'll have to check with some dummy data.

 

About the little batch, if we put a "limit" (using common sense) to the possible size of the loader (let's say between 1 and 20 x 2048 bytes sectors) i.e. to the extents of the "search" for the bootsectors/BPB that needs to be performed, and we assume that the image is FAT formatted, it will be easy to find it and extract the corresponding sectors.

 

Still it has to be seen what the "mystery sectors" are related to. 

 

jaclaz



#25
zamarac

zamarac

    Banned

  • Banned
  • Pip
  • 67 posts
  • Joined 07-April 09

It is still not clear at all (to me) how can UltraIso later "show" the contents of the .bif (which actually are the contents of the first FAT image, most probably it simply scans the file to find a recognizable BPB :unsure., I'll have to check with some dummy data.

 

 

Similarly, is it clear (to you), why UltraISO can show the content of ATIH2014_Linux.bif (what I call bios.img), but not the content of ATIH2015_Linux.bif (which is surprisingly only 2Kb in size compare to ATIH2014_Linux.bif at ~300Mb and ATIH2015_WinPE.bif at 4Kb)?   :)

 

And how these ISOs boot in BIOS - by using BOOTWIZ? I wonder why there is a need for 2 Acronis_Media structures in the 2014 ISOs that seem exactly the same, and why in 2015 Linux ISO the 1st Acronis_Media looks empty in UltraISO - may be it simply can't read its content?

 

Contrary it took several years to appear a ISO file windows driver.

 

Grub development rejeted El-Torito loopback in the past.

 

Are there any signs of someone even looking in that direction or to installing Win8.1 from ISO, as the problem seems to be similar? I'm a bit shocked to learn, once MS offered Win install from USB, no-one seems to ever bothered to adapt WinXP install from ISO approach to Win7/8 without extraction, despite it may be a very simple adaptation of WinVBlock (it started for 7 and died?) or FiraDisk.  :whistle:

 

And that is despite HUGE interest from the public... Our "Migrating Windows from BIOS HDD to UEFI VHD" thread on this forum was already read 800 times for the last 2 weeks - imaging, how many peeps will benefit from it for the next 6 months until Win9 comes in, and then?  :D Similarly, Acronis disks, whether we like it or not, are extremely popular, and huge number of folks would be happy to boot them from ISO on UEFI systems (which are now the ONLY new PCs available), or at least have some means to transfer to USB Stick without hard to comprehend known aggregate tools.  ;) That's were jaklaz's batch comes handy - if some clarity about ATIH.iso boot sequence in UEFI and BIOS modes is introduced as well.

 

Btw, in the interesting link you mentioned, the guy said to map El_Torito image and boot UEFI Linux ISO via ELILO, but not via Grub2. Is it possible to call ELILO from Grub2 to replicate that - may be its the way to boot more images with Grub2 via ELILO? How to install ELILO for that purpose?

 

 

But it is not set in stone - try describing your use case on grub-devel.

 

Its possible, though I doubt they didn't hear about Grub4DOS popularity and distinctions. Regarding Burg, which was called a "Windows friendly" Grub2 replacement, it was mentioned it has a different object model, but what was exactly different about it compare to Grub2? Might be its a serious obstacle in implementing image map support in Grub2? I guess Burg development stopped due to lack of interest in Linux dev community to support anything beyond Linux distros.


Edited by zamarac, 02 September 2014 - 11:46 AM.






Also tagged with one or more of these keywords: Acronis, UEFI

2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users