I have a system that has an option in the BIOS to choose boot type as "BIOS" or "UEFI". When I choose "BIOS" I can boot to DOS without problems. When I choose "UEFI" I can boot to an EFI startup.nsh script without problems. I can't however boot to DOS from the "UEFI" boot selection.

My question is: Is there any way to boot to DOS while having the option in the BIOS set to "UEFI"?

I have played around with grub for a while but I have found that it does not have full BIOS emulation. Apparently, "fakebios" and "loadbios" options are simple emulations to work around video card issues. They do not work in this case.

  • 3
    DOS? Which version? I am not aware of a UEFI-aware version of MS-DOS, but I cannot speak for the other clones out there. – user3463 Jul 18 '12 at 22:49
  • @Randolph - Just MS-DOS. I guess I don't know enough about UEFI, I was hoping that there would be some way to fool UEFI into booting MS-DOS. It sounds like that is not a possibility due to how EFI and DOS are structured. – Greg G. Jul 19 '12 at 14:04
  • Out of curiosity, what do you want to use DOS for? – nitro2k01 Oct 27 '13 at 6:31

This is sort of an oxymoron. There are two standards for disk partition tables, MS-DOS and U/EFI. The older one is MS-DOS, the newer one is UEFI.

The old partition table type came with several serious shortcomings, the most famous of which is the inability to use disks larger than 2TiB. This comes from the fact that it uses 32-bit addresses to identify 512-byte sectors. The product of the two is 2TiB, the largest disk that you can use with this kind of partition table.

There are of course other limitations: Only 3 primary partitions, only 59 logical partitions, only one copy of the partition table (at the beginning of the disk, in the MBR), structured as a linked list which is obviously quite prone to corruption, the use of old-fashioned CHS (cylinder-Head-Ssector).

In order to overcome these problems, the GPT partition table has been introduced, as part of Intel's UEFI. The GPT overcomes all of these problems (for instance, there are two copies of the table, at the beginning and at the end of the disk, it allows the partitioning of much much larger disks, up to 9.4 ZiB, uses Logical Block Addressing LBA instead of CHS, has only primary partitions, up to 128).

The information of the partition table is store in a structure at the beginning of the disk, preceded by the Primary partition header (this is also replicated for redundancy at the end of the disk). This structure is new: it did not exist in the old MS-DOS partition table.

However, for safety reasons, this structure is preceded by a legacy MBR, i.e., the structure defining the partition table in the old MS-DOS scheme. This is done to protect the GPT from programs unaware of the new partition table (like fdisk, which you just used without compromising the disk).

Now you see why you can boot a pc from a disk with a GPT partiton table when you set the BIOS on BIOS mode: the disk does have a MBR, so you can boot off it. However, the converse is false: if the disk has a MS-DOS partition table (not the legacy/protective one I mentioned above, just the old-fashioned one not followed by a proper GPT structure), then, setting the BIOS to UEFI mode means that the booter will search for the GPT structure, which is instead missing.

This is why your question is a bit of an oxymoron.

|improve this answer|||||

No, it is not possible to boot to DOS while the option is set to "UEFI". Only UEFI compliant operating systems can be booted with this option.

|improve this answer|||||

Not without accessing the firmware settings (a key at startup, which either flashes onscreen right at the beginning of the boot or must be found in the manual or online). There should be an option to switch between UEFI and CSM (compatibility support module, which provides the older BIOS functions; may also be labelles as BIOS or Legacy). Unfortunately, I cannot provide specific instructions of which key to hit or what specific menu this setting is located in, without knowing what specific box you have. Yes, that's right, it varies.

|improve this answer|||||

This is possible.

The easiest way is if the BIOS actually provides hooks to Legacy MBR boot points. So the Boot Manager would show links that either are prefixed UEFI or something like "Legacy". I have seen plenty of these recently, on servers.

The hard way, is left as an exercise for the reader. (-: Usually the words "and then a miracle occurred" can be inserted here.

Look at Clonezilla, which uses grub as the bootloader. Their ISO images can boot via both Legacy and UEFI methods, and have a hook on the main menu for booting to a FreeDOS from grub.

|improve this answer|||||
  • Without clear instructions on how to implement the first method this answer isn't very helpful. – Ramhound Feb 18 '16 at 20:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.