Boot Camp files available from finder but unavailable from Startup Manager

I know that many other people have already posted similar problems, but I have tried all their fixes and still none of them have worked.

Earlier, I had a "No Bootable Device" error, and I followed the instructions provided in order to fix that. That then created a "No Operating System" error, which I also tried to fix with the known method. That didn't work either. Is there anything else I can do?

System Information:

  • Bootcamp is using a BIOS Method
  • 2012 MacBook Pro
  • High Sierra 10.13.4

Option for Bootcamp First Aid is grayed out in Disk Utility

Apparently cannot be verified or repaired?


Solution 1:

An "Missing operating system" error is issued when the code stored in the MBR executes, reads the first 512 bytes of the boot volume and determines the read bytes do not end in 0xAA55. The assumption here is the code stored in the MBR came from a Windows installation. If the source for code came from another product (such as rEFInd), the message could be sightly different. The signature of 0xAA55 is present when a volume contains bootable Microsoft software.

Normally, when Windows is installed for a BIOS boot, the MBR partition table has the Windows partition flagged as the boot volume. If some other partition is flagged and is not bootable, the "Missing operating system" message is issued and the computer halts. This will occur even if Windows appears in "Startup Disk" pane in the System Preferences application.

The sudo fdisk /dev/disk0 command prints the contents of the MBR partition table. The partition flagged as bootable is marked with an * character. Below is the output from this command, when issue on my 2011 iMac. (The Boot Camp Assistant was not used to install Windows on this Mac.)

Note: With High Sierra (and many other older macOS versions), System Integrity Protection (SIP) must be disabled before entering the sudo fdisk /dev/disk0 command.

Disk: /dev/disk0    geometry: 60801/255/63 [976773168 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -     409639] <Unknown ID>
*2: 07 1023 254  63 - 1023 254  63 [    409640 -  195312500] HPFS/QNX/AUX
 3: 07 1023 254  63 - 1023 254  63 [ 195722140 -   95441064] HPFS/QNX/AUX
 4: AF 1023 254  63 - 1023 254  63 [ 291163208 -  294176536] HFS+        

In my case, Windows 10 is installed in the second partition. In your case, the third partition should be marked.

Note: I assume the 2rd, 3rd and 4th partitions in your GUID Partition Table (GPT) correspond to the 2rd, 3rd and 4th partitions in your MBR partition table. Normally, for a BIOS boot of Windows on a Mac, this usually is the case.

You can flag the third partition by entering the interactive command sudo fdisk -e /dev/disk0 with SIP disabled. Below is an example of the output from executing this command.

fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Enter 'help' for information
fdisk: 1> f 3
Partition 3 marked active.
fdisk:*1> q
Writing current MBR to disk.
Device could not be accessed exclusively.
A reboot will be needed for changes to take effect. OK? [n] y

The interactive input, shown above, is given below.

f 3
q
y

If the event your third partition is correctly flagged, there is an place later in the BIOS boot sequence where the message "An operating system wasn't found" can appear. If this occurs, then post a comment.

Appendix

What is shown in this appendix can be skipped by the OP. I just wanted to document the resources used to answer this question.

The code shown below was create with the help from the website Online Assembler and Disassembler and verified using the Microsoft Macro Assembler 8.0 (MASM). This is the contents of the MBR (sector 0) on my 2011 iMac.

cseg segment
        assume cs:cseg, ds:cseg, ss:cseg
        org 7C00h
        .386
_start: 
                xor         ax, ax;             7C00 33 C0
                mov         ss, ax;             7C02 8E D0
                mov         sp, 7C00h;          7C04 BC 00 7C
                mov         es,ax;              7C07 8E C0
                mov         ds,ax;              7C09 8E D8       
                mov         si,7C00h;           7C0B BE 00 7C
                mov         di,0600h;           7C0E BF 00 06
                mov         cx, 0200h;          7C11 B9 00 02  
                cld;                            7C14 FC             
    rep movs    byte ptr es:[di],byte ptr [si]; 7C15 F3 A4
                push        ax;                 7C17 50  
                push        061Ch;              7C18 68 1C 06
                retf;                           7C1B CB             
        org 061Ch
                sti;                            061C FB              
                mov         cx,0004h;           061D B9 0004     
                mov         bp,07BEh;           0620 BD BE 07
