I was able to successfully install Solaris 8 on my SPARCstation 10 using my Red Hat 7.3 Linux machine as a boot server. I downloaded the Solaris 8 CD images from Sun. I don't have a SCSI CD-ROM for the SS 10. But I do have CD-RW drive on my Linux machine and a network to connect them together. I connected to the serial console on the SS10.
The Solaris Install CD isn't needed for the install; it is for booting from the CD drive and doing a graphical install. The Software 1 CD CD contains the root filesystem and core packages. The Software 2 CD contains optional packages that can be copied over for the main install, or installed later.
The Solaris_8/Tools
directory contains some shell scripts
that are used on Solaris machine to setup a boot server. These don't
work under Linux but inspecting them shows how a boot server can be
setup on other Unix machines.
Setup network booting as described in my Network Boot Server for SPARC article.
The root filesystem is on the Software 1 CD in the
Solaris_8/Tools/Boot
directory. It needs to be copied to
the boot server using either tar
or cpio
commands to preserve all the file attributes.
# cd /mnt/cdrom/Solaris_8/Tools # find . -depth -print | cpio -pdmu /pub/solaris/Solaris_8/Tools
The network boot file for loading over TFTP is the
usr/platform/platform/lib/fs/nfs/inetboot
file
in Solaris_8/Tools/Boot
. Copy the file for your platform
to the /tftpboot
directory and symlink it to the file for
the client.
# cd /pub/solaris/Solaris_8/Tools/Boot # cp usr/platform/sun4m/lib/fs/nfs/inetboot /tftpboot # cd /tftpboot # ln -sf inetboot C0A8010C.SUN4M
The core packages are also on the Software 1 CD in the
Solaris_8/Product
directory. This directory must be
available over NFS. It can be copied from the CD-ROM to the hard
drive. If you want to install the packages from the Software 2 CD,
also copy them to the same location onto the hard disk with the same
command.
# cd /mnt/cdrom/Solaris_8 # find Product -depth -print | cpio -pdmu # /pub/solaris/Solaris_8
Alternatively, the CD-ROM can be exported directly over NFS. One snag
with this is that you won't be able to unmount or eject the CD while
it is exported. The solution is to not add a line to the
/etc/exportfs
file, but use the exportfs -i
command to export it and then do exportfs -r
to remove
it.
# exportfs -v -i -o ro,no_root_squash 192.168.1.0/24:/mnt/cdrom
All the locations for directories above needed to be exported through
NFS. They also need to be transmitted to the client with the
bootparamd file. Add the configuration for the client to the
/etc/bootparams
file.
# cat >> /etc/bootparams balrog root=kraken:/pub/solaris/Solaris_8/Tools/Boot \ install=kraken:/pub/solaris \ rootopts=:rsize=32768 boottype=:in
Some people have reported problems with interaction between the Linux NFS daemon and Solaris. I didn't have any trouble with the Linux 2.4.18 kernel so this may have been fixed in more recent kernels. You can try changing the rsize option to 8192 if you run into problems.
The first couple of times that I tried booting Solaris, the boot
process would hang after loading the kernel but before loading the
installer. After some investigation of the scripts in
/sbin
in the root filesystem, I discovered that the
/sbin/get_netmask
program was handing. Since it didn't
seem to be doing anything important (the interface has already been
properly configured), I moved it out the way.
# cd /pub/solaris/Solaris_8/Tools/Boot # cd sbin # mv get_netmask get_netmask.boot
Now you are ready to boot the Solaris installer over the network. Enter the boot command from the OpenPROM prompt.
ok boot net-tpe - install
If everything is working correctly, the Solaris interactive installer should appear on the console. Most of the questions it asks are pretty straightforward and I didn't have any trouble installing Solaris once I got it to boot.
It should be possible to automate the installation using Jumpstart. Jumpstart uses a couple of files to configure the install. These are also exported through NFS and parameters added to the bootparams file. The scripts used to set this up automatically won't work on Linux but it should be possible to do it manually.