From: Heyi Guo <heyi.guo@linaro.org>
To: Laszlo Ersek <lersek@redhat.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: How can we identify an ISO file is an EFI bootable ISO image?
Date: Wed, 21 Jun 2017 08:48:00 +0800 [thread overview]
Message-ID: <57011f94-e32e-9fae-6ae5-56329c14b668@linaro.org> (raw)
In-Reply-To: <46cef850-9a4f-b521-a379-037dae1d1a2b@redhat.com>
Thank you so much. I will try that :)
Regards,
Gary (Heyi Guo)
在 6/21/2017 12:47 AM, Laszlo Ersek 写道:
> On 06/20/17 14:34, Heyi Guo wrote:
>> Is there any simple tool to parse ISO images (El Torito partition) and
>> identify whether it is EFI bootable?
> $ dumpet --iso Fedora-Server-dvd-aarch64-25-20161015.n.0.iso
>
> Validation Entry:
> Header Indicator: 0x01 (Validation Entry)
> PlatformId: 0xef (EFI) <---------- [1]
> ID: ""
> Checksum: 0x66aa
> Key bytes: 0x55aa
> Boot Catalog Default Entry:
> Entry is bootable
> Boot Media emulation type: no emulation <---------- [2]
> Media load address: 0 (0x0000)
> System type: 0 (0x00)
> Load Sectors: 9208 (0x23f8)
> Load LBA: 2456 (0x00000998)
>
> The source for dumpet is at <https://github.com/rhboot/dumpet>.
>
>> I think EFI bootable image should contain a FAT volume so that EFI can
>> load bootxx.efi file from the file system.
> For a large Wiki page on this, I can recommend:
> <https://fedoraproject.org/wiki/User:Pjones/BootableCDsForBIOSAndUEFI>.
>
> For a short summary, these are the commands you need, to format an
> EFI-bootable (and EFI-only) CD-ROM:
>
> (1) Create a non-partitioned FAT image in a file, with "mkdosfs -C", and
> populate it with the "mtools" utilities.
>
> For a heavier-weight (but also a lot more feature-ful) toolset, you
> can also use libguestfs / guestfish.
>
> (2) Generate the ISO image like this:
>
> genisoimage -input-charset ASCII -J -rational-rock \
> -efi-boot "$FAT_IMAGE_FILE" -no-emul-boot \
> -o "$ISO_IMAGE" -- "$FAT_IMAGE_FILE"
>
> So what you do is, create an ISO9660 filesystem with the FAT image
> file copied into it as a normal file (simply to the root directory).
> You can enable Joliet and/or RockRidge extensions if you want to,
> but those aren't necessary. Then, you set the EFI boot image name
> with "-efi-boot" [1], and also specify that the boot image is a "no
> emulation" [2] image
> <https://en.wikipedia.org/wiki/El_Torito_(CD-ROM_standard)#Boot_modes>.
>
>> Several tools like mount in Linux will show all files together
>> including EFI/BOOT directory,
> That directory, displayed as part of the ISO9660 filesystem that was
> written to the ISO image / CD-ROM, is entirely irrelevant when it comes
> to UEFI-bootability. I doesn't even need to exist, and if it does, it's
> likely there only for convenience reasons (so that people don't have to
> run "dumpet" or similar tools to extract the FAT image first, and then
> the EFI binaries second, if they want to investigate the EFI binaries).
>
> For UEFI boot, only the ElTorito image matters.
>
>> so if an ISO image contains such files but not organizes the data in a
>> FAT sub-volume as EFI requires, I can't see any difference.
> In order to extract the ElTorito image(s), use "dumpet --dumpdisks", and
> then work on the extracted files with guestfish or mtools. For example:
>
> $ MTOOLS_SKIP_CHECK=1 mdir -i extracted.iso.0 -/ ::
>
> Thanks
> Laszlo
prev parent reply other threads:[~2017-06-21 0:46 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-20 12:34 How can we identify an ISO file is an EFI bootable ISO image? Heyi Guo
2017-06-20 16:47 ` Laszlo Ersek
2017-06-20 17:36 ` Rod Smith
2017-06-20 18:11 ` Laszlo Ersek
2017-06-21 0:48 ` Heyi Guo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57011f94-e32e-9fae-6ae5-56329c14b668@linaro.org \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox