<div dir="ltr">I think it is also "valid" (as in common practice to implement support) to have a iso9660 and search for /EFI/BOOT/BOOTX64.EFI or /EFI/BOOT/BOOTIA32.EFI depending on architechture.<div><br></div><div>So maybe it should search for GPT structure first and if it exists skip possible 9660 detection?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 12, 2016 at 8:23 PM, Vish Ishaya Abrams <span dir="ltr"><<a href="mailto:vish.ishaya@oracle.com" target="_blank">vish.ishaya@oracle.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello<br>
<br>
With current master, after installing windows 2K12 onto an iscsi drive and trying to sanboot in UEFI mode it fails. I tracked the issue down to the iso9660 detection code. It appears that a windows 2K12 install appears as an iso9660 installation in addition to having a GPT:<br>
<br>
# isoinfo -d -i /dev/sdb8<br>
CD-ROM is in ISO 9660 format<br>
System id:<br>
Volume id: IR3_SSS_X64FREE_EN-US_DV9<br>
Volume set id: IR3_SSS_X64FREE_EN-US_DV9<br>
Publisher id: MICROSOFT CORPORATION<br>
Data preparer id: MICROSOFT CORPORATION, ONE MICROSOFT WAY, REDMOND WA 98052, (425) 882-8080<br>
Application id: CDIMAGE 2.53 (01/01/2005 TM)<br>
Copyright File id:<br>
Abstract File id:<br>
Bibliographic File id:<br>
Volume set size is: 1<br>
Volume set sequence number is: 1<br>
Logical block size is: 2048<br>
Volume size is: 2217916<br>
El Torito VD version 1 found, boot catalog is in sector 22<br>
NO Joliet present<br>
NO Rock Ridge present<br>
Eltorito validation header:<br>
    Hid 1<br>
    Arch 0 (x86)<br>
    ID 'Microsoft Corporation'<br>
    Key 55 AA<br>
    Eltorito defaultboot header:<br>
        Bootid 88 (bootable)<br>
        Boot media 0 (No Emulation Boot)<br>
        Load segment 0<br>
        Sys type 0<br>
        Nsect 8<br>
        Bootoff 876 2166<br>
<br>
# fdisk --list /dev/sdb8<br>
<br>
Disk /dev/sdb8: 18.6 GiB, 20004052992 bytes, 39070416 sectors<br>
Units: sectors of 1 * 512 = 512 bytes<br>
Sector size (logical/physical): 512 bytes / 4096 bytes<br>
I/O size (minimum/optimal): 4096 bytes / 4096 bytes<br>
Disklabel type: gpt<br>
Disk identifier: 8071B2D8-D75D-49E3-B3DD-<wbr>B0401535345E<br>
<br>
Device        Start      End  Sectors  Size Type<br>
/dev/sdb8p1    2048   616447   614400  300M Windows recovery environment<br>
/dev/sdb8p2  616448   819199   202752   99M EFI System<br>
/dev/sdb8p3  819200  1081343   262144  128M Microsoft reserved<br>
/dev/sdb8p4 1081344 39069695 37988352 18.1G Microsoft basic data<br>
<br>
# file -s /dev/sdb8<br>
/dev/sdb8: DOS/MBR boot sector MS-MBR Windows 7 english at offset 0x163 "Invalid partition table" at offset 0x17b "Error loading operating system" at offset 0x19a "Missing operating system" ISO 9660 CD-ROM filesystem data 'IR3_SSS_X64FREE_EN-US_DV9' (bootable); partition 1 : ID=0xee, start-CHS (0x0,0,2), end-CHS (0x3ff,255,63), startsector 1, 4294967295 sectors<br>
<br>
the efi_block code detects this as an iso_9660 filesystem and sets a blksize_shift of 2 and it does not successfully read the EFI filesystem. If I comment out the blksize_shift setting, it boots just fine. I also tested booting a couple of actual iso filesystems which detected a blksize_shift of 2. Both the ubuntu installer iso and the windows installer iso boot just fine with the blksize_shift commented out.<br>
<br>
This leads me to believe that the blksize_shift code is not necessary in uefi mode. I have commented it out in my build, but I'm not sure if there are some other odd iso images which require this setting. If so, then we need a way to detect the above case where we have an iso9660 that also has an EFI GPT and we can disable setting the blksize_shift in that case.<br>
<br>
Any thoughts?<br>
Vish<br>
<br>
<br>
______________________________<wbr>_________________<br>
ipxe-devel mailing list<br>
<a href="mailto:ipxe-devel@lists.ipxe.org">ipxe-devel@lists.ipxe.org</a><br>
<a href="https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel" rel="noreferrer" target="_blank">https://lists.ipxe.org/<wbr>mailman/listinfo.cgi/ipxe-<wbr>devel</a><br>
</blockquote></div><br></div>