Vacation anyone?
Tuesday, November 27th, 2007My latest delivery from the USPS says my dreams are about to come true! This offer is for two, and is real, and no is mistake. How could we lose? Who wants to come with?

My latest delivery from the USPS says my dreams are about to come true! This offer is for two, and is real, and no is mistake. How could we lose? Who wants to come with?

Did you ever want to netboot one machine by plugging it in to another one that’s running a netboot server? If the "server" is running mac OS X 10.5 … well, here is one way to skin the cat:
bash-3.2# cat /etc/bootpd.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC
"-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>bootp_enabled</key>
<false/>
<key>dhcp_enabled</key>
<string>en0</string>
<key>netboot_enabled</key>
<string>en0</string>
<key>Subnets</key>
<array>
<dict>
<key>name</key>
<string>10.0.4.0</string>
<key>net_address</key>
<string>10.0.4.0</string>
<key>net_mask</key>
<string>255.255.255.0</string>
<key>net_range</key>
<array>
<string>10.0.4.2</string>
<string>10.0.4.9</string>
</array>
<key>allocate</key>
<true/>
<key>dhcp_router</key>
<string>10.0.4.1</string>
</dict>
</array>
</dict>
</plist>
Don’t forget that you also need to make sure tftp is running and not blocked by a firewall, and that you copied all the appropriate resources into /private/tftpboot. You may need to create a folder and a symlink like this:
bash-3.2# mkdir -p /private/tftpboot/private
bash-3.2# ln -s .. /private/tftpboot/private/tftpboot
and copy things over with something like this:
bash-3.2# cd /Library; find NetBoot -name ppc -o -name i386 | xargs tar -c |tar -x -C /private/tftpboot
then make sure that this file looks like this (note the -s option):
bash-3.2# cat /System/Library/LaunchDaemons/tftp.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <false/> <key>Label</key> <string>com.apple.tftpd</string> <key>ProgramArguments</key> <array> <string>/usr/libexec/tftpd</string> <string>-s</string> <string>/private/tftpboot</string> </array> <key>inetdCompatibility</key> <dict> <key>Wait</key> <true/> </dict> <key>InitGroups</key> <true/> <key>Sockets</key> <dict> <key>Listeners</key> <dict> <key>SockServiceName</key> <string>tftp</string> <key>SockType</key> <string>dgram</string> </dict> </dict> </dict> </plist>
You can start the tftpd using launchctl:
bash-3.2# launchctl load /System/Library/LaunchDaemons/tftp.plist
bash-3.2# launchctl start com.apple.tftpd
You need to serve the image somehow. In 10.5 and later the default webserver is Apache 2.2 so serving images larger than 2 GB is no problem. You can turn on Web Sharing in System Prefs and then make a symlink like the one above.
Did I forget anything? Oh yeah. You need to create a NetInstall image with System Image Utility. And don’t forget to create the require ".sharepoint" symlink:
bash-3.2# ln -s NetBootSP0 /Library/NetBoot/.sharepoint
bash-3.2# ln -s /Library/NetBoot /Library/WebServer/Documents/NetBoot
bash-3.2# /usr/libexec/bootpd -d
Delkin firewire 800 CF reader
Sandisk extreme firewire reader
Lexar Firewire 800 reader
<key>AppleWANDeviceNovatelUSB</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.driver.AppleWWANSupport</string> <key>IOClass</key> <string>AppleWWANSupport</string> <key>IOProbeScore</key> <integer>10000</integer> <key>IOProviderClass</key> <string>IOUSBDevice</string> <key>idProduct</key> <integer>16640</integer> <key>idVendor</key> <integer>5136</integer> </dict>