Posted on 03-27-2019 08:16 AM
I have been using a document that I received from JAMF entitled "Upgrading to macOS High Sierra" in order to upgrade our users to macOS Mojave. This process uses a script from GitHub and an installer packaged up in Jamf Composer.
This process has worked in the past, but with each new version of Mojave, I am faced with a new challenge. The installer package needs to be created on an HFS+ formatted drive in order for Composer to offer a choice of creating the dmg formatted for HFS+ or APFS. If I create it in APFS it will not load on a High Sierra machine.
So, I dug out an old machine that had not been upgraded and created the DMG in HFS+; I never installed Mojave on that machine.
Now with a new upgrade 10.14.4, I go back to the old High Sierra machine, delete the installer and try to download a new installer - even though the installer is gone, and the trash emptied - the App store opens a Mojave installer instead of allowing me to download a new copy!
Where is the machine storing a version of the installer?
How do I get a new copy? Can I use an installer downloaded on another machine?
Posted on 03-27-2019 08:36 AM
You can set Composer to create DMGs as HFS+ on Mojave machines. Go into Composer -> Preferences, and set DMG Target Filesystem to HFS+.
If you are only creating a package to put the MacOS installer on the machine, then you can also package it as a .pkg, and not have to worry about filesystem type. DMGs are usually only needed for filling user templates.
If you look in the sources section of Composer, every package there has files that are being stored in /Library/Application Support/Jamf/Composer/Sources. If you still have a source of an old Mojave package, then you have a Mojave installer stored in /Library/Application Support/Jamf/Composer/Sources. That copy is what App Store is opening. Delete any sources with a Mojave installer in them, and then you can download the most recent Mojave installer.
Posted on 03-27-2019 10:49 AM
This might be slightly off-topic, but I just received word from an Apple System Engineer that I could use the macOS Mojave from the Volume Purchase Program and the startosinstall command. He didn't elaborate, but that sure sounds a whole lot easier than what I am doing now.
Has anyone done this, can anyone provide me documentation or a walk through?
Posted on 03-27-2019 11:05 AM
Yes, there is a scriptable way to deploy Mojave using the "Install macOS Mojave.app", you can either push the installer app out with VPP or I've just packaged the app itself from one Mac, making sure it's the full ~6.04GB installer, using Composer and push it out through Jamf via my own distribution servers.
This script might be something you'd want to look at, I've used it with great success. Created by a Jamf employee, used if you want to let users upgrade through Self Service.
Here's the usage output from the startosinstall command of the Mojave app.
$ /Applications/Install macOS Mojave.app/Contents/Resources/startosinstall --usage
Usage: startosinstall
Arguments
--license, prints the user license agreement only.
--agreetolicense, agree to the license you printed with --license.
--rebootdelay, how long to delay the reboot at the end of preparing. This delay is in seconds and has a maximum of 300 (5 minutes).
--pidtosignal, Specify a PID to which to send SIGUSR1 upon completion of the prepare phase. To bypass "rebootdelay" send SIGUSR1 back to startosinstall.
--installpackage, the path of a package (built with productbuild(1)) to install after the OS installation is complete; this option can be specified multiple times.
--eraseinstall, (Requires APFS) Erase all volumes and install to a new one. Optionally specify the name of the new volume with --newvolumename.
--newvolumename, the name of the volume to be created with --eraseinstall.
--preservecontainer, preserves other volumes in your APFS container when using --eraseinstall.
--usage, prints this message.
Example: startosinstall
So if you wanted to have the script automated with a Jamf policy (without Self Service), I think you'd just do:
/Applications/Install macOS Mojave.app/Contents/Resources/startosinstall --agreetolicense --nointeraction
The --nointeraction flag isn't mentioned in the usage but it was needed for High Sierra and it wasn't in the usage there either. Haven't tested a fully automated Mojave upgrade yet myself.