Today's Page Hits: 2722
I have more hair and it isn't so grey. :->
This page validates as XHTML 1.0, and will look much better in a browser that supports web standards, but it is accessible to any browser or Internet device. It was created using techniques detailed at glish.com/css/.
I want to add SUNWonbld to the install DVD and have it automatically installed when I bring up a new machine. I've found that when looking for information on how packages are maintained on the install media, it is best to search on jumpstart and not install.
The first part appears easy, just copy the SUNonbld (get the correct one for your build) to the Solaris_11/Product directory:
# pwd /kanigix/b55b/Solaris_11/Product # ls -la SUNWonbld SUNWonbld: No such file or directory # cp -r /export/zfs/tdh/b55/packages/i386/SUNWonbld . # ls -la SUNWonbld total 106 drwxr-xr-x 4 root root 512 Jan 18 12:46 . dr-xr-xr-x 1819 root root 41984 Jan 18 12:46 .. drwxr-xr-x 2 root root 512 Jan 18 12:46 install -rw-r--r-- 1 root root 392 Jan 18 12:46 pkginfo -rw-r--r-- 1 root root 7583 Jan 18 12:46 pkgmap drwxr-xr-x 3 root root 512 Jan 18 12:46 reloc
Note, it is also easy to determine the packages already in the directory are not in stream format - the fact that they are directories themselves tells us that.
The next part is harder - how does the installation know what to do? Where does the installer live such that we can read the code? You know what, I don't know yet. And I looked.
The trick lies in realizing that a jumpstart server is basically an extraction of the contents of the ISO onto local storage. The site admin is then able to add or delete packages before they are installed by the jumpstart server. So how does a jumpstart server mangle this process?
A clue can be found in [Summary] packages at sunmanagers.org:
One place to find which clusters exist is to look in your jumpstart tree: view .../Solaris_9/Product/.clustertoc which contains all the cluster and packages. With suitable add/delete statements for clusters or individual packages you can fine-tune what gets installed.
If we look on the DVD:
# ls -la | grep toc lrwxrwxrwx 1 root root 30 Jan 16 15:42 .clustertoc -> ./locale/C/.clustertoc.default lrwxrwxrwx 1 root root 22 Jan 16 15:42 .packagetoc -> ./locale/C/.packagetoc -r--r--r-- 1 root root 171060 Jan 12 17:44 .virtual_packagetoc_2 -r--r--r-- 1 root root 142606 Jan 12 17:44 .virtual_packagetoc_3 -r--r--r-- 1 root root 26907 Jan 12 17:44 .virtual_packagetoc_4 -r--r--r-- 1 root root 174452 Jan 12 17:44 .virtual_packagetoc_5 -r--r--r-- 1 root root 8492 Jan 12 17:44 .virtual_packagetoc_6 -r--r--r-- 1 root root 265533 Jan 12 17:44 .virtual_packagetoc_lang1
At first this looks overwhelming, but then when you realize that the DVD image is basically a cat(1) of the CD images, it becomes easier to deal with. .packagetoc is from the first CD image. Then the .virtual_packagetoc_* are from the remaining CDs.
Okay, we need to figure out which of these files we need to touch.
# grep SUNWhea .c* .p* .v* .clustertoc:SUNW_CSRMEMBER=SUNWhea .clustertoc:SUNW_CSRMEMBER=SUNWhea .clustertoc:SUNW_CSRMEMBER=SUNWhea .packagetoc:PKG=SUNWhea .packagetoc:PKGDIR=SUNWhea .packagetoc:SUNW_PKGLIST=SUNWhea .packagetoc:SUNW_PDEPEND=SUNWhea .packagetoc:SUNW_PKGLIST=SUNWhea .packagetoc:SUNW_PDEPEND=SUNWhea .pkghistory:PKG=SUNWhea .pkghistory:REPLACED_BY=SUNWhea SUNWpsh .pkghistory:REPLACED_BY=SUNWftpu SUNWftpr SUNWkrbu SUNWcsu SUNWcsr SUNWhea .pkghistory:REPLACED_BY=SUNWpsh SUNWhea .virtual_packagetoc_5:PKG=SUNWhea .virtual_packagetoc_5:PKGDIR=SUNWhea .virtual_packagetoc_5:SUNW_PKGLIST=SUNWhea .virtual_packagetoc_5:SUNW_PDEPEND=SUNWhea .virtual_packagetoc_lang1:SUNW_PKGLIST=SUNWhea .virtual_packagetoc_lang1:SUNW_PDEPEND=SUNWhea
I picked SUNWhea because it isn't needed as much for the install as for when doing compiles. And then we start to do some exploration:
# vi `grep -l SUNWhea .c* .p* .v*`
Looks like we need to add an entry of the form:
SUNW_PDEPEND=SUNWheato all METACLUSTER sections in .clustertoc:
METACLUSTER=SUNWCXall NAME=Entire Distribution plus OEM support DESC=A pre-defined software configuration consisting of all software included in the operating system rel ease, plus OEM platform support. VENDOR=Sun Microsystems, Inc. VERSION=2.2
We also need to add PKG sections to the remaining files which have corresponding PKG sections for SUNWhea. We can get the required information out of the following files:
# ls -la SUNWonbld/pkginfo SUNWonbld/install/depend -rw-r--r-- 1 root root 1907 Jan 18 12:46 SUNWonbld/install/depend -rw-r--r-- 1 root root 392 Jan 18 12:46 SUNWonbld/pkginfo
And we can find out even more by reading packagetoc(4) and clustertoc(4).
I want to put SUNWonbld at the end of everything to be installed. I know that normally we add it after a reboot. The hardest thing to determine are the sizes:
ROOTSIZE=17500000 VARSIZE=0 OPTSIZE=17500000 EXPORTSIZE=0 USRSIZE=0 USROWNSIZE=0 SPOOLEDSIZE=17500000
I got the size via a 'du -s' of the relloc directory. I have no clue if ROOTSIZE applies if /opt is part of the root filesystem. But, I typically install on really large disks. The minimum root I have is 10G. So, while not accurate, this should work.Finally, we need to add an entry to the end of .order. Here is a diff of the changes I am going to make:
[tdh@warlock Product]> diff /kanigix/b55b/Solaris_11/Product/.clustertoc .clustertoc 2002a2003 > SUNW_CSRMEMBER=SUNWonbld 2355a2357 > SUNW_CSRMEMBER=SUNWonbld 2691a2694 > SUNW_CSRMEMBER=SUNWonbld [tdh@warlock Product]> diff /kanigix/b55b/Solaris_11/Product/.order .order 1718a1719 > SUNWonbld [tdh@warlock Product]> diff /kanigix/b55b/Solaris_11/Product/.packagetoc .packagetoc 44091a44092,44121 > PKG=SUNWonbld > PKGDIR=SUNWonbld > DESC=tools used to build the OS-Net consolidation > NAME=OS-Net Build Tools > VENDOR=Sun Microsystems, Inc. > VERSION=11.11,REV=2007.01.08.23.45 > PRODNAME=SunOS > PRODVERS=5.11/tools:2007-01-08 > BASEDIR=/ > CATEGORY=system > SUNW_PKGTYPE=root > ARCH=i386 > SUNW_PDEPEND=SUNWcar > SUNW_PDEPEND=SUNWkvm > SUNW_PDEPEND=SUNWcsr > SUNW_PDEPEND=SUNWcsu > SUNW_PDEPEND=SUNWcsd > SUNW_PDEPEND=SUNWcsl > SUNW_PDEPEND=SUNWbzip > SUNW_PDEPEND=SUNWgzip > SUNW_PDEPEND=SUNWzlib > SUNW_PDEPEND=SUNWperl584core > SUNW_PDEPEND=SUNWperl584usr > ROOTSIZE=17500000 > VARSIZE=0 > OPTSIZE=17500000 > EXPORTSIZE=0 > USRSIZE=0 > USROWNSIZE=0 > SPOOLEDSIZE=17500000 [tdh@warlock Product]> diff /kanigix/b55b/Solaris_11/Product/.virtual_packagetoc_6 .virtual_packagetoc_6 409a410,439 > PKG=SUNWonbld > PKGDIR=SUNWonbld > DESC=tools used to build the OS-Net consolidation > NAME=OS-Net Build Tools > VENDOR=Sun Microsystems, Inc. > VERSION=11.11,REV=2007.01.08.23.45 > PRODNAME=SunOS > PRODVERS=5.11/tools:2007-01-08 > BASEDIR=/ > CATEGORY=system > SUNW_PKGTYPE=root > ARCH=i386 > SUNW_PDEPEND=SUNWcar > SUNW_PDEPEND=SUNWkvm > SUNW_PDEPEND=SUNWcsr > SUNW_PDEPEND=SUNWcsu > SUNW_PDEPEND=SUNWcsd > SUNW_PDEPEND=SUNWcsl > SUNW_PDEPEND=SUNWbzip > SUNW_PDEPEND=SUNWgzip > SUNW_PDEPEND=SUNWzlib > SUNW_PDEPEND=SUNWperl584core > SUNW_PDEPEND=SUNWperl584usr > ROOTSIZE=17500000 > VARSIZE=0 > OPTSIZE=17500000 > EXPORTSIZE=0 > USRSIZE=0 > USROWNSIZE=0 > SPOOLEDSIZE=17500000 [tdh@warlock Product]>
I can make the changes by copying these files back. Make sure to get to the file referenced by the symlinks and do not blow them away.
# cp /export/zfs/tdh/tmp/Product/.order . # cp /export/zfs/tdh/tmp/Product/.virtual_packagetoc_6 . # ls -la .clustertoc lrwxrwxrwx 1 root root 30 Jan 16 15:42 .clustertoc -> ./locale/C/.clustertoc.default # cp /export/zfs/tdh/tmp/Product/.clustertoc .clustertoc .clustertoc.default .clustertoc.dynamic .clustertoc@ # cp /export/zfs/tdh/tmp/Product/.clustertoc .clustertoc.default # cp /export/zfs/tdh/tmp/Product/.packagetoc .packagetoc # diff .clustertoc.dynamic .clustertoc.default 2002a2003 > SUNW_CSRMEMBER=SUNWonbld 2355a2357 > SUNW_CSRMEMBER=SUNWonbld 2691a2694 > SUNW_CSRMEMBER=SUNWonbld # cp .clustertoc.default .clustertoc.dynamic
We also want to get the diffs into .clustertoc.dynamic.
Okay, let's recap the changes which have gone into this DVD:
The first two came about from the first burn of the DVD and my desire to be able to install on headless boxes. I took out the change which made grub work headless and made the default be headless. If I have a head available, I can manually change this.
Burn the DVD and let's have some fun!
# mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -R -L -r -D -U -boot-info-table -o /isos/kanigix.iso /kanigix/b55b # ls -la k* x86/b55b/solarisdvd.iso -rw-r--r-- 1 root root 3893268480 Jan 18 15:31 kanigix.iso -rw-r--r-- 1 root root 3947546624 Jan 16 22:17 kanigix.iso.1 -rw-r--r-- 1 tdh staff 3857448960 Jan 16 15:32 x86/b55b/solarisdvd.isoSo, it looks like the growth in my first image was do to adding the following to the mkisofs command line:
-joliet-long -max-iso9660-filenames
Now does it boot and most importantly install? Time to use my old desktop.
Okay, several observations:
I've got a mix of DVD drives out there - some which can do double sided and some which can not. Evidently the w2100z and the new one can do double sided. I also burned a stock Nevada 55b and it would not boot either. I had just bought a new pack of DVDs and I must have picked up double sided ones. And I only have one drive in the house which will not handle them.
I don't think my splash screen is working. And I can't tell if this DVD is working or not. Big Grin. Hmm, I think adding the SUNWonbld kicked up the requirements for the RAM drive and my 1G notebook is barfing on it. I'll try the new machine - I wonder if I messed up on my size for SPOOLEDSIZE? kanigix - the new machine is hung. I'm going to need to rethink how I do this.
Things don't always work. Those results are just as valuable as something working like a charm. Reverse engineering is trial and error. Ask anyone who tries to implement a CIFS client/server.