Skip to content


Solaris Jumpstart Installation on Sol-10u9

Solaris JumpStart installation is method of network installation of Solaris OS. Below the steps that we need to follow:

  • Configure the JumpStart Installation Server
  • Create the Client profile files
  • Share the Installation directory and Configuration files
  • Create the client boot files using tftpboot
  • Configure the DHCP server with TFTPBOOT files

Final Silent Installation

First of all let me give you the details about our setup. We have one jumpstart server and two clients. IP and hostname details are given below:

Jumstart_Boot_Server:

IP address: 192.168.101.31

Mac ID: 00:0c:29:42:ed:ff

Client 1:

IP address: 192.168.101.32

Mac ID: 01:00:50:56:11:1A:BB

Client 2:

IP address: 192.168.101.33

Mac ID: 01:00:50:56:11:1A:CC

1. JumpStart installation server:

First of all download the DVD or ISO file of solaris-10u9. If you have downloaded the ISO file then you have to mount it localy using the below commands.

 

# lofiadm sol-10-u9-ga1-sparc-dvd.iso /dev/lofi/1
# mount -o ro -F hsfs /dev/lofi/1 /mnt

Now create an installation directory on the server:

# mkdir -p /export/install

Put the Solaris 10 OS for x86/x64 platforms DVD in the DVD player on the server. Create the installation server by going to the Solaris_10/Tools directory on the DVD and running the setup_install_server command. The Solaris software is copied to the newly created directory. Specify the absolute path name as the argument.

# cd /cdrom/cdrom0/Solaris_10/Tools
  # ./setup_install_server /export/install
  Verifying target directory...
  Calculating the required disk space for the Solaris_10 product
  \|/-\|/-
  Calculating space required for the installation boot image
  \|/-\|/-
  Copying the CD image to disk...
  \|/-\|/-
  Copying Install Boot Image hierarchy...
  \|/-\|/-
  Copying /boot x86 netboot hierarchy...
  \|/-\|/-
  Install Server setup complete

2. Create the Client Configuration Files:
Create a configuration directory where the files will reside:

# mkdir /export/config

Create the sysidcfg file:
Note: Each client can have its own sysidcfg file, or multiple clients can use the same sysidcfg file.
Below are the two Sysidcfg files that I have created for Jumpstart_Client1 and Jumpstart_Client2

# cd /export/config
# mkdir sysidcfg1
# cd sysidcfg1
# vi sysidcfg
keyboard=US-English
system_locale=en_US.ISO8859-1
timezone=US/Pacific
timeserver=localhost
terminal=xterms
service_profile=open
name_service=NONE
security_policy=NONE
root_password=Ax1sT8ZVkPzaM
auto_reg=disable
network_interface=e1000g0 {primary
                          hostname=client1
		  netmask=255.255.255.0
                          protocol_ipv6=no
                          default_route=192.168.101.1}
nfs4_domain=dynamic
:wq
# cd ../
# mkdir sysidcfg2
# cd sysidcfg2
# vi sysidcfg


keyboard=US-English
system_locale=en_US.ISO8859-1
timezone=US/Pacific
timeserver=localhost
terminal=xterms
service_profile=open
name_service=NONE
security_policy=NONE
root_password=Ax1sT8ZVkPzaM
auto_reg=disable
network_interface=e1000g0 {primary
                                      hostname=client2
   netmask=255.255.255.0
   protocol_ipv6=no
                          default_route=192.168.101.1}
nfs4_domain=dynamic

:wq

Create the rules file:

# cd /export/config
  # vi rules

  hostname client1 begin1 profile1 finish1
  hostname client2 begin2 profile2 finish2

  :wq

Create the begin file:

# cd /export/config
  # vi begin1

  #!/bin/sh
  echo "Begin Script for JumpStart client1..."

  :wq

  # vi begin2

  #!/bin/sh
  echo "Begin Script for JumpStart client2..."

  :wq

