Se emite un error de "Falta de sistema operativo" cuando se ejecuta el código almacenado en el MBR, lee los primeros 512 bytes del volumen de arranque y determina que los bytes de lectura no terminan en 0xAA55. El supuesto aquí es que el código almacenado en el MBR proviene de una instalación de Windows. Si la fuente de código proviene de otro producto (como rEFInd), el mensaje podría ser muy diferente. La firma de 0xAA55 está presente cuando un volumen contiene software de arranque de Microsoft.
Normalmente, cuando se instala Windows para un inicio de BIOS, la tabla de particiones MBR tiene la partición de Windows marcada como el volumen de inicio. Si alguna otra partición está marcada y no se puede iniciar, se emite el mensaje "Falta el sistema operativo" y la computadora se detiene. Esto ocurrirá incluso si Windows aparece en el panel "Disco de inicio" en la aplicación de Preferencias del sistema.
El comando sudo fdisk /dev/disk0
imprime el contenido de la tabla de particiones MBR. La partición marcada como de inicio está marcada con un carácter *
. A continuación se muestra el resultado de este comando, cuando se emite en mi iMac 2011. (El Asistente Boot Camp no se usó para instalar Windows en esta Mac).
Nota: con High Sierra (y muchas otras versiones anteriores de macOS), la Protección de integridad del sistema (SIP) debe estar deshabilitada antes de ingresar el comando sudo fdisk /dev/disk0
.
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+
En mi caso, Windows 10 está instalado en la segunda partición. En su caso, la tercera partición debe estar marcada.
Nota: Supongo que las particiones 2ª, 3ª y 4ª de su tabla de particiones GUID (GPT) corresponden a las particiones 2ª, 3ª y 4ª de la tabla de particiones MBR. Normalmente, para un arranque de BIOS de Windows en una Mac, este suele ser el caso.
Puede marcar la tercera partición ingresando el comando interactivo sudo fdisk -e /dev/disk0
con SIP deshabilitado. A continuación se muestra un ejemplo del resultado de la ejecución de este comando.
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
La entrada interactiva, que se muestra arriba, se da a continuación.
f 3
q
y
Si el evento de su tercera partición se marca correctamente, hay un lugar más adelante en la secuencia de inicio del BIOS donde puede aparecer el mensaje "No se encontró un sistema operativo". Si esto ocurre, entonces publica un comentario.
Apéndice
Lo que se muestra en este apéndice puede ser omitido por el OP. Solo quería documentar los recursos utilizados para responder esta pregunta.
El código que se muestra a continuación fue creado con la ayuda del sitio web Online Assembler and Disassembler y se verificó utilizando Microsoft Macro Assembler 8.0 (MASM) . Este es el contenido del MBR (sector 0) en mi iMac 2011.
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