MacOS – No bootable disk when booting Windows after installing Linux on Mac

bootbootcampmacosunixwindows

That must the weirdest title you've read in a long time.
I have a MacBook Pro Mid 2012, I installed Windows 7 with Bootcamp and all was working fine.
Last night I installed Kali Linux with a bootable USB, and during the installation I checked something like "master boot record" or something like that, not too sure. Now when I'm greeted with the boot menu in mac thanks to rEFInd and select Windows, this message comes on :

No bootable device — Insert boot disk and press any key

I've read online this has something to do with GRUB, but don't know how to proceed. Let me know if you need any more info, thanks.

Best Answer

MacBook Pros from 2012 will use the legacy MBR/BIOS boot method for Windows. (If you’re reading this and your Mac is from 2014 or newer, the following instructions may not be relevant.)

When I resized my Windows Bootcamp partition during a clone to a new drive, I found it would no longer show up in the standard Mac boot menu, and when attempting to boot from rEFInd it would display a similar error message to what you’ve described.

The steps I followed to fix this were:

  1. Disable Apple SIP by restarting into recovery mode (hold Command+R), open Terminal, and type:

    csrutil disable
    
  2. Reboot into OSX, install the gdisk command line tool, and use it to regenerate the hybrid GPT+MBR boot records. The instructions can get a bit long, so I suggest you read them here. If you are also booting Linux, you may need to ensure you include your Linux partition in the list of bootable partitions during the MBR creation step. (I’m only booting OSX + Windows so I cannot test this step with Linux.)

  3. If Windows will still not boot (at this point I was seeing a blue screen of death with an error about winload.exe), you need to repair the boot files by booting to an installation disc/USB of the Windows version you have, then choose repair Windows installation. If the automated “Start-up Repair” option doesn’t work, you can try running these commands:

    Note: first check that C:\ is actually the correct drive that you intend to perform the repair on. Otherwise replace c: in the commands below with the relevant drive letter.

    bootsect /nt60 c: /mbr
    attrib  -r  -h  -s  c:\boot\bcd
    del c:\boot\bcd
    bcdboot c:\windows /s c: /f BIOS
    

    Source: https://apple.stackexchange.com/a/333605/30551

It took me quite a few hours of trial and error to get this working, so hopefully this saves others some trouble. ?