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 08:00:20:12:81:71 192.168.1.12 # /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 192.168.1.12 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 192.168.1.10 kraken 192.168.1.12 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 /pub 192.168.1.0/24(ro,no_root_squash) # /etc/init.d/nfs start