While iTunes and Photos data is generally stored on the system drive, users with especially large libraries can move them to external drives, or network shares to save limited space. Given how the macOS works, and the relative slowness of external media, an app that can't find its data complains, and asks to re-locate the library.
A very simple script, coupled with proper system configuration can be used in place of manually launching iTunes after the entire boot cycle is complete. Here's how to do it.
Configure the system to not bypass your hard work
Select "restart."
Before the 60-second timer expires, uncheck "reopen windows when logging back in."
Remove external drive-dependent apps from starting by themselves at launch
Open "System Preferences" and open "Users and Groups"
Remove apps that are giving you grief about missing data by selecting them, and hitting the - button
Write the script
In the Utilities folder, open "Script Editor"
In the AppleScript window, type:
" Delay 10
Tell application iTunes to launch"
Other applications can be added to the list, in the same syntax as "iTunes" above.
Make the AppleScript applet, and make it launch on start
Still in the Script Editor, select Export from the File menu
Change "File Format" to "Application" and hit save
Re-open "Users and Groups"
Add the applet you just made to your list of startup items, by hitting + and navigating to where you saved the applet.
Reboot to test.
What to do if it doesn't work
Some drives spin up faster than others. The "Delay 10" line in the script works with all the external enclosures and drives we've tested it with, but adding a few more seconds may be necessary, depending on your hardware.
Source: appleinsider