Bootcamp Issues – High Sierra Upgrade Not Working with Windows

bootcampwindows

Having some confusion regarding which instructions to follow to fix an issue I'm having with my Bootcamp Installation.

I've had a copy of Windows 8 (not 8.1) installed for a quite a long time which worked fine until I upgraded to High Sierra. Is it still listed as a disk in my Startup Assistant: enter image description here

However when I restart and boot into it, after a minute or so the Mac will attempt to boot but will get a "No Bootable Device" error.

I'm just wary of following any potential wrong instructions which may compromise my data on either my Mac or Windows disk so any help which would show me the best steps would be great.

Thanks

Edit: See gdisk read out below:

enter image description here

Best Answer

This answer is for Windows installations that BIOS boot.

Check for BIOS Boot Method

You can check to see if Windows BIOS boots by entering the command given below in a Terminal application window.

Note: If you renamed your windows partition to some other name than the default of BOOTCAMP, then make the appropriate substitution in thecommand below.

 ls /Volumes/BOOTCAMP/boot

If you get a message similar to what is given below, then your computer is using the EFI to boot Windows, otherwise Windows is probably using the BIOS boot method.

ls: /Volumes/BOOTCAMP/boot: No such file or directory

My 2011 iMac BIOS boots Windows 10. Entering the above command on this Mac produces the following output. Your output may be different. When BIOS booting, the file BCD should appear in the list.

BCD            cs-CZ          fi-FI          lv-LV          ru-RU
BCD.LOG        da-DK          fr-CA          memtest.exe    sk-SK
BCD.LOG1       de-DE          fr-FR          nb-NO          sl-SI
BCD.LOG2       el-GR          hr-HR          nl-NL          sr-Latn-RS
BOOTSTAT.DAT   en-GB          hu-HU          pl-PL          sv-SE
Fonts          en-US          it-IT          pt-BR          tr-TR
Resources      es-ES          ja-JP          pt-PT          uk-UA
bg-BG          es-MX          ko-KR          qps-ploc       zh-CN
bootvhd.dll    et-EE          lt-LT          ro-RO          zh-TW

Check for EFI Boot Method

You can check to see if Windows EFI boots by entering the commands given below in a Terminal application window.

diskutil mount disk0s1
ls /Volumes/efi/efi/microsoft/boot

If you get a message similar to what is given below, then your computer is using the BIOS to boot Windows, otherwise Windows is using the EFI boot method.

ls: /Volumes/efi/efi/microsoft/boot: No such file or directory

My 2013 iMac EFI boots Windows 10. Entering the above commands on this Mac produces the following output. Your output may be different. When EFI booting, the file BCD should appear in the list.

BCD             da-DK           hu-HU           kd_0C_8086.dll  ro-RO
BCD.LOG         de-DE           it-IT           kdstub.dll      ru-RU
BCD.LOG1        el-GR           ja-JP           ko-KR           sk-SK
BCD.LOG2        en-GB           kd_02_10df.dll  lt-LT           sl-SI
BOOTSTAT.DAT    en-US           kd_02_10ec.dll  lv-LV           sr-Latn-CS
Fonts           es-ES           kd_02_1137.dll  memtest.efi     sr-Latn-RS
Resources       es-MX           kd_02_14e4.dll  nb-NO           sv-SE
bg-BG           et-EE           kd_02_15b3.dll  nl-NL           tr-TR
boot.stl        fi-FI           kd_02_1969.dll  pl-PL           uk-UA
bootmgfw.efi    fr-CA           kd_02_19a2.dll  pt-BR           zh-CN
bootmgr.efi     fr-FR           kd_02_8086.dll  pt-PT           zh-HK
cs-CZ           hr-HR           kd_07_1415.dll  qps-ploc        zh-TW

You should enter the command given below to unmount the EFI partition.

diskutil unmount disk0s1

Procedure to Recreate Hybrid Partitioning

The upgrade to High Sierra most likely reset your hybrid partitioning. Instructions for how to restore hybrid partitioning, can be found at the website How to convert a drive from the GPT format to the hybrid GPT/MBR format when using High Sierra (macOS 10.13.2)

You can also use the free third party command gdisk to restore hybrid partitioning. You will have to disable System Integrity Protection (SIP) before using this command.

Based on your question, the following commands should be issued to gdisk.

r
h
2 3
y
ff
n
07
y
n
w
y

Below is an example of the output from gdisk.

GPT fdisk (gdisk) version 1.0.3

Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): r

Recovery/transformation command (? for help): h

WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,
just hit the Enter key at the below prompt and your MBR partition table will
be untouched.

Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence: 2 3
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): y

Creating entry for GPT partition #2 (MBR partition #2)
Enter an MBR hex code (default FF): ff
Set the bootable flag? (Y/N): n

Creating entry for GPT partition #3 (MBR partition #3)
Enter an MBR hex code (default 07): 07
Set the bootable flag? (Y/N): y

Unused partition space(s) found. Use one to protect more partitions? (Y/N): n

Recovery/transformation command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/disk0.
Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.

What's Next

If the upgrade to High Sierra converted partitions to the APFS format, then you may need to rebuild your BCD file. In your case, High Sierra is using the APFS format. So while problem posted in your question has been hopefully solved, You may need to make additional repairs before Windows will boot normally.