Q210:           cmp         byte ptr [bp],0;    0623 80 7E 00 00 
                jl          Q220;               0627 7C 0B
                jne         Q330;               0629 0F 85 0E 01        InvalTbl
                add         bp,10h;             062D 83 C5 10   
                loop Q210;                      0630 E2 F1
                int 18h;                        0632 CD 18      No boot disk 
Q220:           mov byte ptr [bp], dl;          0634 88 56 00
                push bp;                        0637 55
                mov byte ptr [bp + 11h], 5;     0638 C6 46 11 05
                mov byte ptr [bp + 10h], 0;     063C C6 46 10 00
                mov ah, 41h;                    0640 B4 41
                mov bx, 55aah;                  0642 BB 55AA
                int 13h;                        0645 CD 13      Check
                pop bp;                         0647 5D
                jb Q230;                        0648 72 0F
                cmp bx, 0aa55h;                 064A 81 FB AA55
                jne Q230;                       064E 75 09
                test cx, 1;                     0650 F7 C1 01 00
                je Q230;                        0654 74 03
                inc byte ptr [bp + 10h];        0656 FE 46 10
Q230:           pushad;                         0659 66 60
                cmp byte ptr [bp + 10h], 0;     065B 80 7E 10 00
                je Q250;                        065F 74 26
                push dword ptr 0;               0661 66 68 00 00 00 00
                push dword ptr [bp + 8];        0667 66 FF 76 08
                push word ptr 0;                066B 68 00 00
                push word ptr 7c00h;            066E 68 00 7C
                push word ptr 1;                0671 68 01 00
                push word ptr 10h;              0674 68 10 00
                mov ah, 42h;                    0677 B4 42
                mov dl, byte ptr [bp];          0679 8A 56 00
                mov si, sp;                     067C 8B F4
                int 13h;                        067E CD 13      Read sectors extended   
                lahf;                           0680 9F 
                add sp, 10h;                    0681 83 C4 10   
                sahf;                           0684 9E
                jmp Q240;                       0685 EB 14
Q250:           mov ax, 201h;                   0687 B8 0201
                mov bx, 7c00h;                  068A BB 7C00
                mov dl, byte ptr [bp];          068D 8A 56 00
                mov dh, byte ptr [bp + 1];      0690 8A 76 01
                mov cl, byte ptr [bp + 2];      0693 8A 4E 02   
                mov ch, byte ptr [bp + 3];      0696 8A 6E 03
                int 13h;                        0699 CD 13      Read sectors
Q240:           popad;                          069B 66 61
                jae Q280;                       069D 73 1C      
                dec byte ptr [bp + 11h];        069F FE 4E 11
                jne Q270;                       06A2 75 0C
                cmp byte ptr [bp], 80h;         06A4 80 7E 00 80
                je Q320;                        06A8 0F 84 8A 00        ErrLoad
                mov dl, 80h;                    06AC B2 80
                jmp Q220;                       06AE EB 84              
Q270:           push bp;                        06B0 55
                xor ah, ah;                     06B1 32 E4
                mov dl, byte ptr [bp];          06B3 8A 56 00
                int 13h;                        06B6 CD 13      Reset
                pop bp;                         06B8 5D
                jmp Q230;                       06B9 EB 9E
Q280:           cmp word ptr ds:[7dfeh], 0aa55h;06BB 81 3E FE 7D 55 AA
                jne Q310;                       06C1 75 6E      MissOS
                push word ptr [bp];             06C3 FF 76 00
                call Q360;                      06C6 E8 8D 00
                jne Q290;                       06C9 75 17
                cli;                            06CB FA
                mov al, 0d1h;                   06CC B0 D1
                out 64h, al;                    06CE E6 64
                call Q360;                      06D0 E8 83 00
                mov al, 0dfh;                   06D3 B0 DF 
                out 60h, al;                    06D5 E6 60 
                call Q360;                      06D7 E8 7C 00 
                mov al, 0ffh;                   06DA B0 FF 
                out 64h, al;                    06DC E6 64
                call Q360;                      06DE E8 75 00 
                sti;                            06E1 FB 
