Yep.
You're still thinking about this in too simple a set of terms.
Let me try and use a simile. Think of how a web page is built, using HTML.
Think of the files as the stuff in the <body> section. That's all that matters when booting from a FAT32-partitioned USB stick using EFI - that the correct stuff is in <body>Code:<html> <head> <title>BADGERS</title> </head> <body> <p>Badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger</p> </body> </html>
When you BIOS-boot a USB stick, you additionally need a record in the header to indicate "this is a boot sector, execute me"Code:<html> <head> <title>BADGERS</title> </head> <body> <p>bootx64.efi badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger</p> </body> </html>
When you BIOS boot the same thing from a DVD, you need a copy of the boot sector as a floppy disk image in the header section.Code:<html> <head> <title>BADGERS</title> <meta name="bootsector" content="FF FF FF FF FF FF FF 16 bit 8086 code FF FF FF FF FF FF FF FF FF FF FF "> </head> <body> <p>bootx64.efi badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger</p> </body> </html>
And when you UEFI boot the same thing, you need a EFI header. I repeat, a header - the files don't matter at this point. Neither BIOS nor EFI know how to read files from a DVD - they only know how to read headers from a DVD.Code:<html> <head> <title>BADGERS</title> <meta name="bootsector" content="FF FF FF FF FF FF FF 16 bit 8086 code FF FF FF FF FF FF FF FF FF FF FF "> <meta name="floppydiskimage" content="FF FF FF FF FF FF FF 16 bit 8086 code FF FF FF FF FF FF FF FF FF FF FF "> </head> <body> <p>bootx64.efi badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger</p> </body> </html>
Your tools are failing to generate this final step:
So, to repeat, there are four ways to boot what you're booting:Code:<html> <head> <title>BADGERS</title> <meta name="bootsector" content="FF FF FF FF FF FF FF 16 bit 8086 code FF FF FF FF FF FF FF FF FF FF FF "> <meta name="floppydiskimage" content="FF FF FF FF FF FF FF 16 bit 8086 code FF FF FF FF FF FF FF FF FF FF FF "> <meta name="fat32partition" content="bootx64.efi"> </head> <body> <p>bootx64.efi badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger badger</p> </body> </html>
- BIOS-booted as a DVD
- BIOS-booted as a hard disk (USB stick)
- EFI-booted as a hard disk (USB stick)
- EFI-booted as a DVD
Each of them needs something different done during ISO generation in order to work as desired:
- BIOS-booted as a DVD - Requires a floppy disk .img, stored in the disc headers, containing a 16-bit 8086 boot loader (this basic loader can then run a more complex loader from the disc's file area)
- BIOS-booted as a hard disk (USB stick) - Requires a 16-bit 8086 boot loader (this basic loader can then run a more complex loader from the disc's file area) stored near the start of the partition table
- EFI-booted as a hard disk (USB stick) - Requires that the hard disk (USB stick) contains a FAT32 partition, with the file EFI/BOOT/BOOTX64.EFI on it
- EFI-booted as a DVD - Requires a FAT32 .img, stored in the disc headers, containing the file EFI/BOOT/BOOTX64.EFI
Notice the difference between the final two. The final one is the one you are not doing. No amount of tinkering around with the files will affect the contents of the headers - specialist ISO generation tools must be used for this, such as oscdimg.exe
Note: This is simplified. It's much more complicated for non-trivial cases (i.e. to support EFI booting on Mac properly)
videobruce (16-12-2013)
Where is this "header"? How can it be 'seen' since I know all of this stuff is normally hidden (using a simplified term).EFI-booted as a DVD - Requires a FAT32 .img, stored in the disc headers, containing the file EFI/BOOT/BOOTX64.EFI
Without going too far OT, to switch modes (not the right term) using any drive to load a O/S on a GPT drive, couldn't there be a better way than having two listing of the same drive in the boot menu to make the switch? Something in the UEFI perhaps?
The 2nd question. With two bootable GPT drives, one is listed as "Windows", the other as "Windows Boot Manager". Why and what determines which drive is which? If there was a 3rd bootable drive, how is that labeled?
When not in use, turn off the juice.
Think of someone else instead of just yourself. There is far more to it than your utility bill.
OK, I might have over/under simplified things.
You can use ISOBuster to see the "Bootable Disc" section. The most important one is BootCatalog.dat, which provides a list of embedded bootable records, in a machine-readable format (it won't make sense to you, it's not a text file, it's data). With Linux ISOs, the BootCatalog.dat file points the UEFI record at a BootImage.img entry and the BIOS record at a different BootImage.img entry.
With Windows, the BootCatalog file points the BIOS record at a Microsoft BootImage.img, and the UEFI record at the entire DVD data area, specifically the UDF filesystem on it - Microsoft's extensions to the UEFI specification require that UEFI firmware for booting Windows should be able to read files from UDF.
The BootCatalog.dat file is created by your ISO creation tool. That's what the extra settings to oscdimg.exe changes.
There could be a better way. But this is the way that everyone (so far) who implements this stuff has used. And now it's the norm, changing it is pretty much not going to happen.Without going too far OT, to switch modes (not the right term) using any drive to load a O/S on a GPT drive, couldn't there be a better way than having two listing of the same drive in the boot menu to make the switch? Something in the UEFI perhaps?
You don't have a bootable drive, with UEFI.The 2nd question. With two bootable GPT drives, one is listed as "Windows", the other as "Windows Boot Manager". Why and what determines which drive is which? If there was a 3rd bootable drive, how is that labeled?
Windows Boot Manager is an app on a drive, which was registered with the firmware. You can a whole bunch of different EFI apps registered, with whatever name you like. You can rename the entries to whatever you find easiest - "Windows on Samsung SSD" or something, for example, with the right tools.
So how will valid OSes be labelled? However they want to be labelled - though you should expect them not to have thought about the multiple-entries scenario too well. i.e. three Windows installs would probably result in three "Windows Boot Manager"s
Directhex - really appreciate this - I've successfully tinkered with UEFI and GRUB2 without really understanding whats going on below a fairly superficial level. Thought about writing Directhex's guide to UEFI as an info thread?
(I'm sure videobruce does too - I can sense his understandable frustration!)
(\__/)
(='.'=)
(")_(")
Been helped or just 'Like' a post? Use the Thanks button!
My broadband speed - 750 Meganibbles/minute
videobruce (23-12-2013)
I didn't get off the boat yesterday. It's not as I haven't researched this first. The problems are;
1. Too many assume others are at the same level with the same experience as they are,
2. They also believe that one shouldn't need detailed guide on how to do something out of the norm.
How many 3rd party programs out the have limited information, especially ones that 'tinker' with the O/S install? I have tried to use three. One somewhat successfully, another able to use, but unable to get a working result and the last can't get out of the dugout due to a UI that is not even close to being intuitive. One shouldn't have to 'stare' at the screen with a blank look on ones face trying to figure out what to do or where you went wrong.
When one spends hours, days, months on one of these software projects, produces a result, but doesn't take the time to provide detailed instructions, that the project is a failure.
Anyway, after all of this when I finally was successful (using a prepared USB stick), due to the lame UEFI (BIOS) on the MB I have with the duplication of drive entries in the boot is which is confusing, I decided to go back to MBR. I have no intention at this time of having a drive larger than 2TB and when I do, it would be partitioned at least once which, if I understand this correctly will not be a problem.
I see no other benefit of GPT to me. To be clear, I don't have a problem with what I don't see with UEFI (better written code), but the UI with the lack of a first boot screen showing the drives connected and the lack of the ability of having a option of having a boot order screen automatically popup is a HUGE problem when you have multiple bookable drives. I have five drives, four are bootable. I don't need nine entries if all the drives are GPT enabled. (This includes two optical drives, when loaded with a disc that allows UEFI mode will show twice).
Last edited by videobruce; 23-12-2013 at 12:33 PM.
When not in use, turn off the juice.
Think of someone else instead of just yourself. There is far more to it than your utility bill.
I'd suggest that one of HEXUS's strengths is that people with experience 9like Duirecthex) are willing to share their experience
That is part of the problem in general - EFI has been around for a while but only on Intel Itanium systems (and a mashed up version on Apple Intel systems) and it is only recently (with the adoption of drives bigger than 2TB) that UEFI has become more relevant to the consumer/home market booting off a GPT partition system. It will become the norm in time.
However, frustrating though it has been, I'm glad you have a working system, even if it isn't working in quite the way you wanted.
This has spurred me on to look at UEFI booting the next iteration of my system server, but from a Linux distro.
(\__/)
(='.'=)
(")_(")
Been helped or just 'Like' a post? Use the Thanks button!
My broadband speed - 750 Meganibbles/minute
There are currently 1 users browsing this thread. (0 members and 1 guests)