At first we will do a really basic install. No tricks, just the pure operating system. Nevertheless this part will be a little bit longer as i will do a technical deep-dive into the process of installation in this example to show you the inner workings of JET with this installation as an example.
The template for the first installation
At first we have to create a template for the system. This is really easy:
# make_template togusa
Adding product configuration information for
+ base_config
+ custom
+ sds
+ vts
+ explo
+ flash
+ san
+ jass
+ zones
+ sbd
Updating base_config template specifics
Client template created in /opt/SUNWjet/Templates
Okay, this is too much ... at start we donīt want all this modules right now. We can add them later, without loosing the configuration. Letīs just use the module for the basic configuration:
# make_template -f togusa base_config
Adding product configuration information for
+ base_config
Updating base_config template specifics
Client template created in /opt/SUNWjet/Templates
Even the basic template is quite long. Iīve reduced it for this tutorial by deleting all comments, all empy lines and all variables without a value.
base_config_ClientArch=i86pc
base_config_ClientEther=08:00:27:97:29:1E
base_config_ClientOS=nv87
base_config_client_allocation="grub"
base_config_sysidcfg_nameservice=NONE
base_config_sysidcfg_network_interface=PRIMARY
base_config_sysidcfg_ip_address=192.168.10.10
base_config_sysidcfg_netmask=255.255.255.0
base_config_sysidcfg_root_password="boajrOmU7GFmY"
base_config_sysidcfg_system_locale="C"
base_config_sysidcfg_timeserver=localhost
base_config_sysidcfg_timezone="Europe/Berlin"
base_config_sysidcfg_terminal=vt100
base_config_sysidcfg_security_policy=NONE
base_config_sysidcfg_protocol_ipv6=no
base_config_sysidcfg_default_route=192.168.10.1
base_config_x86_nowin="yes"
base_config_label_disks="all"
base_config_profile_cluster=SUNWCuser
base_config_profile_usedisk=rootdisk.
base_config_profile_root=free
base_config_profile_swap=256
base_config_ufs_logging_filesys="all"
base_config_profile_del_clusters="SUNWCpm SUNWCpmx SUNWCdial SUNWCdialx"
base_config_dns_disableforbuild="yes"
base_config_update_terminal="yes"
base_config_enable_savecore="yes"
base_config_dumpadm_minfree="20000k"
base_config_noautoshutdown="pm_disabled"
Letīs dissect this template:
- Line 1-3: This lines are the most basic ones. The first line defines the architecture of the system. The next line is the Ethernet-Address of the new system. The third one specifies the new operating system.
- Line 4: This line specifies, how the new system gathers the most basic informations like itīs own IP.
- Line 5-16: Do you remember the part about \verb=sysidcfg=. The values for this files are defined in this part of the emplate. The
sysidcfg will be filed with the values of this variables
- Line 17: This line tells ths system to supress the start of the windowing system.
- Line 18: Solaris needs a disk label on the disks for the system. This directive tells the system to write this label to all disks.
- Line 19-22: Another known phrase ... profile. Here you specify the partioning for the system and what packages will be installed on it.
- Line 23-end: There are several further statements. Please the original file for an explanation.
Okay after this step, we have to generate the configuration for the Jumpstart mechanism. This is really easy:
# make_client -f togusa
Gathering network information..
Client: 192.168.10.10 (192.168.10.0/255.255.255.0)
Server: 192.168.10.1 (192.168.10.0/255.255.255.0, SunOS)
Solaris: client_prevalidate
Solaris: client_build
Creating sysidcfg
Creating profile
Adding base_config specifics to client configuration
Solaris: Configuring JumpStart boot for togusa
Starting SMF services for JumpStart
Solaris: Configure PXE/grub build
Adding install client
Doing a TEXT based install
Leaving the graphical device as the primary console
Configuring togusa macro
Using local dhcp server
PXE/grub configuration complete
Running '/opt/SUNWjet/bin/check_client togusa'
Client: 192.168.10.10 (192.168.10.0/255.255.255.0)
Server: 192.168.10.1 (192.168.10.0/255.255.255.0, SunOS)
Checking product base_config/solaris
--------------------------------------------------------------
Check of client togusa
-> Passed....
The nice thing about the
make_clientcommand: It doesnīt just generate the Jumpstart configuration. It checks for the most dumb errors like forgetting to share the directory of your Solaris media with NFS. So you can detect many problems at an early stage. You donīt have to wait until the jumpstart client comes up just to detect that there is no NFS or no DHCP config.
The generated Jumpstart configuration files
Okay, letīs look into the \verb=/tftpboot= directory at first. As the system uses
pxegrub we need a
menu.lst
-bash-3.2$ cat /tftpboot/menu.lst.0108002797291E
default=0
timeout=2
title Solaris_11 Jumpstart
kernel /I86PC.Solaris_11-1/platform/i86pc/kernel/unix - install nowin -B install_config=192.168.10.1:/opt/SUNWjet,sysid_config=192.168.10.1:/opt/SUNWjet/Clients/togusa,install_media=192.168.10.1:/export/install/media/solaris/x86/nv87,install_boot=192.168.10.1:/export/install/media/solaris/x86/nv87/boot
module /I86PC.Solaris_11-1/x86.miniroot
-bash-3.2$
In the GRUB configuration we not only load the Kernel, we additionally name the location of the Jumpstartserver, the exact location and name of the
sysidconfig file, the position of our installation media and at last the location of the miniroot. In our example all locations are NFS locations.
Okay, the
install_config directory is the first important location. We find the
rules.ok file there.
-bash-3.2$ cat /opt/SUNWjet/rules.ok
any any Utils/begin = Utils/finish
# version=2 checksum=3114
Okay, now letīs have a look in the specified profile file:
-bash-3.2$ cat /opt/SUNWjet/Clients/togusa/profile
#
# This is an automatically generated profile. Please modify the template.
#
# Created: Mon May 19 21:47:50 CEST 2008
#
install_type initial_install
system_type server
cluster SUNWCuser
partitioning explicit
#
# Disk layouts
#
filesys rootdisk.s0 free /
filesys rootdisk.s1 256 swap
cluster SUNWCpm delete
cluster SUNWCpmx delete
cluster SUNWCdial delete
cluster SUNWCdialx delete
As i wrote before, we have to give the system an identity. The \verb=sysidcfg= is responsible for this task, thus we find such a file in our directory. Our new system will use it when the installation has completed.
-bash-3.2$ cat /opt/SUNWjet/Clients/togusa/sysidcfg
name_service=NONE
root_password=boajrOmU7GFmY
system_locale=C
timeserver=localhost
timezone=Europe/Berlin
terminal=vt100
security_policy=NONE
nfs4_domain=dynamic
network_interface=PRIMARY {hostname=togusa ip_address=192.168.10.10 netmask=255.255.255.0 protocol_ipv6=no default_route=192.168.10.1}
The installation boot
This leaves you to do one thing. Configure the system to start with PXE in the BIOS of your system. And the system will boot via network and starts to install a system. After a while the installation will be complete. The system will boot up. One tip when you use Virtualbox for the installation. When the system tries to reboot the first time halt the system and switch off the network boot again. Otherwise the system will install again and again. BTW: The default rootpassword is
newroot.
You can look for the logfile of the installation at \verb=/var/sadm/system/logs=:
Configuring disk (c0d0)
- Creating Fdisk partition table
Fdisk partition table for disk c0d0 (input file for fdisk(1M))
type: 130 active: 128 offset: 16065 size: 33527655
type: 100 active: 0 offset: 0 size: 0
type: 100 active: 0 offset: 0 size: 0
type: 100 active: 0 offset: 0 size: 0
- Creating Solaris disk label (VTOC)
- Processing the alternate sector slice
Creating and checking UFS file systems
- Creating / (c0d0s0)
Warning: 1608 sector(s) in last cylinder unallocated
/dev/rdsk/c0d0s0: 31744440 sectors in 5167 cylinders of 48 tracks, 128 sectors
15500.2MB in 323 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,
Initializing cylinder groups:
......
super-block backups for last 10 cylinder groups at:
30776480, 30874912, 30973344, 31071776, 31170208, 31268640, 31367072,
31457312, 31555744, 31654176
Beginning Solaris software installation
Installation of was successful.
[...]
Installation of was successful.
Solaris 11 software installation succeeded
Solaris 11 packages fully installed
SUNWkvm
[...]
SUNWsolnm
Customizing system files
- Mount points table (/etc/vfstab)
fd - /dev/fd fd - no -
/proc - /proc proc - no -
/dev/dsk/c0d0s1 - - swap - no -
/dev/dsk/c0d0s0 /dev/rdsk/c0d0s0 / ufs 1 no -
/devices - /devices devfs - no -
sharefs - /etc/dfs/sharetab sharefs - no -
ctfs - /system/contract ctfs - no -
objfs - /system/object objfs - no -
swap - /tmp tmpfs - yes -
- Network host addresses (/etc/hosts)
- Environment variables (/etc/default/init)
Cleaning devices
Customizing system devices
- Physical devices (/devices)
- Logical devices (/dev)
Installing boot information
- Updating boot environment configuration file
- Installing boot blocks (c0d0)
- Installing boot blocks (/dev/rdsk/c0d0s0)
Creating boot_archive for /a
updating /a/platform/i86pc/boot_archive
updating /a/platform/i86pc/amd64/boot_archive
You see that the system has gone through a perfect automated installation.
I forgot to post the conclusion and the table of content when i published the JET tutorial some weeks ago. Okay ... here they are. This is a real long tutorial. 16 Parts in total. Part 1: Introduction Part 2: Basic Jumpstart Part 3: Files controlling
Tracked: Aug 19, 18:09