Network booting a computer is a fairly straightforward, yet complex task involving many different pieces of technology. As such, troubleshooting it can be challenging.
In this article I lay out the steps of the Netboot process on Mac OS X clients and indicate what technologies are involved at each step, how they could fail, and how to solve the issue. 1-19-06 Update: On January 10th, Apple announced new Intel-based Macs. Instead of Open Firmware, the Intel Macs use (EFI). While most of the NetBoot process is exactly the same for EFI-based Macs, I will point out any differences between the two platforms throughout the article.
These changes will be marked with '†(EFI)'. In cases where EFI and Open Firmware behave the same, I have replaced platform-specific language with simply 'machine firmware'. Netboot, from the viewer's perspective. Here is a brief overview of what happens when you Netboot a client, and what you'll see on the screen as this occurs. Computer chimes when you turn it on The computer runs a self test and loads the machine firmware. A blinking globe appears. The computer is requesting an IP address and Netboot information, and begins downloading a boot file.
It was expected that if you were going to Netboot (equivalent of PXE/Kickstart in the Apple world) a server that you would be running a Mac OS X system. Even if you had set this up, a Netboot installation was wildly different from a traditional PXE installation and it would be pretty difficult to near impossible to get it working with an ESXi image. In additional to the preferences and support files, to uninstall NetBoot Across Subnets 1.2 thoroughly on Mac, cache files, kernel extensions and other hidden files on the computer will also be the items you should delete, and you can do a Google search to make clear those related files of NetBoot Across Subnets 1.2, then search and delete them. With the introduction of Intel-based Macs, however, Apple has built the AHT utility right into your Mac. Simply hold down the D key while starting up your Mac to boot into the Apple Hardware Test.
The gray Apple logo and a small spinning globe appear The computer is loading the boot file, which downloads and loads the kernel and kernel extension cache. The spinning globe turns into a circular progress indicator The computer has loaded the kernel and the boot process has begun. The kernel mounts the Netboot disk image via NFS and loads the kernel extension cache. The remainder of the boot process is mostly the same as a standard local-disk boot. 1) Machine chimes. After the chime, the machine firmware loads, reads the boot settings, and in the case of Netboot, starts a DHCP and BSDP (boot service discovery protocol) discovery process.
Its important to draw a distinction between the two. The two protocols are very similar in behavior and can both be administered by the bootpd process on Mac OS X Server. It is not necessary, however, for a client to get both DHCP and BSDP information from one server, nor is it necessary that they even come from a Mac OS X server (although configuring another OS to hand out Mac-specific BSDP information is not an easy task - that is the value of Mac OS X Server).
†(EFI): EFI provides much richer graphics support than Open Firmware - the blinking globe has more detail and is no longer on a square button background. Additionally, EFI loads much faster than OF, shaving 10 - 15 seconds off the boot process. When you see the gray Apple logo, it means that the booter file has been downloaded and executed. In the case of Netboot, the booter file then downloads two additional files via tftp: the mach.macosx and mach.macosx.mkext files.
The mach.macosx file is simply a copy of the /machkernel file located at the root of any Mac OS X filesystem. The mach.macos.mkext file is a kernel extensions cache - a file containing all the important kernel extensions for basic network booting. While these files are downloaded, the small globe icon rotates.
When the file downloads are complete, the booter file loads the kernel and the kernel carries forth with the boot process. †(EFI): The kernel and kext cache files are very architecture-dependent. As of 10.4.4, these files are 'fat-but-extracted' files. That is, they contain header information that describes the binaries available for each architecture within the file, but the architecture-specific binaries have been extracted to reduce the overall size of the files. This will be explained in more detail in the 'Architectures' section.
Its fairly uncommon to run into problems in this stage of the Netboot process, however, there are a couple specific issues that can cause kernel panics at this point. Possible problems would be:. Not having a mach.macosx and mach.macosx.mkext file in your Netboot set. Either of those files being corrupt or otherwise inaccessible. The mach.macosx (kernel) file does not contain the binary for the client architecture or is otherwise incompatible.
The mach.macosx.mkext (kernel extension cache) file does not contain kernel extensions required for the machine These files take up about 12-15MB of space, so it should take a few seconds (or several seconds for many machines) for this step to complete. If you experience problems at this stage of the process, fixing the problem is fairly trivial:.
Reboot the affected client machine from a local drive containing the most current OS available. The OS version should also match the version of OS on your NetBoot disk image. If the OS on the NetBoot disk image is older than that on your affected client machine, you should recreate your NetBoot disk image. It is most important that the OS on the NetBoot disk image be newer than (or the same as) the OS that the machine shipped with. Mount via AFP the NetBoot sharepoint of the NetBoot server that contains the affected NetBoot set.