Q290:           mov ax, 0bb00h;                 06E2 B8 00 BB  
                int 1ah;                        06E5 CD 1A      Read system clock counter
                and eax, eax;                   06E7 66 23 C0
                jne Q300;                       06EA 75 3B                      
                cmp ebx, 41504354h;             06EC 66 81 FB 54 43 50 41 
                jne Q300;                       06F3 75 32 
                cmp cx, 102h;                   06F5 81 F9 02 01 
                jb Q300;                        06F9 72 2C         
                push dword ptr 0bb07h;          06FB 66 68 07 BB 00 00
                push dword ptr 200h;            0701 66 68 00 02 00 00
                push dword ptr 8;               0707 66 68 08 00 00 00
                push ebx;                       070D 66 53
                push ebx;                       070F 66 53
                push ebp;                       0711 66 55
                push dword ptr 0;               0713 66 68 00 00 00 00                  
                push dword ptr 7c00h;           0719 66 68 00 7C 00 00  
                popad;                          071F 66 61      
                push word ptr 0;                0721 68 00 00
                pop es;                         0724 07
                int 1ah;                        0725 CD 1A      Read system clock counter
Q300:           pop dx;                         0727 5A
                xor dh, dh;                     0728 32 F6
;               jmp far ptr _start              072A EA 00 7C 00 00 
                db 0EAh,00,7Ch,00,00
                int 18h;                        072F CD 18      No boot disk 
Q310:           mov al, byte ptr ds:[07b7h];    0731 A0 B7 07   MissOS
                jmp Q340;                       0734 EB 08 
Q320:           mov al, byte ptr ds:[07b6h];    0736 A0 B6 07   ErrLoad
                jmp Q340;                       0739 EB 03 
Q330:           mov al, byte ptr ds:[07b5h];    073B A0 B5 07   InvalTbl
Q340:           xor ah, ah;                     073E 32 E4              
                add ax, 700h;                   0740 05 00 07 
                mov si, ax;                     0743 8B F0 
Q370:           lodsb byte ptr [si];            0745 AC 
                cmp al, 0;                      0746 3C 00
                je Q350;                        0748 74 09
                mov bx, 7;                      074A BB 07 00 
                mov ah, 0eh;                    074D B4 0E                      
                int 10h;                        074F CD 10      Write text in teletype mode
                jmp Q370;                       0751 EB F2 
Q350:           hlt;                            0753 F4 
                jmp Q350;                       0754 EB FD 
Q360:           sub cx, cx;                     0756 2B C9 
Q390:           in al, 64h;                     0758 E4 64 
                jmp Q380;                       075A EB 00 
Q380:           and al, 2;                      075C 24 02 
                loopne Q390;                    075E E0 F8 
                and al, 2;                      0760 24 02 
                ret;                            0762 C3

InvalTbl        db "Invalid partition table",0;         0763
ErrLoad         db "Error loading operating system",0;  077B
MissOS          db "Missing operating system",0;        079A
Offsets         db 00h, 00h, 63h, 7Bh, 9Ah;             07B3
DiskSignature   dword  028A47A7h;                       07B8
CopyProtect     dw 0;                                   07BC

Status1         db 00;                  07BE  
FirstCHS1       db 0FEh, 0FFh, 0FFh;    07BF
Type1           db 0EEh;                07C2
LastCHS1        db 0FEh, 0FFh, 0FFh;    07C3
FirstLBA1       dword 1;                07C6
Count1          dword 409639;           07CA

Status2         db 80h;                 07CE
FirstCHS2       db 0FEh, 0FFh, 0FFh;    07CF  
Type2           db 07h;                 07D2
LastCHS2        db 0FEh, 0FFh, 0FFh;    07D3
FirstLBA2       dword 409640;           07D6
Count2          dword 195312500;        07DA

Status3         db 00;                  07DE
FirstCHS3       db 0FEh, 0FFh, 0FFh;    07DF
Type3           db 07h;                 07E2
LastCHS3        db 0FEh, 0FFh, 0FFh;    07E3 
FirstLBA3       dword 195722140;        07E6
Count3          dword 95441064;         07EA

Status4         db 00;                  07EE
FirstCHS14      db 0FEh, 0FFh, 0FFh;    07EF 
Type4           db 0AFh;                07F2
LastCHS4        db 0FEh, 0FFh, 0FFh;    07F3 
FirstLBA4       dword 291163208;        07F6
Count4          dword 294176536;        07FA

BootSignature   dw 0AA55h;              07FE

cseg ends
        end _start