pavement

User:Hxp/Sparc Netboot

From FreeBSDwiki
Revision as of 21:13, 16 April 2012 by Hxp (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
    • Work in progress **

This is a guide on how to boot a sparc64 machine from the network for the purpose of installing FreeBSD. Much of this would also be useful in setting up a diskless workstation, or for booting pretty much any other OS for sparc64.

The Boot Process

1. Openboot will send out RARP requests for an IP address. 2. When a rarpd server responds to the request, Openboot will then use TFTP to request a loader from the *same machine* that answered the RARP request. 3. The tftpd server provides the loader, which Openboot then executes. 4. In the case of the FreeBSD bootloader, it will then perform a DHCP request 5. The DHCP server responds with the IP address of the Sun box, and the location of the root file system on NFS. 6. The loader loads the kernel from NFS and boots it.

So, that's pretty complicated. What's necessary on the server side is the following:

  • rarpd to give the firmware its initial IP address.
  • tftpd to transfer the bootloader.
  • dhcpd to give the bootloader the location of the kernel and root file system.
  • NFS to serve up the FS and kernel.

I used FreeBSD 9.0 for amd64 in a VM, but other combinations should work. In theory, any OS which can provide those four services can be the netboot server, including other BSDs, Linux, Mac OS X and even Windows but the configuration of those is beyond the scope of this article.

It's important for the machine to be on the same physical network -- rarpd in particular will not pass through routers. Modern PCs with Gigabit ethernet can be connected directly port-to-port and will enable crossover automatically.

Edit /etc/hosts

The first thing you should do is assign an IP for your sparc box in /etc/hosts

Setting up rarpd

Rarpd listens for requests on an interface for IPs then responds based on what is in the file /etc/ethers. /etc/ethers has a very simple format of <ethernet address> <ip>.

Personal tools