Recreate the mach.macosx and/or the mach.macosx.mkext files. See the 'Architectures' section for more details.
If all else fails, simply recreate the entire NetBoot set on the affected hardware. Be sure to delete (or move out of the NetBoot sharepoint) any non-functional NetBoot sets. 4) Spinning globe turns into indeterminate progress indicator. Once the kernel loads, it changes the spinning globe icon into an indeterminate, circular progress indicator, and the boot process functions mostly the same as a standard boot process. If you were holding down Command+V during start up, you'd get the verbose boot at this point. Two interesting things happen here that are relevant to troubleshooting Netboot. First, the kernel loads the kernel extension cache to give the young OS the functionality it needs to perform advanced network communication, mount disks, etc before the rest of the OS loads.
Second, the kernel executes the /etc/rc.netboot startup script. This script attempts to mount the disk image inside your Netboot set via NFS. The path to this disk image is obtained from the BSDP response and maintained in memory (much like your DHCP packet is maintained and accessible via the ipconfig command). If you do a packet trace you will see a packet similar to this: Server IP: 10.0.1.1 Client Ethernet Address: 00:0a:95:c4:21:9c sname 'xserve.apple.edu' file '/private/tftpboot/NetBoot/NetBootSP0/Panther Server.nbi/booter' Vendor-rfc1048: DHCP:OFFER SID:10.0.1.1 VC:'AAPLBSDPC' RP:'nfs:10.0.1.1:/Library/NetBoot/NetBootSP0:Panther Server.nbi/Install.dmg' VO:8.4.129.0.1.145.130.10.78.101.116.66.111.111.116.48.48.50 After these occur, the kernel initiates the /etc/rc.boot and/or /etc/rc.cdrom scripts which complete the boot process. Eventually the screen turns blue as the WindowServer loads and you begin to see the more familiar parts of the boot process. Potential problems Problem: Soon after the circular progress indicator appears under the gray Apple logo, white horizontal lines appear on the screen and the progress indicator stops spinning. Cause: This is probably a kernel panic, and it is likely a result of the machine trying to mount the NFS-hosted disk image and failing.
Suggestions:. Verify that you have a kernel panic by holding down Command+V while you reboot the client. There should be some indication of a panic. Verify that NFS is running on the server. Verify that the NetBootSPx sharepoint is valid and accessible. A diskless NetBoot image is exactly the same as a non-diskless image (you don't make that choice during SIU image creation, right?
Right.) When you choose to make an image set diskless in Server Admin, the only change that is made is to the 'SupportsDiskless' key in the NBInfo.plist file in the.nbi directory. The magic occurs when you boot the client. Part of the BSDP response to the client includes information about the location of any network mountpoints for shadow files. For example, using the previous tip, you can get the following data from the BSDP packet:% ipconfig netbootoption shadowmountpath afp://netboot001:/NetBootClients3% ipconfig netbootoption shadowfilepath NetBoot001/Shadow% ipconfig netbootoption machinename NetBoot001 Examining the /etc/rc.netboot startup script you can see how diskless Netbooting works.
By default, a Netboot client will try to mount a shadow file at the shadowmountpath. If that fails though (for example, if shadowmountpath is not defined by the Netboot server), it will use the local drive instead. Therefore, diskless Netboot depends entirely on the client's ability to mount a shadow file at the AFP mount path returned by the Netboot server in the BSDP response.
Note that while NetInstall does not require an internal drive, it is.not. 'diskless netboot'. NetInstall does not use a shadow file at all, therefore a network shadow file is not required or returned in the BSDP response. This is also why the 'Diskless' checkbox is disabled in Server Admin for NetInstall image sets. NetInstall sets employ RAM disks as necessary for writable space. Resetting NetBoot server caches.
When you hold down the 'N' key during startup, your machine will boot from the image set that you have identified as the 'default' set in Server Admin. When you choose a Network startup disk in the Startup disk preferences pane, the server keeps track of your selection, and you're forever bound to that server and Netboot set until you make another choice.
What this means is that if you change the default set at the server, then hold down the N key on startup at that client that had chosen another Netboot set, the client will not boot from your default set, it will always boot from the set that you had previously chosen (even if you have, since then, reset the startup disk to a local disk). †(EFI): Hold down Option+N to boot from the actual default NetBoot image. While this technically works as designed, it doesn't necessarily work as expected. The Netboot server keeps these choice settings in /var/db/bsdpdclients.
Its safe to delete that file to allow your clients to boot to the default image set again. Also, the following series of commands tend to resolve problems caused by setting a specific network startup disk choice on a client, then deleting that Netboot set. Sudo rm /var/db/bsdpdclients sudo killall bootpd sudo killall -HUP xinetd sudo lookupd -flushcache sudo serveradmin stop netboot sudo serveradmin start netboot Netbooting across subnets. Netboot requires that the client can get DHCP and BSDP information via broadcast.
This typically requires that the Netboot server and clients reside on the same subnet, because routers typically do not pass broadcast information between subnets. DHCP information, however, is handled specially by routers so you don't need a DHCP server on every segment of your network. This is handled by what are typically called 'DHCP Helper tables' (or more generally, DHCP Relay) in your router's configuration.
Basically this is just a list of IP addresses that DHCP broadcast packets should be relayed to. Because the BSDP protocol is so similar to DHCP, the router configuration for a BSDP server is the same as for DHCP. Therefore, if you want to Netboot across subnets, or more technically spoken, if you want BSDP broadcast information relayed past your routers, you need to add the IP address of your Netboot server to your router's DHCP helper table. A common fear among network administrators is that this will interfere with the handling of DHCP by other servers. However, although the bootpd process is running on your Netboot server, if the DHCP service is not turned on, it will not hand out IP addresses.
In fact, it will completely ignore any DHCP requests altogether. Likewise, your other DHCP server will completely ignore BSDP broadcasts that are relayed to it by the router. In summary, if you want to Netboot across subnets, work with your network administrator to configure your routers to send BSDP broadcasts to your Netboot server. This is not an unreasonable request or difficult task, and greatly reduces your infrastructure and management costs. NetBooting Multiple Architectures.
Imac Pro Netboot
Choose Another Startup Disk with the Startup Manager To boot from a specific device, press and hold the Option key while booting your Mac. You’ll see the Startup Manager appear. From here, you can choose to boot from different connected hard drives, USB flash drives, network locations, and other boot devices. To skip the Startup Manager and boot straight from a removable device—for example, a CD, DVD, or USB drive—instead of its internal drive, press and hold C. To boot directly from the network with Netbook, press and hold N instead.
Netboot Macbook Pro
Test Your Hardware with Apple Diagnostics Apple Diagnostics tests your Mac’s hardware to ensure it’s working properly. On Macs released before June 2013, Apple Hardware Test (AHT) will appear instead of Apple Diagnostics. To access this tool, press and hold the D key while booting your Mac.
Select your language and your Mac will automatically test its hardware and inform you if anything is wrong. Load the Bare Necessities with Safe Mode Macs offer a Safe Mode, also known as Safe Boot.
When you boot in Safe Mode, your Mac will check its startup volume, only load necessary kernel extensions, and disable third-party fonts and startup options. It’s like —it won’t load third-party hardware drivers or startup programs, so you can use this mode to fix problems if your Mac isn’t working or booting properly. To load your Mac in Safe Mode, press and hold the Shift key while it boots. You can stop holding the Shift key when you see an Apple logo and progress bar.
To leave Safe Mode, just reboot your Mac without holding the Shift key. Troubleshoot from the Command Line with Single-User Mode In single-user mode, you’ll be presented with a text-mode terminal you can use to enter commands you might need to troubleshoot problems. This works like —rather than getting multi-user operating system, you boot directly to a root shell. Press Command+S as your Mac boots to enter single-user mode. To leave this mode, type reboot at the prompt and press Enter. See More Detailed Information with Verbose Mode In verbose mode, you’ll see normally hidden messages appear on your screen. If your Mac is freezing, especially during the boot process, the messages here can help you identify and get help with the problem.
Apple Netboot
Press Command+V as your Mac boots to enter verbose mode. You’ll see the terminal messages appear during the startup process. If everything goes properly, your Mac will boot to its normal desktop.
Get Other Tools (or Reinstall macOS) with Recovery Mode RELATED: Recovery Mode provides various graphical tools for working with your Mac. From here, you can, restore your computer from a Time Machine backup, or use the Disk Utility to repair, wipe, and partition your Mac’s internal disks. Press Command+R as your Mac boots to access Recovery Mode. If necessary, you’ll be asked to connect to a network so your Mac can download the appropriate recovery software.
You can then choose your language and use the graphical tools here. One of the nice things about a Mac is that this is all built-in. You don’t even have to download a macOS installer to access these tools—if necessary, your Mac will download the macOS installation files for you when you choose to reinstall the operating system. Better yet, it will download the most recent version of macOS so you won’t have to spend hours installing patches and service packs, as you do on Windows.