Skip to main content

I was glad to hear that I wasn’t the only person at JNUC who was having trouble netbooting over subnets with new Apple machines!

In order to netboot over subnets PREVOUS to Lion Internet Recovery being enabled on a mac, simply use the bless command (sudo bless --netboot --server bsdp://1.2.3.4)

For any computers that have Lion Internet Recovery Enabled (All 2012 macs and any 2011 mac with all EFI updates installed) the process is a little more conveluded.

Set up the netboot image like normal, but in the Server Admin app inside the Netboot pane, change the dropdown menu from NFS to HTTP. I am doing this off the top of my head so I’ll lead this post later when I can remember what the dropdown menu is called. Then, Take your NetBoot.dmg (found inside your .nbi folder) and place it on a web server somewhere that is visible to the client you would like the netboot from.

Below is an example of the command you need to use. My NetBoot server is 1.2.3.4, and my http server is 5.6.7.8. The http server can be the same as the netboot server, I just used different IP addresses in this example to show that you can place the actual NetBoot.dmg file somewhere on a web server (I placed mine in the root directory in this example)

Sudo bless --netboot --booter tftp://1.2.3.4/NetBoot/NetBootSP0/OS.nbi/i386/booter --kernelcache tftp://1.2.3.4/NetBoot/NetBootSP0/OS.nbi/i386/kernelcache --options 'rp=http://5.6.7.8/NetBoot.dmg'

I hope this helps everyone! I’ll update this a little later and try to make things a little clearer.

Hopefully I am not to late to the party to get a little direction. I have tried just about every combination of commands to get our machines to (automatically or user initiated) NetInstall across subnets. The image is fine as we can go in and manually select it from the Startup Disk menu and restart the machine. It installs without fail every time on any of our subnets. The issue is doing this via a terminal command. We have a wide variety of machines from ~5 years ago through to brand new machines. We are hoping to get our older 10.4.x-10.6.x machines (that are capable of course) to 10.7.5 using the NetInstall image. I am hoping to have it set as a Self Service option. I get errors all over the place and rarely will get a machine to successfully boot via the command. The most recent and probably consistent is that it won't let me set the EFI. Most of the time I get the spinning cog or a kernel panic. We use an IP Helper too. I am at a complete loss. When we set the default NetBoot image to the NetInstall image it works fine by simply telling it to boot to the server with the bless command (bless --netboot --server tftp://xx.xx.xx.xx --nextonly.) It works fine as a Self Service policy that way too. I would like to avoid that route and only use it as a last chance option. Any help would be very much appreciated and this post has already helped out a bunch so thanks to everyone so far. Below are some of the commands I have tried. I won't include them all for fear of putting everyone to sleep. Sudo is implied in each one. I have reset the PRAM on the machines too. Also as a side note if I use ARD to specify the NetInstall image it works wonderfully across subnets.

bless --netboot --booter tftp://xx.xx.xx.xx/NetBoot/NetBootSP0/NetInstallImage.nbi/i386/booter --options rp=nfs://xx.xx.xx.xx:/Volumes/Deploy/Library/NetBoot/NetBootSP0/NetInstallImage.nbi/NetInstall.dmg

bless --netboot --booter tftp://xx.xx.xx.xx/NetBoot/NetBootSP0/NetInstallImage.nbi/i386/booter --options 'rp=nfs:xx.xx.xx.xx:/private/tftpboot/NetBoot/NetBootSP0:NetInstallImage.nbi/NetInstall.dmg' --nextonly

bless --netboot --booter bdsp://xx.xx.xx.xx/NetBoot/NetBootSP0/NetInstallImage.nbi/i386/booter --options 'rp=nfs:xx.xx.xx.xx:/private/tftpboot/NetBoot/NetBootSP0:NetInstallImage.nbi/NetInstall.dmg' --nextonly

bless --verbose --netboot --server bsdp://en0@xx.xx.xx.xx --booter tftp://157.246.4.38/NetBoot/NetBootSP0/NetInstallImage.nbi/i386/booter --options 'rp=nfs:xx.xx.xx.xx:/private/tftpboot/NetBoot/NetBootSP0:NetInstallImage.nbi/NetInstall.dmg' --nextonly

bless --netboot --booter tftp://xx.xx.xx.xx/Volumes/Library/NetBoot/NetBootSP0/NetInstallImage.nbi/i386/booter --options 'rp=nfs:xx.xx.xx.xx:/Volumes/Deploy/NetBoot/NetBootSP0:NetInstallImage.nbi/NetInstall.dmg' --nextonly

bless --netboot --server bsdp://en0@xx.xx.xx.xx/Volumes/Deploy/NetBoot/NetBootSP0:NetInstallImage.nbi/NetInstall.dmg' --nextonly

bless --verbose --netboot --server bsdp://en0@xx.xx.xx.xx --options 'rp=nfs:xx.xx.xx.xx:/private/tftpboot/NetBoot/NetBootSP0:NetInstallImage.nbi/NetInstall.dmg' --nextonly

bless --verbose --server bsdp://en0@xx.xx.xx.xx --options 'rp=nfs:xx.xx.xx.xx:/private/tftpboot/NetBoot/NetBootSP0:NetInstallImage.nbi/NetInstall.dmg' --nextonly

bless --verbose --netboot --options 'rp=nfs:xx.xx.xx.xx:/private/tftpboot/NetBoot/NetBootSP0:NetInstallImage.nbi/NetInstall.dmg' --nextonly

bless --netboot --booter tftp://xx.xx.xx.xx/NetBoot/NetBootSP0/NetInstallImage.nbi/i386/booter --kernelcache tftp://xx.xx.xx.xx/NetBoot/NetBootSP0/NetInstallImagenbi/i386/x86_64/kernelcache --options 'rp=http://xx.xx.xx.xx/NetInstallImage.dmg'


The post above by @Josh_S containing the bless commands is great. My question is that with Netsus versions 2 and 3 the release notes say something about NFS being replaced by HTTP.... Does that change the commands?


I've noticed that there is now no longer any difference, since 10.9, between NetBoot and NetInstall (NetInstall now also requires the kernelcache be specified). NFS will still work with the new version of the NetSUS, so the above commands should still work.

If you'd like to use http, the command changes to:

bless --verbose --netboot --booter "tftp://${ipAddress}/${nbiName}/i386/booter" --kernelcache "tftp://${ipAddress}/${nbiName}/i386/x86_64/kernelcache" --options "rp=http://${ipAddress}/NetBoot/NetBootSP0/${nbiName}/${dmgName}" --nextonly

Talking of the "different" .NBI s
Anybody got an "original" deploystudio.nbi running on NetSUS ?
So far I found out that *enable netboot" will only turn green after the deploystudio.plist inside the .NBI is delete.
But that's obviously not enough to make it fly...
O.k - you have to convert the .sparebundle into compressed...
Workflows look good now - any ideas why the "Utilities" menu is not working - would love to have "Terminal", StartupDisk, etc. back


So I am having trouble in my environment to Netboot Macs across subnets, period.

I have a NetSUS appliance running on Ubuntu 14.04 and currently getting these errors on my Netboot server
Sep 25 15:57:49 isp-osb-netsus1 dhcpd: DHCPDISCOVER from 00:50:56:a8:xx:xx(the other DHCP server) via eth0: network 10.xx.0.0/16: no free leases
The host which is 10.xx.65.4 gives this error Sep 25 15:59:25 isp-osb-netsus1 dhcpd: DHCPREQUEST for 10.xx.65.4 from 40:6c:8f:10:74:xx via 10.xx.65.254: unknown lease 10.xx.65.4

I have a DHCP server handing out requests, could this be why I can cant use the above bless commands to boot to it?


Hi all,

Great info all round the only problem I'm now getting is the below:

Could not set boot device property: 0xe00002bc
Can't set EF

Not sure what I've don't wrong, but maybe someone else has had the same problem?

Cheers,
Mike


@mikethompsett We don't use NetBoot/Install (TDM instead), but looks like this OpenRadar outlines the EFI error...
El Cap SIP blocks bless

Apple also has an El Cap-specific kb here, which explains the csrutil command (mentioned in the OpenRadar post)...
NetBoot/Install/Restore Requirements in El Capitan


Hi All,

Has anyone successfully been able to netboot to a BSDpy server from across subnets? We've been doing so with success using a OS X server with the NetInstall service running using the syntax below:

/usr/sbin/bless --netboot --verbose --nextonly 
--booter 'tftp://x.x.x.x/NetBoot/NetBootSP0/MyNBIFile.nbi/i386/booter' 
--kernelcache 'tftp://x.x.x.x/NetBoot/NetBootSP0/MyNBIFile.nbi/i386/x86_64/kernelcache' 
--options 'rp=nfs:x.x.x.x:/private/tftpboot/Netboot/NetbootSP0:MyNBIFile.nbi/NetInstall.dmg'

However, I have yet to be able to get this to work with BSDpy running the netboot service. The syntax which I believe should be working is:

/usr/sbin/bless --netboot --verbose --nextonly 
--booter 'tftp://x.x.x.x/nbi/someNBIFile.nbi/i386/booter' 
--kernelcache 'tftp://x.x.x.x/nbi/someNBIFile.nbi/i386/x86_64/kernelcache' 
--options 'rp=http://x.x.x.x/someNBIFile.nbi/NetInstall.dmg'

The TFTP respones come back positive when trying to get the booter & kernelcache file from terminal, plus the http address prompts to download the NetInstall.dmg file when pasted into a browser.

My guess is that something is not picking up and registering correctly when the commands get written to NVRAM.

FWIW, the BSDpy works when booting on the same subnet holding down 'N' or 'Option' boot.

Thanks,

Antonin


We recently just moved our NetBoot server to BSDPY and have been having trouble blessing our computers to automatically boot to the NetBoot. I've tried @Peyerovich 's commands above but can't get it to work.

I followed Rich's post on how to whitelist NetBoot servers via macOS Recovery & csrutil - https://derflounder.wordpress.com/2015/09/05/netbooting-and-system-integrity-protection/

Any ideas?