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!
[…] How to make sure you don’t corrupt your netinstall miniroot […]