# chmod 755 begin*

Create the finish file:

# cd /export/config
  # vi finish1

  #!/bin/sh
  echo "Finish Script for JumpStart client1..."
  echo "Get rid of the nfs prompt during the initial boot"
  touch /a/etc/.NFS4inst_state.domain

  :wq

  # vi finish2

  #!/bin/sh
  echo "Finish Script for JumpStart client2..."
  echo "Get rid of the nfs prompt during the initial boot"
  touch /a/etc/.NFS4inst_state.domain

  :wq

  # chmod 755 finish*

Create the profile file:

# cd /export/config
  # vi profile1

  # install_type MUST be first
  install_type      initial_install

  # start with the minimal required number of packages
  cluster           SUNWCXall
  cluster           SUNWCapache delete
  cluster           SUNWCpcmc   delete
  cluster           SUNWCpcmcx  delete
  cluster           SUNWCthai   delete
  cluster           SUNWClp     delete
  cluster           SUNWCnis    delete
  cluster           SUNWCppp    delete

  # format the entire disk for Solaris
  fdisk   all   solaris all

  # define how the disk is partitioned
  partitioning      explicit
  filesys           rootdisk.s0 6144  /
  filesys           rootdisk.s1 1024  swap
  filesys           rootdisk.s7 free  /state/partition1

  # install systems as standalone
  system_type standalone

##### Below are the configuration for Patches and Packages installation
# specify patches to install
patch 119281-06 nfs 192.168.101.31:/export/patches

# specify packages to install
package SPROcc add nfs 192.168.101.31:/export/packages


  :wq

# vi profile2

  # install_type MUST be first
  install_type      initial_install

  # start with the minimal required number of packages
  cluster           SUNWCXall
  cluster           SUNWCapache delete
  cluster           SUNWCpcmc   delete
  cluster           SUNWCpcmcx  delete
  cluster           SUNWCthai   delete
  cluster           SUNWClp     delete
  cluster           SUNWCnis    delete
  cluster           SUNWCppp    delete

  # format the entire disk for Solaris
  fdisk   all   solaris all

  # define how the disk is partitioned
  partitioning      explicit
  filesys           rootdisk.s0 6144  /
  filesys           rootdisk.s1 4096  swap
  filesys           rootdisk.s7 free  /state/partition1

  # install systems as standalone
  system_type standalone

##### Below are the configuration for Patches and Packages installation
# specify patches to install

patch 119281-06 nfs 192.168.101.31:/export/patches

# specify packages to install

package SPROcc add nfs 192.168.101.31:/export/packages
  :wq

Create the check script:
The check script is used to validate that the rules and profile files are correctly set up. First copy the check script to the local directory, that is, /export/config, as shown:

 # cd /export/config
  # cp /export/install/Solaris_10/Misc/jumpstart_sample/check .
Run the check script:
  # ./check
  Validating rules...
  Validating profile profile1...
  Validating profile profile2...
  The custom JumpStart configuration is ok.

3. Share the Installation and Configuration Directories

Modify dfstab to share the JumpStart directories.
Edit the /etc/dfs/dfstab file:

# vi /etc/dfs/dfstab

  #       Place share(1M) commands here for automatic execution
  #       on entering init state 3.
  #
  #       Issue the command 'svcadm enable network/nfs/server' to
  #       run the NFS daemon processes and the share commands, after
  #       adding the very first entry to this file.
  #
  #       share [-F fstype] [ -o options] [-d ""] 
  #       [resource]
  #       for example,
  #       share  -F nfs  -o rw=engineering  -d "home dirs"  /export/home2

  share -F nfs -o ro,anon=0 /export/install
  share -F nfs -o ro,anon=0 /export/config
  share -F nfs -o ro,anon=0 /export/patches  ## Share the patches folder on Boot server
  share -F nfs -o ro,anon=0 /export/packages ## Share the Packages Folder on boot Server

  :wq

