Booting from MBR USB on Mac
I have a MacBook Pro8,1. For experimental purposes I've installed Windows 7 to USB (it's NOT an installer, a real OS on USB) via WinNTSetup on other PC. When I'm trying to boot from the USB with the command (I've unmounted the disk before):
sudo bless --device /dev/disk3s1 --setBoot --legacy
It doesn't work – it just boots to Windows 10 installed on the internal HDD with legacy method + Hybrid MBR too.
Here's my partition table:
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.1 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_HFS HDD 379.8 GB disk0s2
3: Microsoft Basic Data BOOTCAMP 119.9 GB disk0s3
/dev/disk1 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *128.0 GB disk1
1: EFI EFI 209.7 MB disk1s1
2: Apple_APFS Container disk2 127.8 GB disk1s2
/dev/disk2 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +127.8 GB disk2
Physical Store disk1s2
1: APFS Volume w32u SSD - Data 11.0 GB disk2s1
2: APFS Volume Preboot 24.5 MB disk2s2
3: APFS Volume Recovery 708.8 MB disk2s3
4: APFS Volume VM 8.6 GB disk2s4
5: APFS Volume w32u SSD 11.1 GB disk2s5
/dev/disk3 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *125.1 GB disk3
1: Windows_NTFS 367.0 MB disk3s1
2: Windows_NTFS 124.7 GB disk3s2
Can I actually boot from USB with the MBR bootloader on Mac or not? I've tried any way, including rEFInd, but it results again in booting to Win10 installed on disk0 HDD.
UPD: I've noticed that my USB drive is detected as internal, that's not true. macOS Catalina Patcher's fault, I guess.
Solution 1:
Not all Mac are built the same. Your Mac is probably just a year to early.
The industry switched to EFI booting of Windows in 2011. Apple did not catch up until around 2012/2013. This is also the time Apple starting to eliminate the optical drives from Mac models. However, since Windows 7 required a BIOS boot, Apple started adding the ability to BIOS boot from USB. This continued through at least the 2014 model year. In 2015, Apple started to eliminate the ability to BIOS boot entirely, which effectively ended the ability to install Windows 7.
So your model probably can not BIOS boot from USB. However, some (if not all) of the very next year MacBook Pro models can BIOS boot from USB. For example, see the question Bootcamp “Missing Operating System” on external drive.
One possible way to come close to having Windows on an USB drive would be to put the System partition on the internal drive and Windows partition on the USB drive. The System and Windows partitions are described in the Microsoft document BIOS/MBR-based hard drive partitions. I have never tested such an arrangement to see if it would work with any Mac model. You would have to try this on your Mac to see if it would work.
Another option would be the following. Since you have Windows already installed on the internal drive, try rebuilding the BCD on the internal drive. Windows on the USB drive may be detected and included in a Windows boot manager.
A final note. Your question included the command which is repeated below.
sudo bless --device /dev/disk3s1 --setBoot --legacy
I believe the --device /dev/disk3s1
is a dummy option which is ignored. In other words, when specifying the the legacy boot option, the firmware tries to BIOS boot. There is no way to select the boot drive.