Be careful with Jumpstart miniroot

May 1, 2009 · Filed Under General Solaris topics 

If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!

Last few days I’m working on debugging the Solaris 10 Jumpstart install for some old desktops (Ultra 10, Ultra 60).

Among few well-known problems, I’ve noticed such an anomaly: the whole Jumpstart session happens just fine, all the packages are installed, but at the very end I see the errors and the installation fails:

SUNWspnego.......................done.    1.30 Mbytes remaining.
SUNWsra..........................done.    1.18 Mbytes remaining.
SUNWsrh..........................done.    1.00 Mbytes remaining.

Completed software installation
Solaris 10 software installation succeeded
Customizing system files

- Mount points table (/etc/vfstab)
- Unselected disk mount points (/var/sadm/system/data/vfstab.unselected)
- Network host addresses (/etc/hosts)

ERROR: Could not open file (/etc/hosts)
ERROR: Could not set up the remote host file (/etc/hosts)
ERROR: System installation failed

After a quick research, I’ve found out that such errors happen when you have a Solaris network image miniroot corrupted. And after a short while more, I’ve learned how exactly I got my miniroot image corrupted in the first place: I had my netinstall image in the /export/vol1/jumpstart/images directory, which I had previously shared out using

solaris# share -o rw,anon=0 /export/vol1/jumpstart/images

when I was transferring the netinstall image from a desktop with CD-ROM to the Jumpstart server.

Shortly after the copying, I got distracted and therefore had completely forgotten to unshare the resource. As the result of this, the add_install_client had tried to share the miniroot but didn’t touch it as the whole netinstall image was already shared out with read/write access.

And this is how such a setup corrupts your miniroot: the very first client you Jumpstart, is trying to update some of its files – like /etc/vfstab and /etc/hosts, but they’re in miniroot. With read/write access, they get corrupted right there. But what happens usually is that your client moves on to another location for these files, as it can’t update the read-only miniroot ones. It normally ends up updaiting /a/etc/vfstab and /a/etc/hosts, I think.

As the result of this error, you’re left with some directories of your miniroot having regular files instead of symlinks. For example:

this is the original and fully working /export/vol1/sol10/Solaris_10/Tools/Boot/etc/inet directory:

drwxr-xr-x   4 root     sys         1024 Jan 23  2005 .
drwxr-xr-x  40 root     sys         4096 Jan 23  2005 ..
-r--r--r--   1 root     sys           22 Jan 21  2005 datemsk.ndpd
lrwxrwxrwx   1 root     other         29 Aug 15 16:31 hosts -> ../../tmp/root/etc/inet/hosts
drwxr-xr-x   4 root     sys           96 Jan 23  2005 ike
-r--r--r--   1 root     sys         1101 Jan 23  2005 inetd.conf
-r--r--r--   1 root     sys          545 Jan 23  2005 ipaddrsel.conf
lrwxrwxrwx   1 root     other         31 Aug 15 16:31 ipnodes -> ../../tmp/root/etc/inet/ipnodes
-r--r--r--   1 root     sys          914 Jan 23  2005 ipsecalgs
-r--r--r--   1 root     sys         2380 Jan 21  2005 ipsecinit.sample
lrwxrwxrwx   1 root     other         32 Aug 15 16:31 netmasks -> ../../tmp/root/etc/inet/netmasks
-r--r--r--   1 root     sys          372 Jan 23  2005 networks
-r--r--r--   1 root     sys         1901 Jan 23  2005 protocols
drwx------   3 root     sys           96 Jan 23  2005 secret
-r--r--r--   1 root     sys         3869 Jan 23  2005 services
-r--r--r--   1 root     sys          520 Jan 23  2005 sock2path
-r--r--r--   1 root     sys         3312 Jan 21  2005 wanboot.conf.sample

… and this is the same one, only corrupted by the first installed client:

drwxr-xr-x   4 root     sys          512 Sep  3 16:48 .
drwxr-xr-x  40 root     sys         3072 Sep  3 16:19 ..
-r--r--r--   1 root     sys           22 Jan 21  2005 datemsk.ndpd
-r--r--r--   1 root     sys           99 Sep  3 16:48 hosts
drwxr-xr-x   4 root     sys          512 Sep  3 14:23 ike
-r--r--r--   1 root     sys         1101 Jan 23  2005 inetd.conf
-r--r--r--   1 root     sys          545 Jan 23  2005 ipaddrsel.conf
-r--r--r--   1 root     sys           91 Sep  3 16:48 ipnodes
-r--r--r--   1 root     sys          914 Jan 23  2005 ipsecalgs
-r--r--r--   1 root     sys         2380 Jan 21  2005 ipsecinit.sample
-r--r--r--   1 root     sys          384 Sep  3 16:48 netmasks
-r--r--r--   1 root     sys          372 Jan 23  2005 networks
-r--r--r--   1 root     sys         1901 Jan 23  2005 protocols
-rw-r--r--   1 root     root         523 Sep  3 16:04 routing.conf
drwx------   3 root     sys          512 Sep  3 14:23 secret
-r--r--r--   1 root     sys         3869 Jan 23  2005 services
-r--r--r--   1 root     sys          520 Jan 23  2005 sock2path
-r--r--r--   1 root     sys         3312 Jan 21  2005 wanboot.conf.sample

LESSON OF TODAY: be careful and always check that your netinstall image has its miniroot shared out in read-only!

Comments

One Response to “Be careful with Jumpstart miniroot”

  1. Solaris 10 patch return codes | Solaris Blog on May 19th, 2009 11:07 am

    [...] How to make sure you don’t corrupt your netinstall miniroot [...]

Leave a Reply