This section provides a basic, best practice workflow for imaging computers by using NetBoot images. The workflow involves the following steps:
Made an AutoDMG image from a macOS 10.12.5 installer (fetched from MAS) Renamed the image to System.dmg (will use it as NetRestore image later on) Used the image, and with SuperDuper! I restored the image to a MacBookAir (some years old but Sierra savvy) Logged in on the MBA and used the PmmOsdImageBuilder to build a NetBoot set. Used the beta of autocaspernbi you sent me to create an NBI with a sparseimage I simply renamed NetBoot.reduced.sparseimage to NetBoot.reduced.dmg Uploaded the.nbi folder to the NetSUS and was able to successfully netboot client machines. Unable to create dmg image for MAC Netboot on 10.12 for temporary volume. However, after using system image utility, when updating image the netboot image does not function and clients shutdown when trying to boot, if image not updated the netboot image works and clients can boot. Create a.dmg image of a windows live (Bart PE) CD - Create a netboot image of a windows live (Bart PE) CD However, I have not yet been able to netboot any Windows image successfully. In the Netboot settings in Server Admin, the NetInstall images created using NetRestore Helper display as Intel architecture (cannot boot diskless).
Step 2 Create Bootable USB from macOS Install Image Click on Load DMG to import the macOS installation file into the application. Insert a USB (16G free space) and click on the 'Burn' button next to the appropriate media type.
Determine which NetBoot images you need to create.
Create clean base OS images.
Create the NetBoot images.
Upload the NetBoot images.
(Optional) Create configurations.
Boot the target computers to a NetBoot image.
Image a computer.
Set up Autorun imaging.
To image computers by using a NetBoot image, you need:
A NetBoot server. The server can be one of the following:
A server with OS X Server installed and access to OS X Server's NetInstall service (recommended)
A Linux server with the NetBoot/SUS Appliance (Net/SUS) installed
It is recommended but not required that the server be a dedicated NetBoot server.
A tool for creating NetBoot images. The tool can be one of the following:
A host computer with Casper Imaging installed
The 'host' computer is the computer on which you plan to create the NetBoot image.The target computers
A network switch
A gigabit network switch is recommended but not required.Network cables (one for the server and one for each computer)
A Thunderbolt to Ethernet or USB to Ethernet adapter for computers that do not have built-in Ethernet ports
The number and type of NetBoot images you create depends on the OS X models in your environment. Typically, a NetBoot image must be created on hardware that matches the target computer. Additionally, each OS X model supports a different range of OS X versions, so you need to make sure that the version in the NetBoot image is supported on the target hardware.
To start, create an advanced search that lets you view the OS X models in your environment. Then, use the information in the System Requirements section to determine which OS X versions are supported on that hardware and then how many NetBoot images you need to create.
Viewing the OS X Models in Your Environment
Log in to the JAMF Software Server (JSS) with a web browser.
Click Computers at the top of the page.
Click Search Inventory.
Click New.
To save the search, select the Save this Search checkbox.
Enter 'Device Models and Years' in the Display Name field.
Click the Display tab.
Click Hardware and then select Model.
Click Save.
Click View to view the search results.
Sort the results by model by clicking the Model column heading.
System Requirements
Use the information in this section to determine which OS X versions are supported on the OS X models in your environment.
Note: The information in this section may not cover every computer in your environment. For a more comprehensive list, see the Mac OS X Versions (Builds) for Computers article from Apple.
iMac
iMac Year | Minimum Supported OS | Maximum Supported OS |
Late 2012 | OS X v10.8.2 | OS X v10.11.x |
Early 2013 | OS X v10.8.2 | OS X v10.11.x |
Late 2013 | OS X v10.8.4 | OS X v10.11.x |
Mid-2014 | OS X v10.9.3 | OS X v10.11.x |
MacBook Air
MacBook Air Year | Minimum Supported OS | Maximum Supported OS |
Mid-2009 | OS X v10.5.6 | OS X v10.11.x |
Late 2010 | OS X v10.6.4 | OS X v10.11.x |
Mid-2011 | OS X v10.7 | OS X v10.11.x |
Mid-2012 | OS X v10.7.4 | OS X v10.11.x |
Mid-2013 | OS X v10.8.4 | OS X v10.11.x |
Early 2014 | OS X v10.9.2 | OS X v10.11.x |
MacBook Pro
MacBook Pro Year | Minimum Supported OS | Maximum Supported OS |
Mid-2012 | OS X v10.7.3 | OS X v10.11.x |
Early 2013 | OS X v10.8.2 | OS X v10.11.x |
Late 2013 | OS X v10.9 | OS X v10.11.x |
Mac Mini
Mac Mini Year | Minimum Supported OS | Maximum Supported OS |
Early 2009 | OS X v10.5.6 | OS X v10.11.x |
Late 2009 | OS X v10.6 | OS X v10.11.x |
Mid-2010 | OS X v10.6.4 | OS X v10.11.x |
Mid-2011 | OS X v10.7 | OS X v10.11.x |
Late 2012 | OS X v10.8.2 | OS X v10.11.x |
Now that you know what NetBoot images you need to create, create a clean base OS image for each one. For instructions, see the Creating a Minimal Base OS Image Knowledge Base article.
The procedure for creating a NetBoot image differs depending on the tool. Follow the procedure for the tool you are using.
Using the Casper NetInstall Image Creator
To avoid complications with server-to-client compatibility, create the NetBoot image on the server that will host the image. The NetBoot image must be created with an operating system that is running the same or later version than the operating system used to image client computers.
Download the Casper NetInstall Image Creator from JAMF Nation.
Follow the instructions in the Creating a NetBoot Image and Setting Up a NetBoot Server Knowledge Base article.
Using the AutoCasperNBI
The NetBoot image can be created on any OS X computer, regardless of version.
Download AutoCasperNBI from macmule.
Open AutoCasperNBI.app.
Note: This requires administrator credentials for the computer or server.Select the OS.dmg.
Select Casper Imaging.app.
Enter the JSS URL. For example, “https://jss.mycompany.com:8443/” (excluding the quotation marks).
Enter a name for the NetBoot image.
It is recommended that you include the version number of the operating system in the name.
Important: (NetBoot/SUS only) Do not use spaces in the name as they can break the imaging process in the NetBoot/SUS Appliance.
The procedure for uploading a NetBoot image differs depending on the tool. Follow the procedure for the tool you are using.
For NetInstall
From the NetBoot server, put the NetBoot image in /Library/NetBoot/NetBootSP0/.
Turn on the NetInstall service in Server.app.
Ensure that a green status icon is displayed next to the NetBoot image in the NetInstall pane, indicating that the image is available for deployment.
For NetBoot/SUS Appliance
Log into the Net/SUS server web application.
The default credentials are:
Username: webadmin
Password: webadmin
Note: It is recommended that you change the default credentials for better security.Click NetBoot Server.
On a smartphone or iPod touch, this option is in the pop-up menu.Click Upload Net Boot Image.
This connects you to the SMB share where NetBoot images are stored.Enter credentials to the share and click Connect.
The default credentials are:
Username: smbuser
Password: smbuser
Note: It is recommended that you change the default credentials for better security.Copy the NetBoot image to the SMB share.
Important: The name of the folder cannot contain any spaces.Return to the NetBoot/SUS server web application and refresh the page.
Choose the NetBoot image from the pop-up menu.
Choose subnets for the NetBoot image by entering a subnet and a netmask. Then click Add Subnet.
Click Enable NetBoot.
A green status icon is displayed next to the NetBoot image in the NetInstall pane.
If a red status icon is displayed, do one of the following:Ensure you are using the subnet that includes the NetBoot server. (For more information, see http://www.subnet-calculator.com.)
Ensure there are no spaces in the NetBoot image filename.
Configurations give you a quick way to specify what should be installed and configured on computers during imaging. Using configurations can speed up the imaging process. For more information, see Configurations in the Casper Suite Administrator's Guide.
The NetBoot server must be on the same subnet as the target computers. For information about booting computers across subnets, see the OS X Server: How to Use NetBoot Across Subnets article from Apple.
This section explains two ways to boot to a NetBoot image: manually and using a policy. The manual method is useful for testing purposes, and testing is recommended before deploying a policy that boots all computers to the NetBoot image.
Note: If you are booting an OS X v10.11 computer to a NetBoot image, the computer must first trust the NetBoot server. For more information, see the Booting OS X v10.11 or Later Computers to a NetBoot Image Using a Policy or Casper RemoteKnowledge Base article.
Manually Booting a Computer to a NetBoot Image
From the target computer, navigate to Apple menu > System Preferences.
Click Startup Disk.
Select the NetBoot image.
Note: Hover over the NetBoot image to view its IP address.Click Restart.
Using a Policy to Boot Computers to a NetBoot Image
Log in to the JSS with a web browser.
Add the NetBoot server to the JSS by doing the following:
In the top-right corner of the page, click Settings.
Click Computer Management.
In the 'Computer Management-Server Infrastructure' section, click NetBoot Servers.
Click New.
Configure the settings on the pane, making sure to choose 'Use default image' from the NetBoot Image pop-up menu.
Click Save.
Click Computers at the top of the page.
Click Policies.
Click New.
Use the General payload to configure basic settings for the policy, including the trigger and execution frequency.
Select the Restart Options payload , and choose 'Restart immediately' from the No Users Logged In Action or User Logged In Action pop-up menu.
Choose the server that is hosting the NetBoot image from the Boot Computers To pop-up menu.
Click the Scope tab and specify the computers you want to boot to the NetBoot image.
Click Save.
From the target computer, open Casper Imaging.
Modify the basic imaging settings as needed.
Click Image.
Automating the imaging process can be helpful in certain environments, such as a lab environment. With Autorun imaging, you can store imaging settings in the JSS so you don't have to configure them at imaging time and also fully automate the imaging process. For detailed information about setting up and using Autorun imaging, see Autorun Imaging in the Casper Suite Administrator's Guide.
Target computers not booting to the NetBoot image
If target computers are not booting to the NetBoot image:
Identify where the failure occurred.
Boot the target computer in verbose mode.
Hold down Command-V.
Additional messaging will display on the computer screen at startup and help to identify the failure.
Ensure the server and client(s) are on the same subnet range.
Isolate your server and client(s) to a private network on a dumb switch.
Recreate the NetBoot image.
Computers failing to block copy
If block copying of the base OS fails, is skipped, or Casper Imaging begins “Installing Base OS”:
Create a base operating system using a different method. For more information, see the OS X Server: Diskless NetBoot troubleshooting article from Apple.
Casper Imaging Debug Mode
If a computer does not finish imaging, put Casper Imaging into full debug mode and contact your Technical Account Manager (TAM). Putting Casper Imaging into debug mode will help your TAM identify the issue. To put Casper Imaging into full debug mode, execute the following command when creating the NetBoot image:
When full debug is enabled in this way, a log is created on the target computer. This log can be found in the following location:
/Library/Logs/JAMF/ImagingScripts.log
A debug log is also created on the host computer running Casper Imaging. This log can be found in the following location:
~/Library/Logs/JAMF/CasperImagingDebug.log
Logs and any screenshots of the issue are also helpful. From the target computer, the logs to provide are:
/var/log/system.log
/var/log/jamf.log
/var/log/install.log
Create Netboot Image From Dmg File
From the JAMF Software Server, the log to provide is:
/path/to/jss/logs/JAMFSoftwareServer.log
See the following documentation for more information about NetBoot-related concepts and procedures:
Automating the Imaging Process Knowledge Base article
Booting OS X v10.11 or Later Computers to a NetBoot Image Using a Policy or Casper RemoteKnowledge Base article
Apple's How Many NetBoot Clients Can Connect to a Server Knowledge Base article
Apple's NetBoot clients cannot start up from the server Knowledge Base article
“If it ain’t broke, don’t fix it.” But not all things have to be broken to know they could be better …
In a spree of watching past Mac Admin presentations from various conferences not too long ago, I learned about BSDPY: a replacement to the one thing that many environments loath having to have run on Mac hardware in production – a NetBoot server. A Mac NetBoot server allows IT administrators to run a fully-functional Mac operating system on a Mac from over the network. This is frequently used for imaging Macs, as it does not require local storage. Mac NetBoot servers can also be used to deploy network-based macOS installers (NetInstall) as well as run Apple-provided troubleshooting tools with Apple Service Toolkit (AST).
The problem with the macOS NetBoot Server is that it is entirely dependent on Mac hardware running macOS and the macOS Server application. As a result, many environments begrudgingly deploy Mac Minis (or Mac Pros) as servers in production in order to utilize this functionality.
Having personally started down the road of Linux administration, I took it upon myself to move everything currently on our Mac mini – our JSS, file distribution point, and NetBoot server – all to an enterprise-grade server. BSDPY proved easy to get going by comparison once I found the right guide (thanks to @bruienne – who is also the creator of BSDPY – over on the #bspdy MacAdmins Slack channel!) .
See below the jump for how to do this.
Deploying BSDPY
Before you read any further, know that you can test BSDPY yourself within a Linux VM! You don’t need a physical box. In fact, it’s a bit easier to build in a VM because VirtualBox can natively mount ISO files, whereas a physical box requires you to make a bootable media from an ISO.
The guide that was recommended to me after I struggled with a different guide can be found here: https://grahamgilbert.com/blog/2015/04/22/getting-started-with-bsdpy-on-docker/
If you happen to prefer CentOS over Ubuntu, there are a couple differences I found following the guide above. To make it easier, I’ve just put all the steps I completed below:
1) Install, enable, and start Docker.
2) Install required docker images for BSDPY.
- netboot-httpd is what serves the Netboot.dmg files over http
- tftpd is what communicates what NetBoots are available in the Mac’s boot loader
- bsdpy:1.0 is the latest version of BSDPY
3) Make a Netboot storage directory. /nbi is where BSDPY looks by default.
4) Copy your NetBoot set(s) from your existing macOS server to your BSDPY VM or physical box /nbi folder. I ran this from Terminal on our existing macOS Server.
- If your NetBoot(s) .nbi folder has spaces in it, you’ll need to remove them. BSDPY does not like spaces in the folder name!
- However, you can keep spaces in the NBImageInfo.plist name (this is what will be shown at the Mac’s boot loader screen).
5) Setup the docker containers.
6) Add the necessary firewall rules. This assumes you’re using the default “public” zone.
6) Restart the firewall to apply your changes
or
Once restarted you should be able to see and load your NetBoot sets from your Linux server!
Things to Be Aware Of
After building and rebuilding this twice, there are a few things to look out for if you’re having issues getting this working.
Create Netboot Image From Dmg Download
- Make sure you’re forwarding the right UDP ports for the tftpd and bsdpy containers. I accidentally flipped them (67 for tftpd and 69 and for bsdpy … oops) and as a result couldn’t see my NetBoots.
- Don’t have spaces in your .nbi folder name. BSDPY doesn’t like spaces!
- You need to set your NetBoots to distribute over HTTP, notNFS. If you’re like me and were previously using NFS for your NetBoots you’ll need to switch to HTTP. As such, you’ll need to either change this setting on your macOS server before you copy to your Linux server, or edit the NBImageInfo.plist on your server once the copy has completed.
- Some changes may require restarting your Docker containers. If you make a change and it doesn’t apply, just restart your containers –
docker restart <containername>
.
Happy NetBooting!