Start the NFS server:
  # /etc/init.d/nfs.server start
Share the directories:
  # shareall
  # share
       -       /export/install   ro,anon=0   ""
/export/config   ro,anon=0   ""
/export/patches   ro,anon=0   ""
/export/packages   ro,anon=0   ""
  
Verify file sharing.
  # showmount -e localhost
  export list for localhost:
  /export/install  (everyone)
  /export/config   (everyone)
  /export/patches   (everyone)
  /export/packages   (everyone)

4. Create the Client tftpboot Files
Run the add_install_client script for each client.
Go to the location of the add_install_client script:

  # cd /export/install/Solaris_10/Tools

Run the add_install_client script for each client on the network that performs a JumpStart installation.

# ./add_install_client \
      -d \
      -e 00:01:00:50:56:11:1A:BB \
      -s 192.168.101.31:/export/install \
      -c 192.168.101.31:/export/config \
      -p 192.168.101.31:/export/config/sysidcfg1 i86pc

  enabling tftp in /etc/inetd.conf
  Converting /etc/inetd.conf
  enabling network/tftp/udp6 service
  copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1

  If not already configured, enable PXE boot by creating
  a macro named 01005056111ABB with:
    Boot server IP (BootSrvA) : 192.168.101.31
    Boot file      (BootFile) : 01005056111ABB


# ./add_install_client \
      -d \
      -e 00:01:00:50:56:11:1A:CC \
      -s 192.168.101.31:/export/install \
      -c 192.168.101.31:/export/config \
      -p 192.168.101.31:/export/config/sysidcfg1 i86pc

  enabling tftp in /etc/inetd.conf
  Converting /etc/inetd.conf
  enabling network/tftp/udp6 service
  copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1

  If not already configured, enable PXE boot by creating
  a macro named 01005056111ACC with:
    Boot server IP (BootSrvA) : 192.168.101.31
    Boot file      (BootFile) : 01005056111ACC

5. Configure and Run the DHCP Server

Run dhcpmgr:
  # /usr/sadm/admin/bin/dhcpmgr
  Java Accessibility Bridge for GNOME loaded.

NOTE: Its pretty straight forward from the GUI. But just make sure that you configured the tftpboot files as well for your clients.

6. Final Silent Installation

With the above setup you still need human intervention at two places in Solaris installation.
1. First is at Installation type selection where it shows you the 6 option menu like 1 for interactive installation,2 for jumpstart etc..
2. Second you need to fill the registration details manually. Registration page is been included in recent releases of the Solaris OS.

Actually both are because of the bug in Jumpstart installation. Though first one have the solution to tweak the kernel parameters in menu.lst.macid file under /tftpboot/ directory. You need to add
– install dhcp parameter to kernel line.

Default  menu.lst.macid file would be:

default=0
timeout=30
title Solaris_10 Jumpstart
    kernel /I86PC.Solaris_10-1/multiboot kernel/unix -B \
install_config=172.16.64.194:/export/config, \
sysid_config=172.16.64.194:/export/config/sysidcfg1, \
install_media=172.16.64.194:/export/install, \
install_boot=172.16.64.194:/export/install/boot
    module /I86PC.Solaris_10-1/x86.miniroot

You have to change it to

default=0
timeout=0
title Solaris_10 Jumpstart
    kernel /I86PC.Solaris_10-1/multiboot kernel/unix - install dhcp -B \
install_config=172.16.64.194:/export/config, \
sysid_config=172.16.64.194:/export/config/sysidcfg1, \
install_media=172.16.64.194:/export/install, \
install_boot=172.16.64.194:/export/install/boot
    module /I86PC.Solaris_10-1/x86.miniroot

Though I have modified the timeout value as well. I have set it to 0 which will not show you the OS selection page. By default it was 30 sec.

Now boot the clients via network card you are good to go.
NOTE: If you have need any alteration or modification or you think it needs some brief then please let me know.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.



I'm happy to use Increase Sociability.