How To: Boot a Mac into FreeDOS for Bootable, SpinRite or ReadSpeed (Part 3 of 3 - Booting the Mac)

  • SpinRite v6.1 Release #3
    Guest:
    The 3rd release of SpinRite v6.1 is published and may be obtained by all SpinRite v6.0 owners at the SpinRite v6.1 Pre-Release page. (SpinRite will shortly be officially updated to v6.1 so this page will be renamed.) The primary new feature, and the reason for this release, was the discovery of memory problems in some systems that were affecting SpinRite's operation. So SpinRite now incorporates a built-in test of the system's memory. For the full story, please see this page in the "Pre-Release Announcements & Feedback" forum.
    /Steve.
  • Be sure to checkout “Tips & Tricks”
    Dear Guest Visitor → Once you register and log-in please checkout the “Tips & Tricks” page for some very handy tips!

    /Steve.
  • BootAble – FreeDOS boot testing freeware

    To obtain direct, low-level access to a system's mass storage drives, SpinRite runs under a GRC-customized version of FreeDOS which has been modified to add compatibility with all file systems. In order to run SpinRite it must first be possible to boot FreeDOS.

    GRC's “BootAble” freeware allows anyone to easily create BIOS-bootable media in order to workout and confirm the details of getting a machine to boot FreeDOS through a BIOS. Once the means of doing that has been determined, the media created by SpinRite can be booted and run in the same way.

    The participants here, who have taken the time to share their knowledge and experience, their successes and some frustrations with booting their computers into FreeDOS, have created a valuable knowledgebase which will benefit everyone who follows.

    You may click on the image to the right to obtain your own copy of BootAble. Then use the knowledge and experience documented here to boot your computer(s) into FreeDOS. And please do not hesitate to ask questions – nowhere else can better answers be found.

    (You may permanently close this reminder with the 'X' in the upper right.)

Scott

Well-known member
Sep 18, 2020
63
22
This How To is in Three Parts:
  1. Part 1 - Intro
  2. Part 2 - Media Creation - How to make a bootable USB on your Mac for Bootable, ReadSpeed, or SpinRite
  3. Part 3 - Booting your Mac - How to get your Mac to boot from external media instead of the internal hard drive - this post

Booting your Mac - How to get your Mac to boot from external media instead of the internal hard drive​

Here's how to how to boot a Mac from a USB flash drive into FreeDOS to run DOS-based utilities like Bootable, ReadSpeed or SpinRite.

