Network Boot Server for SPARC

It is pretty easy to a Linux machine to act as a boot server for a Sun SPARC machine. I used a Red Hat 7.3 Linux machine to boot a SPARCstation 10 for installing various operating systems. Other Unix operating systems should be pretty similar. Obviously, you should change the hostnames, addresses, and paths to fit your configuration.

The server needs to have the rarpd, tftpd, bootparamd, and nfsd servers installed. The boot process follows the following steps: discoveres the IP address through RARP; fetches the boot-loader through TFTP; determines the root filesystem with bootparams; and mounts the root filesystem through NFS.


The Sun machine gets its IP address using RARP from the rarpd server. The /etc/ethers file lists the mapping between Ethernet address and hostname.

# cat >> /etc/ethers
# /etc/init.d/rarpd start


The boot process downloads the boot loader or kernel through TFTP. The TFTP server looks in /tftpboot by default. The boot file is named with the client as the client IP address in hex followed by a period and the architecture. For example, the boot file for the SS10 at is C0A8010C.SUN4M. This is normally a symlink to the boot loader for each operating system.

# cd /tftpboot
# ln -sf inetboot C0A8010C.SUN4M


Bootparamd is used to convey boot parameters to the boot loader or kernel. The most of important of these is the root filesystem. This is normally mounted over NFS. The /etc/bootparams is used to configure this. Hostnames can be used in this file as long as they are listed in the server's /etc/hosts file.

# cat >> /etc/bootparams
balrog root=kraken:/pub/solaris/Solaris_8/Tools/Boot
# /etc/init.d/bootparamd start
# cat >> /etc/hosts    kraken    balrog


The root filesystem needs to be exported through NFS. For most operating systems, it can be read-only and needs to have the no_root_squash option.

# cat > /etc/exports
# /etc/init.d/nfs start