OK, I read this whole thread.
Am I reasoning this right:
- Now in 10.13.6 and 10.14 the sure bet is to use Apple Script with manual setup of drive ID (via diskutil list info) and that should work in all cases,
- The precondition is to turn-off SIP, but that has to be done in Recovery mode,
- If you are running non-boot-screen card (like me with RX 580) you have to do it blindly in CMD+R+S Single mode?
- SIP is re-enabling itself after PRAM reset (which is needed to reboot in Mac as BootCamp in Win can't do that now?).
I am missing something? Not a very happy situation for anyone with a modern non-Apple card.
Let me see if I can remember everything
I like using scripts to boot into Windows or other Mac OS's, which I can customize and access from the Menubar. But there are several other programs you can use that have some disadvantages like not storing your password. However, which script to use for Windows depends on whether you are booting Windows in the Legacy BIOS mode (you probably are if you used Bootcamp Assistant) or in the UEFI mode (which requires you to install Windows by booting the Windows installer in the UEFI mode). If you aren't sure you can check while running Windows (Google for how).
------
For the UEFI mode you can use this script, or modify as needed, which will automatically determine your drive ID each time it is used (because it can change from boot to boot):
# My Win 10 EFI booting requires -device /dev/diskXs1 be included in the "bless" command.
# This script solves the problem of the Disk ID assigned to the Win 10 physical disk changing
# from one power-up to another. The Disk ID depends on when it is enumerated during boot.
# change BOOTCAMP to your Win 10 volume name, and substitute your password for "your_password".
set Win_devID
to do shell script "diskutil info BOOTCAMP | grep Node"
# this assigns the string "Device Node: /dev/diskXsY" to the Win_devID variable, where X is unpredictable
set Win_devID
to (
text -7
thru -2
of Win_devID) & "1"
# This strips everything except "diskXs" and appends a "1" for the EFI location (which is always "1")
display dialog "Windows 10 EFI Volume was assigned as " & Win_devID
buttons {"Cancel", "Boot Win10"}
do shell script "bless -device \"/dev/" & Win_devID & "\" -mount /Volumes/EFI -setBoot -nextonly" password "your_password"
with administrator privileges
tell application "Finder"
to restart
-------
You can use this script for Windows Legacy-BIOS Boot:
# change BOOTCAMP to your Win 10 volume name, and substitute your password for "your_password".
display dialog "Windows 10 Legacy-BIOS Boot"
buttons {"Cancel", "Boot Win10"}
do shell script "bless -mount /Volumes/BOOTCAMP -setBoot -nextonly -legacy" password "your_password"
with administrator privileges
tell application "Finder"
to restart
-------
You can use this script to boot into another Mac OS (sub in the name of your Mac OS disc in place of "Mojave"):
display dialog "Boot to MacOS Volume Mojave"
buttons {"Cancel", "Save", "Once"}
set choice
to the button returned
of the result
as text
if (choice) = "Once"
then
do shell script "bless -mount /Volumes/\"Mojave\" -setBoot -nextonly" password "your_password"
with administrator privileges
else if (choice) = "Save"
then
do shell script "bless -mount /Volumes/\"Mojave\" -setBoot" password "your_password"
with administrator privileges
end if
tell application "Finder" to restart
-------
Even though you are running a video card without boot screens it will still provide you with video screens for the Recovery mode (Command-R at startup - takes a while so be patience holding the keys down). Then using the terminal type:
csrutil enable --without nvram
And yes, if you ever do a PRAM reset, you will have to disable the SIP nvram again.
[doublepost=1539512155][/doublepost]
But then you have to shut down, pull the HD out and reboot to be able to get back to OSX. SIP will not be enable if you pull the HD out. Othwise you will be stuck in a "Windows boot-loop". No way I found my way back from EFI to OSX. So not fully functional.
That's because you updated Windows to the latest version. Stick with v1803 for now and you won't have that problem.