First, of course, make sure you have a flash drive with FreeDOS on it as outlined in Step 2 above. Then try the three methods below, in order from simplest to most complex.
  1. Option key method -- try this first, as it's the simplest:
    • Insert your flash drive with the Mac off. On startup, hold down the Option key. You'll boot to the Mac's graphical Boot Manager, which should show all volumes from which the Mac can boot. If you see a USB drive icon with the Volume name "Windows", then select that Volume and press Enter. If your FreeDOS drive was prepared correctly and is compatible (more on that below), your Mac should boot into FreeDOS. If you don’t see the Volume on the Boot Manager, you should try disabling SIP.
  2. Disable SIP, then try Option Key method
    • Are you running MacOS version 10.11 (El Capitan) or newer? Then the option key method above probably won't work without first disabling SIP (System Integrity Protection), which is sort of Apple's equivalent of Secure Boot on PCs.
      1. Check if SIP is enabled. Open the terminal, from the command line type:
        • csrutil status
      2. If status is disabled AND you already tried the Option Key method, then proceed with Step 3B. Else disable SIP and try the Option key method again
      3. Disable SIP -- unmodified Mac (not using Open Core Legacy Patcher
        1. Turn off your Mac (Apple > Shut Down).
        2. Hold down Command-R and press the Power button to boot into Recovery Mode
        3. Wait for MacOS to boot into the MacOS Utilities window
        4. Choose Utilities > Terminal, and at the terminal prompt enter
          • csrutil disable
        5. You should get confirmation that SIP is disabled
        6. Restart your Mac (or Shut Down and then Power On)
        7. Now hold down the Option key and select the drive, as noted in 1, above
      4. Disable SIP -- using Open Core Legacy Patcher
        1. Open OCLP
        2. Select the settings button at the bottom of the window
        3. Select the "Security" menu
        4. Under "System Integrity Protection," select all the checkmarks.
        5. Exit the settings
        6. Build and install OCLP
        7. Reboot
        8. Now hold down the Option key and select the drive, as noted in 1, above

3. Software selection method -- more complex​
This method requires you to use some command line programs to tell MacOS that on the next reboot, it should look for a BIOS-based OS on the flash drive rather than MacOS on the hard drive. Steps for this method follow.​
A. Disable SIP (System Integrity Protection)​
Are you running MacOS version 10.10 (Yosemite) or older? Then you can skip this step and go on to Step B. Otherwise you must disable SIP. Just disable SIP as noted in 2A, above.​
B. Use the bless command to tell the Mac to restart in BIOS/CSM/Legacy mode​
1. With the Mac up and running (and SIP disabled as noted), insert the FreeDOS USB; it will be recognized and show up on the Desktop​
2. Open a terminal window. Run the "diskutil list" command, to see the device assigned to the USB drive. On my machine it was /dev/disk2​
3. From the terminal, type the following after the prompt$:​
sudo bless --device /dev/disk2 --setBoot --nextonly --legacy --verbose
a. You'll probably be prompted for your root password which you obviously must enter​
b. In the above command, obviously replace disk2 with whatever the device is that's assigned on your machine. Also, very important to have the --nextonly flag, else maybe this is a permanent change!!​
c. IMPORTANT:​
i. if the output of the bless command says "Legacy mode supported" AND you DON'T see something like, "could not set boot device property: 0xe00002bc" (or some other similar code) then you can proceed​
ii. if the output of the bless command says "Legacy mode supported" AND you DO see something like, "could not set boot device property: 0xe00002bc" (or some other similar code) then you probably did not disable SIP correctly​
iii. if the output of the bless command says "Legacy mode not supported on this system" then your Mac does not support BIOS/ CSM/ Legacy mode, and you will not be able to boot FreeDOS​
4. Do a standard restart from the Apple menu. Your system should now boot from the USB into FreeDOS on the next start. Congratulations!! After power down, your system should boot normally from the hard drive into MacOS​
5. The boot flash drive should be readable and writable, and if you boot the system with other USB drives plugged in, those drives may be visible to SpinRite as well (listed as BIOS-accessible drives).​

I'm running Open Core Legacy Patcher, will this work for me?​

OCLP is a tremendous program which allows older Macs to run newer versions of MacOS than they were designed for. In order to do this, OCLP writes additional UEFI drivers to the MacOS disk and adds additional information to the Mac's PRAM pre-boot environment; it also partially disables SIP. Because SIP is disabled, a Mac running OCLP can usually boot FreeDOS just by using the Option key method noted above.

If that doesn't work, you could try disabling all aspects of SIP:
  1. Open OCLP
  2. Select the settings button at the bottom of the window
  3. Select the "Security" menu
  4. Under "System Integrity Protection," select all the checkmarks.
  5. Exit the settings
  6. Build and install OCLP
  7. Reboot
If you do that, I'd suggest going back to the defaults on OCLP after your work with the GRC utilities is done. Simply rebuild OCLP with the defaults for your machine and reboot.

Problems!​


1. System reboots but instead of starting FreeDOS, you get the message:
"No bootable device -- insert boot disk and press any key"
This is because the system is failing in two ways:​
A. It's not reading the MBR on the flash drive correctly and so it then shifts into EFI mode, but...​
B. It doesn't see a valid EFI boot disk layout and so it fails.​

What to do about it? Try creating a different FreeDOS disk on a different brand of flash drive. I used InitDisk on 11 different flash drives of varying brands, and only 5 of them could be seen by the Mac as valid boot drives.​

2. System reboots but you just get a grey screen.
This is also, I think, a symptom of the Mac's picky behavior with USB drives. I saw this when using the Option key method to start my Mac, but:​
A. Other USB drives would boot into FreeDOS​
B. The problematic drive would work when using the software selection ("bless") method.​
Only suggestion is to try another drive.​

3. System boots to FreeDOS but seems flaky, hangs, etc. I'm not sure, but I think that this may be a sign that the system is overheating. Macs may control their fans primarily through software, and FreeDOS will certainly not know how to control a system fan in the background! Any insight from users would be appreciated here.

Comments?​


Comments welcome!
 
Last edited:
SYSTEM INFO: iMac (27-inch, Late 2012) 3.4GHz Intel Core i7, 32GB Memory, 4TB Disk
USB Full Keyboard w/ Numeric Keypad, USB Logitech Trackball; USB Flash Drive was 256GB, Formatted FAT16

The instructions for making bootable media on a Mac worked great. However, @Steve, I've run into two minor problems I wanted to pass your way:

1. After booting to the Windows USB stick, if I touch nothing else, I get a big blue Congratulations message -- but then the keyboard is dead; I can't press any key.

WORKAROUND: The moment you select the Windows USB stick to boot, immediately start pressing Return over and over, don't stop, filling the keyboard buffer. This is important -- keep pressing past the "FreeDOS" in good old 80x25 text, a flash of blue, and likely into several DOS prompts. You're then good to go.

REASON FOR REACHING OUT: Didn't know if there was something in your boot sequence that left the keyboard in a weird state that you might want to look into.


2. I have downloaded my purchased copy of SPINRITE.EXE v6.1 (270,768 bytes, though I suspect the SHA Hash would be useless, since each copy is personalized and unique).

When I go to run it, it says: SpinRite's internal health self-check failed. Something may have altered SpinRite from its original download. Please obtain a new fresh copy of your personal edition of SpinRite. (I did, it didn't work.)

THE PROBLEM: If you're like me, you likely have earlier versions. I put my SPINRITEs in directories named: SPINRITE.50, SPINRITE.60, and SPINRITE.61. Meaning this is what I did above:

C:\> cd SPINRITE.61
C:\SPINRITE.61> spinrite

THE WORKAROUND: Just copy the SPINRITE.EXE to the root directory of the USB stick and run it from there. It's that simple. SpinRite will start right up!

REASON FOR REACHING OUT: It seems that the health check is location dependent, and that seems kind of silly.


Congrats.jpg


HealthCheck.jpg


ItWorks.jpg
 
Last edited:
1. After booting to the Windows USB stick, if I touch nothing else, I get a big blue Congratulations message -- but then the keyboard is dead; I can't press any key.

…..


2. THE PROBLEM: : It seems that the health check is location dependent, and that seems kind of silly.
Hi @wls , in part 2 of this thread, in the Notes section for Bootable, I wrote that on my Mac, Bootable didn’t respond to key presses. I did report this to Steve who couldn’t see a reason in the code why that would happen, and closed the issue with a “Will not fix” status.

I noted on that page that even if the Mac hung, as long as you can see the Bootable success message, SpinRite should boot and run.

As for the health check, I have no insight there, that’s an issue for Steve.