Booting Windows using a hybrid MBR does not preclude using GPT only external drives.
Windows will show a hybrid MBR as MBR and a GPT only as GPT whether it is a system, internal or external drive. The protective MBR (type EE) is not the distinguising feature (GPT always has this) but rather the presense of hybrid MBR.
a conventional GPT disk contains a protective MBR with a single partition, of type 0xEE (EFI GPT), defined. This partition spans the entire size of the disk or 2 TiB, whichever is smaller. The intent is to keep GPT-unaware OSes and utilities from trying to modify the disk.
A hybrid MBR is a variant on the normal protective MBR.
A hybrid MBR contains a type-0xEE partition, but it also contains up to three additional primary partitions, which point to the same space that's marked out by up to three GPT partitions.
See rodsbooks for more details.
For example, this is a bootcamp install. Using gdisk in Windows you can see both the MBR and GPT partition tables by using the r, o, p options.
For example, here I have 5 GPT partitions the first 4 matching in MBR and the last ignored.
PS C:\> .\gdisk64.exe \\.\physicaldrive0
GPT fdisk (gdisk) version 1.0.3
Partition table scan:
MBR: hybrid
BSD: not present
APM: not present
GPT: present
Found valid GPT with hybrid MBR; using GPT.
Command (? for help): r
Recovery/transformation command (? for help): p
Disk \\.\physicaldrive0: 250069680 sectors, 119.2 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 569B72DC-B014-4DD3-B28A-A95CA047CBEE
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 8-sector boundaries
Total free space is 263550 sectors (128.7 MiB)
Number Start (sector) End (sector) Size Code Name
1 40 409639 200.0 MiB EF00 EFI System
2 409640 172376718 82.0 GiB 0700 MacWindows
3 172378112 180766719 4.0 GiB 2700 Recovery
4 180766720 222709759 20.0 GiB 8300 Linux
5 222709760 249807495 12.9 GiB AF00 macOS
Recovery/transformation command (? for help): o
Disk size is 250069680 sectors (119.2 GiB)
MBR disk identifier: 0xEBD711AE
MBR partitions:
Number Boot Start Sector End Sector Status Code
1 1 409639 primary 0xEE
2 * 409640 172376718 primary 0x07
3 172378112 180766719 primary 0x27
4 180766720 222709759 primary 0x83
Recovery/transformation command (? for help):q
As you can see it is booting from partition 2, which is marked active under the MBR partition table.
So lets format a USB using GPT :
PS C:\> diskpart
Microsoft DiskPart version 10.0.17763.1
Copyright (C) Microsoft Corporation.
On computer: MACWINDOWS
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 119 GB 0 B
* Disk 1 Online 1927 MB 0 B
As you can see disk 1 is not GPT.
DISKPART> select disk 1
Disk 1 is now the selected disk.
DISKPART> clean
DiskPart succeeded in cleaning the disk.
DISKPART> convert gpt
DiskPart successfully converted the selected disk to GPT format.
DISKPART> create partition primary
DiskPart succeeded in creating the specified partition.
DISKPART> format quick fs=ntfs
100 percent completed
DiskPart successfully formatted the volume.
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 119 GB 0 B
* Disk 1 Online 1927 MB 0 B *
And now it is formatted as GPT and seen by Windows as GPT - there is a * under the GPT heading. Then to check again this disk with gdisk :
PS C:\> .\gdisk64.exe \\.\physicaldrive1
GPT fdisk (gdisk) version 1.0.3
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): o
Disk size is 3948543 sectors (1.9 GiB)
MBR disk identifier: 0x00000000
MBR partitions:
Number Boot Start Sector End Sector Status Code
1 1 3948542 primary 0xEE
Recovery/transformation command (? for help): p
Disk \\.\physicaldrive1: 3948543 sectors, 1.9 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): C78677AE-1DC1-49AA-BCC1-26DE8F72BCF6
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 3948509
Partitions will be aligned on 128-sector boundaries
Total free space is 188 sectors (94.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 128 3948415 1.9 GiB 0700 Basic data partition
So this is fine - there is protective member from start to end of the disk. But what if we make a hybrid member? In gdisk use option 'h'
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: 1
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): n
Creating entry for GPT partition #1 (MBR partition #1)
Enter an MBR hex code (default 07):
Set the bootable flag? (Y/N): n
Unused partition space(s) found. Use one to protect more partitions? (Y/N): n
Recovery/transformation command (? for help): p
Disk \\.\physicaldrive1: 3948543 sectors, 1.9 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): C78677AE-1DC1-49AA-BCC1-26DE8F72BCF6
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 3948509
Partitions will be aligned on 128-sector boundaries
Total free space is 188 sectors (94.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 128 3948415 1.9 GiB 0700 Basic data partition
Recovery/transformation command (? for help): o
Disk size is 3948543 sectors (1.9 GiB)
MBR disk identifier: 0x4C7FBBF6
MBR partitions:
Number Boot Start Sector End Sector Status Code
1 128 3948415 primary 0x07
2 1 127 primary 0xEE
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 \\.\physicaldrive1.
Disk synchronization succeeded! The computer should now use the new
partition table.
The operation has completed successfully.
PS C:\>
Now if we recheck in Windows, beacause it has hybrid MBR it is no longer seen as GPT even though there is still a protective MBR there - no notice the * has gone :
DISKPART> rescan
Please wait while DiskPart scans your configuration...
DiskPart has finished scanning your configuration.
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 119 GB 0 B
* Disk 1 Online 1927 MB 0 B
So you can see it isn't the presense of a protective MBR (type EE) that makes Windows see a drive as GPT it is the absense of a hybrid MBR.