Custom Bootable DVD

Custom bootable Solaris 10 DVD building procedure

For an overview of custom bootable Solaris 8 CD creation process, see http://www.sun.com/solutions/blueprints/0802/816-7587-10.pdf

The instructions below assume that Sun V240 running Solaris 9 or 10 is used for this process.

1. Insert Solaris 10 DVD in a DVD reader

2. Stop volume manager

 /etc/init.d/volmgt stop

3. Optionally print DVD table of contents for its layout

 prtvtoc /dev/dsk/c0t0d0s0

4. Create a working directory

Allow about 8GB of space for it. To simplify the commands, the working directory is created under /. Usually this should not be the case.

 mkdir /sol_10_01-06_dvd
 cd /sol_10_01-06_dvd

5. Copy DVD slices from Solaris 10 DVD

 dd if=/dev/dsk/c0t0d0s0 of=s0.orig bs=512
 dd if=/dev/dsk/c0t0d0s1 of=s1.orig bs=512
 dd if=/dev/dsk/c0t0d0s2 of=s2 bs=512
 dd if=/dev/dsk/c0t0d0s3 of=s3 bs=512
 dd if=/dev/dsk/c0t0d0s4 of=s4 bs=512
 dd if=/dev/dsk/c0t0d0s5 of=s5 bs=512
 dd if=/dev/dsk/c0t0d0s6 of=s6 bs=512

6. Create new slice s1

Estimate the size for the new slice s1 taking into account the added contents such as flash archive size, for instance

 dd if=/dev/zero of=s1 bs=512 count=8000000

7. Make binary files available as block devices via loopback interface

 lofiadm -a s0.orig /dev/lofi/1
 lofiadm -a s1.orig /dev/lofi/2
 lofiadm -a s1 /dev/lofi/3

8. Create ufs file system on the new slice s1

 newfs /dev/lofi/3

9. Mount our slices

 mount -F hsfs /dev/lofi/1 /mnt
 mkdir /mnt1
 mount /dev/lofi/2 /mnt1
 mkdir /mnt2
 mount /dev/lofi/3 /mnt2

10. Create a directory that will hold the contents of s0.orig

 mkdir s0

11. Duplicate the contents of s0.orig to this new dir

 cd /mnt
 find . -print|cpio -pdm /sol_10-01-06_dvd/s0

12. Duplicate the contents of s1.orig to s1

 cd /mnt1
 find . -print|cpio -pdm /mnt2

13. Customize the contents of s1 and/or s0

For jumpstart installation put jumpstart.tar into

 /mnt2/.tmp_proto/root/etc 

Files under /.tmp_proto will be copied into /tmp during the install.

If Solaris installation type is set to flash and archive location is set to local file in the profile file, ie,

 install_type flash_install
 archive_location local_file /archives/invidihost.flar

then create archives directory in /mnt2 and copy invidihost.flar into this folder.

Remove Doc, !ExtraValue, Patches, Product and !UpgradePatches from Solaris_10 folder in s0 to free some space for the iso image to fit single 4.7GB (4,700,000,000 bytes) DVD

 cd /sol_10_01-06_dvd/s0/Solaris_10
 rm -rf Doc ExtraValue Patches Product UpgradePatches

Commented out “for i do…done” block in /mnt2/sbin/install-discovery that tries to autoconfigure network interfaces via reverse arp. It speeds up the installation process by about 5 minutes.

14. Clean up previous stuff

 cd /sol_10_01-06_dvd
 umount /mnt
 umount /mnt1
 umount /mnt2
 lofiadm -d /dev/lofi/1
 lofiadm -d /dev/lofi/2
 lofiadm -d /dev/lofi/3
 /etc/init.d/volmgt start

15. Create an iso image

 mkisofs -N -r -d -D -L -l -J -V Sol-XXXX-xxx -B s1,s2,s3,s4,s5,s6 -o sol-XXXX-xxx.iso s0

or with mkisofs-2.02 or higher

 mkisofs -N -r -d -D -l -J -V Sol-XXXX-xxx -allow-leading-dots -B s1,s2,s3,s4,s5,s6 -o sol-XXXX-xxx.iso s0

Partitionless ala Solaris 10 10/08 DVD

When creating ala Solaris 10 10/08 “partitionless” DVD, the procedure is different:

 1. Obtain Solaris 10 10/08 iso image sol-10-u6-ga1-sparc-dvd.iso
 2. Mount the image via loopback, copy its contest into a new directory and remove unnecessary folders
 lofiadm sol-10-u6-ga1-sparc-dvd.iso /dev/lofi/1
 mount -o ro -F hsfs /dev/lofi/1 /mnt
 mkdir /sol-10-dvd
 cd /mnt
 find . -print | cpio -pdm /sol-10-dvd
 cd Solaris_10
 rm -rf Doc Patches Product
 3. Unpack miniroot
 mkdir /miniroot
 /boot/solaris/bin/root_archive unpack /sol-10-dvd/boot/sparc.miniroot /miniroot
  4. Copy jumpstart.tar into miniroot/.tmp_proto/root/etc
 The jumpstart profiles have archive_location parameter changed from
 archive_location local_file /archives/host.flar
 to 
 archive_location local_device cXt0d0s0 /archives/host.flar hsfs
 where X depends on which scsi controller the hard disks are. For example, if the disk drives are on c1, then X should be 0.
 5. Pack the miniroot
 /boot/solaris/bin/root_archive pack /sol-10-dvd/boot/sparc.miniroot /miniroot
 6. Copy the flash archive host.flar (platform dependent: x maybe u or v - see below) into /sol-10-dvd/archives
 mkdir /sol-10-dvd/archives
 cp host-sun4x.flar /sol-10-dvd/archives/host.flar
 7. Make an iso image
 mkisofs -N -r -d -D -l -J -V SOL-10-sun4x -allow-leading-dots -G /sol-10-dvd/boot/hsfs.bootblock -B ... -o sol-10-sun4x.iso sol-10-dvd

16. Burning sol-10-sun4x.iso image to a DVD using your favorite software

 nice -10 cdrw -i -d /dev/rdsk/c0t0d0s2 sol-10-sun4x.iso

17. Boot the server from the DVD using the following command

  {1} ok boot cdrom - install file://127.0.0.1/tmp/root/etc/jumpstart.tar