Be careful with Jumpstart miniroot

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!

Trackbacks

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

Speak Your Mind

*